Function at 0x46c1f4
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 0x46c4a7
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 2], 0
push 0
push 0
lea eax, [ebp - 0x470]
call fcn.00409c28
mov ecx, dword [ebp - 0x470]
mov edx, 0x3bf
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x38]
lea edx, [ebp - 2]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x48]
cmp byte [ebp - 2], 0
jne 0x46c47c
mov byte [ebp - 1], 1
cmp word [ebx + 0xc2], 0
je 0x46c29b
lea ecx, [ebp - 1]
mov edx, ebx
mov eax, dword [ebx + 0xc4]
call dword [ebx + 0xc0]
jmp 0x46c2d1
cmp byte [ebx + 0xfe], 0
jne 0x46c2d1
push 0
lea edx, [ebp - 0x474]
mov eax, 0x38f
call fcn.00409620
mov eax, dword [ebp - 0x474]
mov cx, word [0x46c4b4]
mov dl, 3
call fcn.0042cf88
cmp eax, 6
sete byte [ebp - 1]
cmp byte [ebp - 1], 0
je 0x46c47c
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.0040358c
mov dword [ebp - 0x58], 0x44
mov dword [ebp - 0x2c], 1
mov word [ebp - 0x28], 1
lea eax, [ebp - 8]
call fcn.00409c28
cmp byte [ebx + 0x170], 0
je 0x46c32c
lea eax, [ebp - 0xc]
mov edx, 0x46c4c0
call fcn.00404c24
jmp 0x46c339
lea eax, [ebp - 0xc]
mov edx, 0x46c4cc
call fcn.00404c24
lea edx, [ebp - 0x478]
mov eax, dword [ebp - 8]
call fcn.00468320
mov edx, dword [ebp - 0x478]
lea eax, [ebp - 0x10]
mov ecx, dword [ebx + 0xf4]
call fcn.00404e98
mov edx, dword [ebp - 0x10]
mov eax, 0x46c4d8
call fcn.00405190
test eax, eax
jle 0x46c386
push 0x46c4e4
push dword [ebp - 0x10]
push 0x46c4e4
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404f0c
lea eax, [ebp - 0x47c]
call fcn.00468420
push dword [ebp - 0x47c]
push 0x46c4f0
mov eax, esi
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x480]
call fcn.004092b8
push dword [ebp - 0x480]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push 0x46c4d8
push dword [ebx + 0xf8]
lea eax, [ebp - 0x14]
mov edx, 7
call fcn.00404f0c
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.0040504c
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
jne 0x46c456
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.00409e58
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 0x46c470
mov edx, ebx
mov eax, dword [ebx + 0xcc]
call dword [ebx + 0xc8]
jmp 0x46c47c
mov eax, dword [0x47c738]
mov eax, dword [eax]
call fcn.004625c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46c4ae
lea eax, [ebp - 0x484]
mov edx, 6
call fcn.00404bb0
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00404bb0
ret