Function at 0x487f08
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb7c
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x484], edx
mov dword [ebp - 0x47c], edx
mov dword [ebp - 0x480], edx
mov dword [ebp - 0x478], edx
mov dword [ebp - 0x474], edx
mov dword [ebp - 0x470], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4881cc
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 2], 0
push 0
push 0
lea eax, [ebp - 0x470]
call fcn.00409aa8
mov ecx, dword [ebp - 0x470]
mov edx, 0x3bf
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x38]
cmp word [ebx + 0xaa], 0
je 0x487f95
lea ecx, [ebp - 2]
mov edx, ebx
mov eax, dword [ebx + 0xac]
call dword [ebx + 0xa8]
cmp byte [ebp - 2], 0
jne 0x4881a1
mov byte [ebp - 1], 1
cmp word [ebx + 0xc2], 0
je 0x487fc0
lea ecx, [ebp - 1]
mov edx, ebx
mov eax, dword [ebx + 0xc4]
call dword [ebx + 0xc0]
jmp 0x487ff6
cmp byte [ebx + 0xfe], 0
jne 0x487ff6
push 0
lea edx, [ebp - 0x474]
mov eax, 0x38f
call fcn.00409208
mov eax, dword [ebp - 0x474]
mov cx, word [0x4881dc]
mov dl, 3
call fcn.0042e5b4
cmp eax, 6
sete byte [ebp - 1]
cmp byte [ebp - 1], 0
je 0x4881a1
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x3c]
call sub.kernel32.dll_GetCurrentProcessId
mov esi, eax
lea eax, [ebp - 0x58]
xor ecx, ecx
mov edx, 0x44
call fcn.00403264
mov dword [ebp - 0x58], 0x44
mov dword [ebp - 0x2c], 1
mov word [ebp - 0x28], 1
lea eax, [ebp - 8]
call fcn.00409aa8
cmp byte [ebx + 0x170], 0
je 0x488051
lea eax, [ebp - 0xc]
mov edx, 0x4881e8
call fcn.004048a8
jmp 0x48805e
lea eax, [ebp - 0xc]
mov edx, 0x4881f4
call fcn.004048a8
lea edx, [ebp - 0x478]
mov eax, dword [ebp - 8]
call fcn.00483f18
mov edx, dword [ebp - 0x478]
lea eax, [ebp - 0x10]
mov ecx, dword [ebx + 0xf4]
call fcn.00404b1c
mov edx, dword [ebp - 0x10]
mov eax, 0x488200
call fcn.00404e14
test eax, eax
jle 0x4880ab
push 0x48820c
push dword [ebp - 0x10]
push 0x48820c
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404b90
lea eax, [ebp - 0x47c]
call fcn.00484018
push dword [ebp - 0x47c]
push 0x488218
mov eax, esi
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x480]
call fcn.00408ea0
push dword [ebp - 0x480]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push 0x488200
push dword [ebx + 0xf8]
lea eax, [ebp - 0x14]
mov edx, 7
call fcn.00404b90
push 0
push 0
mov ecx, dword [ebp - 0x14]
mov edx, 0x3be
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x38]
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
push 0
push 0
push 0x30
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x14]
call fcn.00404cd0
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
jne 0x48817b
call sub.kernel32.dll_GetLastError_1
mov esi, eax
push 0
push 0x401
lea eax, [ebp - 0x469]
push eax
push 0
push esi
push 0
push 0x1000
call sub.kernel32.dll_FormatMessageA
push 9
push esi
lea edx, [ebp - 0x484]
lea eax, [ebp - 0x469]
call fcn.00409cbc
mov ecx, dword [ebp - 0x484]
mov edx, 0x3b6
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x38]
cmp word [ebx + 0xca], 0
je 0x488195
mov edx, ebx
mov eax, dword [ebx + 0xcc]
call dword [ebx + 0xc8]
jmp 0x4881a1
mov eax, dword [0x4ae6b0]
mov eax, dword [eax]
call fcn.0046b050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4881d3
lea eax, [ebp - 0x484]
mov edx, 6
call fcn.00404834
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00404834
ret