Function at 0x4010a0
Capabilities:
Allocate or change rwx memory
Enumerate processes
Execute shellcode via indirect call
Set console window title

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x364
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push str.MW2_208_Project____Loader
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
push str.MW2_208_Project_Loader_by_Simasce_n_n
call fcn.00401010
push 0x4031e0
push str.MW2_208Project.dll
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 0xc
test eax, eax
je 0x401444
push ebx
push esi
push edi
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
lea eax, [ebp - 0x118]
push 0
push eax
push 0x104
push str.MW2_208Project.dll
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push str.Looking_for_208_iw4mp.exe...
call fcn.00401010
mov ebx, dword [sym.imp.KERNEL32.dll_Process32NextW]
add esp, 4
nop dword [eax]
push 0
push 2
mov dword [ebp - 0x360], 0x22c
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
lea eax, [ebp - 0x360]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
cmp eax, 1
jne 0x4011ae
lea eax, [ebp - 0x360]
push eax
push esi
call ebx
cmp eax, 1
jne 0x4011ae
nop dword [eax + eax]
mov eax, str.iw4mp.exe
lea ecx, [ebp - 0x33c]
nop dword [eax + eax]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x401196
test dx, dx
je 0x401192
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x401196
add ecx, 4
add eax, 4
test dx, dx
jne 0x401170
xor eax, eax
jmp 0x40119b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401201
lea eax, [ebp - 0x360]
push eax
push esi
call ebx
cmp eax, 1
je 0x401160
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
test edi, edi
je 0x401120
push str.Process_found__n
call fcn.00401010
push str._nPausing_process..._n
call fcn.00401010
add esp, 8
push str.NtSuspendProcess
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
call eax
test eax, eax
jns 0x40121f
jmp 0x40144e
push dword [ebp - 0x358]
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4011b7
push str.Process_paused__n
call fcn.00401010
push str.Checking_version..._n
call fcn.00401010
mov esi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
lea eax, [ebp - 0x124]
add esp, 8
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
push 0
push 4
push eax
push 0x4f3021
push edi
call esi
push 0
push 4
lea eax, [ebp - 0x120]
push eax
push 0x431111
push edi
call esi
cmp dword [ebp - 0x124], 0x91
jne 0x401473
cmp dword [ebp - 0x120], 0xd0
jne 0x401473
push str.Version_is_correct__n
call fcn.00401010
push str.Patching_loader_code..._n
call fcn.00401010
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
add esp, 8
mov dword [ebp - 0x10], 0x68
mov esi, 0x40337c
mov dword [ebp - 0xc], 0xe015ff00
mov dword [ebp - 8], 0xc3006d70
mov byte [ebp - 0x119], 0xeb
lea eax, [ebp - 0x124]
push eax
mov eax, dword [esi]
push 0x40
push 1
add eax, 5
push eax
push edi
call ebx
push 0
push 1
lea eax, [ebp - 0x119]
push eax
mov eax, dword [esi]
add eax, 5
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea eax, [ebp - 0x130]
push eax
push dword [ebp - 0x124]
mov eax, dword [esi]
push 1
add eax, 5
push eax
push edi
call ebx
add esi, 4
cmp esi, 0x4033a4
jl 0x4012d4
mov esi, dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
push 4
push 0x3000
push 0x105
push 0
push edi
call esi
push 0x40
push 0x3000
push 0xc
push 0
push edi
mov dword [ebp - 0x364], eax
call esi
mov ecx, dword [ebp - 0x364]
mov dword [ebp - 0x120], eax
test ecx, ecx
je 0x401462
test eax, eax
je 0x401462
mov esi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea eax, [ebp - 0x118]
push 0
push 0x105
push eax
push ecx
push edi
mov dword [ebp - 0xf], ecx
call esi
push 0
push 0xc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x120]
push edi
call esi
mov eax, dword [ebp - 0x120]
add eax, 0xffb98bcf
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x12c]
push eax
push 0x40
push 5
push 0x46742c
push edi
call ebx
push 0
push 4
lea eax, [ebp - 0x128]
push eax
push 0x46742d
push edi
call esi
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x12c]
push 5
push 0x46742c
push edi
call ebx
push str.Game_patched__n
call fcn.00401010
push str.Unpausing_process..._n
call fcn.00401010
add esp, 8
push str.NtResumeProcess
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
call eax
pop edi
pop esi
pop ebx
test eax, eax
js 0x401458
push str.Done__n
call fcn.00401010
add esp, 4
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.0040147e
mov esp, ebp
pop ebp
ret
mov ecx, str.Could_not_find_MW2_208Project.dll_
call fcn.00401070
mov ecx, str.Failed_to_stop_the_process_
call fcn.00401070
mov ecx, str.Failed_to_resume_the_process_
call fcn.00401070
mov ecx, edi
call fcn.00401040
mov ecx, str.Failed_to_patch_process_
call fcn.00401070
mov ecx, str.Wrong_game_version_found_
call fcn.00401070
int3