How did solving such a trivial problem warrant creating 7 files? What are you doing? I can solve this in plain C with 1 function that doesn't pull in windows.h for no reason.
#include <stdio.h> // PLEASE BE CONSIDERATE OF OTHERS AND NEVER INCLUDE <windows.h> NOT EVERYONE IS RUNNING A COMPROMISED SYSTEM THX
#include <stdint.h>
#define intel_slept_during_code_of_conduct_training {0x75,0x30,0x33,0xC9,0xB8,0x01,0x00,0x00,0x00,0x0F,0xA2,0x8B,0xC8,0xC1,0xF9,0x08}
#define that_long_ass_hex_length 16
char repair_icc_exe(const char * abs_path) {
FILE * haystack = fopen(abs_path,"rb");
char needle[that_long_ass_hex_length] = intel_slept_during_code_of_conduct_training;
uint64_t haystack_size;
char * haystack_in_memory = NULL;
uint64_t bad_byte = 0;
void * bad_byte_in_memory = NULL;
char result = 0;
fseek(haystack,0,SEEK_END);
haystack_size = ftell(haystack);
fseek(haystack,0,SEEK_SET);
haystack_in_memory = malloc(haystack_size);
fread(haystack_in_memory,haystack_size,1,haystack);
bad_byte_in_memory = memmem(haystack_in_memory,haystack_size,needle,that_long_ass_hex_length);
if(bad_byte_in_memory != NULL) {
bad_byte = bad_byte_in_memory - haystack_in_memory;
haystack_in_memory[bad_byte] = 0xEB;
fclose(haystack);
haystack = fopen(abs_path,"wb"); // never backup broken exes :)
fwrite(haystack_in_memory,haystack_size,1,haystack);
} else result = 1;
fclose(haystack);
free(haystack_in_memory);
return result;
}