Function at 0x7e541000
Capabilities:
Accept command line arguments
Create process on windows
Create process suspended
Resume thread
Terminate process

Disassembly:
sub esp, 0x468
mov eax, dword [0x7e54d004]
xor eax, esp
mov dword [esp + 0x464], eax
push ebx
push esi
push edi
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x20], 0x456b64
mov dword [esp + 0x24], 0x4524d0
mov dword [esp + 0x28], 0x4534d0
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x30]
push edx
push 0
push 0
push 4
push 0
push 0
push 0
push eax
push str.war3.exe
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x7e541080
push eax
push str.Error
push str.Could_not_start_War3.exe__Make_sure_the_loader_is_in_your_Warcraft_III_install_directory.
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 2
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, dword [esp + 0x28]
xor ebx, ebx
mov edi, dword [esp + ebx*4 + 0x1c]
push edi
push str._w3l__Trying_offset_0x_08X...
call fcn.7e5413f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.7e541200
add esp, 0x10
test eax, eax
je 0x7e541151
cmp eax, 0xffffffff
jne 0x7e5410d1
mov esi, str.Bad_offset
jmp 0x7e5410f3
cmp eax, 1
jne 0x7e5410dd
mov esi, str.Unable_to_read_memory
jmp 0x7e5410f3
cmp eax, 2
jne 0x7e5410e9
mov esi, str.Unable_to_write_memory
jmp 0x7e5410f3
cmp eax, 3
jne 0x7e5410f3
mov esi, str.Unable_to_set_page_permissions
push esi
push str._s_r_n
call fcn.7e5413f0
inc ebx
add esp, 8
cmp ebx, 3
jl 0x7e541086
mov eax, dword [esp + 0xc]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push str.1.22a_1.23a
push esi
push str.There_was_an_error_patching_war3.exe___s_._Make_sure_you_are_using_version__s.
lea ecx, [esp + 0x7c]
push 0x400
push ecx
call fcn.7e5414b9
add esp, 0x14
push 0
push str.Patch_Error
lea edx, [esp + 0x78]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 3
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push str.Success._r_n
call fcn.7e5413f0
movzx eax, byte [0x7e54df00]
movzx ecx, byte [0x7e54df04]
mov edx, dword [esp + 0x10]
add esp, 4
push eax
push ecx
mov ecx, dword [esp + 0x18]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], edx
mov esi, 0x400169
mov dword [eax + 0xc], ecx
call fcn.7e541330
movzx edx, byte [0x7e54df01]
mov ecx, dword [esp + 0x24]
mov edi, eax
movzx eax, byte [0x7e54df05]
add esp, 0x18
push edx
mov edx, dword [esp + 0x14]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov esi, 0x40016f
mov dword [eax + 0xc], edx
call fcn.7e541330
add esp, 0x18
add eax, edi
je 0x7e5411eb
push str.NXCOMPAT_patching_failed
call fcn.7e5413f0
add esp, 4
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]