Function at 0x486564
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 0x4867d2
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00485ce4
call fcn.00489c4c
call fcn.004853e4
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 [0x48d478]
mov ecx, dword [ecx]
lea eax, [ebp - 0x60]
mov edx, 0x4867e8
call fcn.00404df0
mov eax, dword [ebp - 0x60]
call fcn.00404fa4
mov dword [ebp - 0x40], eax
xor eax, eax
call fcn.00482e4c
mov eax, dword [0x48d668]
mov eax, dword [eax]
call fcn.00409bd8
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [0x48d668]
mov eax, dword [eax]
call fcn.00404fa4
push eax
push 0
call fcn.00482794
add eax, 0x4000000
push eax
push 0xffffffffffffffff
push 0
push 0
mov eax, esi
call fcn.00404fa4
push eax
push 0
call sub.kernel32.dll_CreateProcessA
call fcn.00485478
test bl, bl
jne 0x486633
lea eax, [ebp - 0x5c]
call fcn.004854c0
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.0048606c
mov byte [ebp - 5], al
mov al, byte [ebp - 5]
sub al, 1
jb 0x486665
sub al, 2
jb 0x486684
jmp 0x486691
mov eax, dword [0x48d3f8]
mov byte [eax], 1
test bl, bl
jne 0x486678
call fcn.00485ae8
jmp 0x486691
call fcn.00485ae8
call fcn.00485c90
jmp 0x486691
mov eax, dword [0x48d3f8]
mov byte [eax], 0
call fcn.00486348
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x328]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4866c4
test bl, bl
jne 0x4866c4
cmp byte [ebp - 5], 0
jne 0x4866c4
call fcn.00486438
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004860a8
mov al, 1
call fcn.00482e4c
call fcn.004827d8
test al, al
je 0x486734
mov eax, dword [0x48d328]
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 [0x48d478]
mov eax, dword [eax]
call fcn.0048338c
mov edx, dword [ebp - 0x64]
mov eax, dword [0x48d664]
call fcn.00404b38
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
jmp 0x4867b7
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x44c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [0x48d664]
call fcn.00404ae4
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x48d5d4]
cmp byte [eax], 2
jne 0x4867a0
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4867b7
mov eax, dword [0x48d328]
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 0x4867d9
lea eax, [ebp - 0x64]
mov edx, 2
call fcn.00404b08
ret