seg000:004017E5 ; int __stdcall sub_4017E5(patchstruc_t *) seg000:004017E5 sub_4017E5 proc near ; CODE XREF: sub_401113+213p seg000:004017E5 ; sub_401113+228p ... seg000:004017E5 seg000:004017E5 arg_0 = dword ptr 8 seg000:004017E5 seg000:004017E5 000 push ebp seg000:004017E6 004 mov ebp, esp seg000:004017E8 004 mov ebx, [ebp+patchstruc_t.p_buffer_0] seg000:004017EB 004 cmp byte ptr [ebx+patchstruc_t.is_option_turned_on], 1 seg000:004017EF 004 jz short loc_401810 seg000:004017F1 004 mov byte ptr [ebx+patchstruc_t.is_option_turned_on], 1 seg000:004017F5 004 push offset NumberOfBytesWritten ; lpNumberOfBytesWritten seg000:004017FA 008 push [ebx+patchstruc_t.size] ; nSize seg000:004017FD 00C lea eax, [ebx+patchstruc_t.p_buffer_1] seg000:00401800 00C push eax ; lpBuffer seg000:00401801 010 push [ebx+patchstruc_t.baseaddress] ; lpBaseAddress seg000:00401803 014 push ProcessInformation.hProcess ; hProcess seg000:00401809 018 call WriteProcessMemory seg000:0040180E 004 jmp short locret_40182D seg000:00401810 ; --------------------------------------------------------------------------- seg000:00401810 seg000:00401810 loc_401810: ; CODE XREF: sub_4017E5+Aj seg000:00401810 004 mov byte ptr [ebx+patchstruc_t.is_option_turned_on], 0 seg000:00401814 004 push offset NumberOfBytesWritten ; lpNumberOfBytesWritten seg000:00401819 008 push [ebx+patchstruc_t.size] ; nSize seg000:0040181C 00C lea eax, [ebx+patchstruc_t.p_buffer_0] seg000:0040181F 00C push eax ; lpBuffer seg000:00401820 010 push [ebx+patchstruc_t.baseaddress] ; lpBaseAddress seg000:00401822 014 push ProcessInformation.hProcess ; hProcess seg000:00401828 018 call WriteProcessMemory seg000:0040182D seg000:0040182D locret_40182D: ; CODE XREF: sub_4017E5+29j seg000:0040182D 004 leave seg000:0040182E 000 retn 4 seg000:0040182E sub_4017E5 endp