Function at 0x4865e8
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x486856
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00485d68
call fcn.00489cac
call fcn.00485488
lea eax, [ebp - 0x4c]
xor ecx, ecx
mov edx, 0x44
call fcn.00403528
mov dword [ebp - 0x4c], 0x44
mov dword [ebp - 0x20], 1
mov word [ebp - 0x1c], 2
mov ecx, dword [0x48e478]
mov ecx, dword [ecx]
lea eax, [ebp - 0x60]
mov edx, 0x48686c
call fcn.00404e10
mov eax, dword [ebp - 0x60]
call fcn.00404fc4
mov dword [ebp - 0x40], eax
xor eax, eax
call fcn.00482f04
mov eax, dword [0x48e668]
mov eax, dword [eax]
call fcn.00409bf8
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [0x48e668]
mov eax, dword [eax]
call fcn.00404fc4
push eax
push 0
call fcn.0048284c
add eax, 0x4000000
push eax
push 0xffffffffffffffff
push 0
push 0
mov eax, esi
call fcn.00404fc4
push eax
push 0
call sub.kernel32.dll_CreateProcessA
call fcn.0048551c
test bl, bl
jne 0x4866b7
lea eax, [ebp - 0x5c]
call fcn.00485564
push 0xffffffffffffffff
mov eax, dword [ebp - 0x5c]
push eax
call sub.kernel32.dll_WaitForSingleObject
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x5c]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004860f0
mov byte [ebp - 5], al
mov al, byte [ebp - 5]
sub al, 1
jb 0x4866e9
sub al, 2
jb 0x486708
jmp 0x486715
mov eax, dword [0x48e3f8]
mov byte [eax], 1
test bl, bl
jne 0x4866fc
call fcn.00485b6c
jmp 0x486715
call fcn.00485b6c
call fcn.00485d14
jmp 0x486715
mov eax, dword [0x48e3f8]
mov byte [eax], 0
call fcn.004863cc
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x328]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x486748
test bl, bl
jne 0x486748
cmp byte [ebp - 5], 0
jne 0x486748
call fcn.004864bc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0048612c
mov al, 1
call fcn.00482f04
call fcn.00482890
test al, al
je 0x4867b8
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x44c]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
lea edx, [ebp - 0x64]
mov eax, dword [0x48e478]
mov eax, dword [eax]
call fcn.00483444
mov edx, dword [ebp - 0x64]
mov eax, dword [0x48e664]
call fcn.00404b58
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
jmp 0x48683b
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x44c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [0x48e664]
call fcn.00404b04
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x48e5d4]
cmp byte [eax], 2
jne 0x486824
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x48683b
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48685d
lea eax, [ebp - 0x64]
mov edx, 2
call fcn.00404b28
ret