Function at 0x4871dc
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff98
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x60], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x48747d
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00486988
call fcn.00482c24
call fcn.0048628c
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 [0x48e504]
mov ecx, dword [ecx]
lea eax, [ebp - 0x60]
mov edx, 0x487494
call fcn.00404e10
mov eax, dword [ebp - 0x60]
call fcn.00404fc4
mov dword [ebp - 0x40], eax
xor eax, eax
call fcn.00482438
mov eax, dword [0x48e700]
mov eax, dword [eax]
call fcn.00409c10
mov byte [ebp - 6], 0
mov eax, dword [0x48e69c]
cmp byte [eax], 1
je 0x48727b
mov eax, dword [0x48e69c]
cmp byte [eax], 2
jne 0x4872ca
mov eax, dword [0x48e550]
mov eax, dword [eax]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4872c6
mov eax, dword [0x48e550]
mov eax, dword [eax]
mov eax, dword [eax + 0x368]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4872c6
mov eax, dword [0x48e550]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4872ca
mov byte [ebp - 6], 1
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [0x48e700]
mov eax, dword [eax]
call fcn.00404fc4
push eax
push 0
call fcn.00481cb0
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.00486320
test bl, bl
jne 0x487315
mov dl, byte [ebp - 6]
lea eax, [ebp - 0x5c]
call fcn.00486368
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.00486cec
mov byte [ebp - 5], al
mov al, byte [ebp - 5]
sub al, 1
jb 0x487347
sub al, 2
jb 0x48739b
jmp 0x4873a8
mov eax, dword [0x48e480]
mov byte [eax], 1
test bl, bl
jne 0x48735a
call fcn.004867e0
jmp 0x4873a8
call fcn.004867e0
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
mov eax, dword [0x48e3ac]
mov eax, dword [eax]
mov eax, dword [eax + 0x410]
fild dword [eax + 0x48]
fdivrp st(1)
fmul dword [0x4874a8]
call fcn.00402f88
mov edx, eax
sub edx, 3
mov eax, dword [0x48e3ac]
mov eax, dword [eax]
mov eax, dword [eax + 0x418]
call fcn.0045ce54
jmp 0x4873a8
mov eax, dword [0x48e480]
mov byte [eax], 0
call fcn.00486fb8
mov eax, dword [0x48e3ac]
mov eax, dword [eax]
mov eax, dword [eax + 0x328]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4873db
test bl, bl
jne 0x4873db
cmp byte [ebp - 5], 0
jne 0x4873db
call fcn.004870b0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00486d34
mov al, 1
call fcn.00482438
call fcn.00481cf8
test al, al
je 0x487420
mov eax, dword [0x48e3ac]
mov eax, dword [eax]
mov eax, dword [eax + 0x480]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
lea edx, [ebp - 0x68]
mov eax, dword [0x48e504]
mov eax, dword [eax]
call fcn.00486080
mov edx, dword [ebp - 0x68]
mov eax, dword [0x48e6f8]
call fcn.00404b58
jmp 0x48745f
mov eax, dword [0x48e6f8]
call fcn.00404b04
mov eax, dword [0x48e3ac]
mov eax, dword [eax]
mov eax, dword [eax + 0x480]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov edx, dword [0x48e668]
movzx edx, byte [edx]
mov eax, dword [0x48e3ac]
mov eax, dword [eax]
mov eax, dword [eax + 0x47c]
mov ecx, dword [eax]
call dword [ecx + 0xd0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487484
lea eax, [ebp - 0x68]
call fcn.00404b04
lea eax, [ebp - 0x60]
call fcn.00404b04
ret