Function at 0x494170
Capabilities:
Create process on windows

Disassembly:
sub esp, 0x308
mov eax, dword [str.Global_]
mov ecx, dword [0x5726b0]
push esi
push edi
push str.imm32.dll
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4941b7
push str.ImmDisableIME
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4941b0
push 0xffffffffffffffff
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.0042dca0
call fcn.0042dc80
call fcn.00494110
test eax, eax
je 0x494286
xor eax, eax
mov cl, byte [esp + eax + 8]
mov byte [esp + eax + 0x110], cl
inc eax
test cl, cl
jne 0x4941d0
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
mov esi, str.Medal_of_Honor_Allied_Assault_TM__Spearhead
repne scasb al, byte es:[edi]
dec edi
mov ecx, 0xb
lea edx, [esp + 0x110]
rep movsd dword es:[edi], dword [esi]
push edx
call fcn.004940b0
add esp, 4
cmp eax, 1
jne 0x4942b5
push str.Medal_of_Honor_Allied_Assault_TM__Spearhead
push str.Medal_of_Honor_Allied_Assault_TM__Spearhead
call dword [sym.imp.USER32.dll_FindWindowA]
mov esi, eax
test esi, esi
je 0x494257
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x49423e
push 9
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
call fcn.0042dc90
xor eax, eax
pop edi
pop esi
add esp, 0x308
ret 0x10
push 0
push str.Medal_of_Honor_Allied_Assault_TM__Spearhead
push str.Another_user_is_playing_Spearhead
call fcn.00491210
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
call fcn.0042dc90
xor eax, eax
pop edi
pop esi
add esp, 0x308
ret 0x10
push str.Medal_of_Honor_Allied_Assault_TM__Spearhead
push str.Medal_of_Honor_Allied_Assault_TM__Spearhead
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x4942b5
push 9
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0042dc90
xor eax, eax
pop edi
pop esi
add esp, 0x308
ret 0x10
call fcn.0042dc30
test eax, eax
je 0x494321
mov eax, dword [esp + 0x31c]
push eax
call fcn.0042dd20
mov eax, dword [str.configure_spearhead.exe]
lea edx, [esp + 0x14]
add esp, 4
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4942d9
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
mov dl, byte [0x57263e]
repne scasb al, byte es:[edi]
mov cx, word [0x57263c]
dec edi
mov word [edi], cx
mov byte [edi + 2], dl
call fcn.00494150
lea eax, [esp + 0x10]
push 5
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
xor eax, eax
pop edi
pop esi
add esp, 0x308
ret 0x10
call fcn.0042dc10
test eax, eax
je 0x49438c
mov ecx, dword [esp + 0x31c]
push ecx
call fcn.0042dd20
mov eax, dword [str.configure_spearhead.exe]
lea edx, [esp + 0x14]
add esp, 4
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x494345
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
mov dx, word [0x572638]
repne scasb al, byte es:[edi]
mov al, byte [0x57263a]
dec edi
mov word [edi], dx
mov byte [edi + 2], al
call fcn.00494150
lea ecx, [esp + 0x10]
push 5
push ecx
call dword [sym.imp.KERNEL32.dll_WinExec]
xor eax, eax
pop edi
pop esi
add esp, 0x308
ret 0x10
mov edx, dword [esp + 0x31c]
push edx
call fcn.0042ddb0
mov edi, eax
mov eax, dword [esp + 0x31c]
add esp, 4
test eax, eax
je 0x4943bb
call fcn.00494150
pop edi
xor eax, eax
pop esi
add esp, 0x308
ret 0x10
push 0x58b6e4
push 5
call fcn.00536fe1
mov esi, dword [esp + 0x31c]
push esi
call fcn.00492f30
push 0x800
push edi
push 0x999d98
mov dword [0x998d84], eax
mov dword [0xe6f52c], esi
call fcn.00474510
push str.sys_copy
push 0x999d98
call fcn.00533820
add esp, 0x20
test eax, eax
je 0x494432
mov cl, byte [eax + 9]
lea edx, [eax + 9]
cmp cl, 0x20
je 0x494414
test cl, cl
jne 0x494432
mov cl, byte [edx]
test cl, cl
je 0x494425
mov byte [eax], cl
mov cl, byte [edx + 1]
inc eax
inc edx
test cl, cl
jne 0x49441a
mov byte [eax], 0
mov dword [0x99a5a0], 1
call fcn.004997a0
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call fcn.00495bc0
push 0x999d98
call fcn.0045c1e0
lea eax, [esp + 0x214]
push pe_nt_image_headers32
push eax
call fcn.005364ee
lea ecx, [esp + 0x21c]
push ecx
push str.Working_directory:__s_n
call fcn.0045b2a0
add esp, 0x14
call fcn.004911b0
mov edx, dword [0x10aa050]
mov eax, dword [edx + 0x20]
test eax, eax
jne 0x49449f
mov eax, dword [0x10aa04c]
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x49449f
push 0
push 0
call fcn.00499e60
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [0x10aa050]
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x4944c4
call fcn.00411830
mov eax, dword [0x10aa050]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0xe6f534]
test ecx, ecx
jne 0x4944df
test eax, eax
je 0x4944e3
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4944e3
push 5
call esi
call fcn.00490900
wait
fninit
call fcn.0045cbf0
mov eax, dword [0x10aa050]
jmp 0x4944ca