Function at 0x477070
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov edi, dword [ebp + 8]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
lea esi, [esp + 0x28]
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.004bc220
add esp, 0xc
test al, al
je 0x4772de
mov edi, dword [ebp + 0x14]
lea ebx, [esp + 0x38]
push esi
push 0x8754da
push ebx
call fcn.00478870
add esp, 0xc
mov ecx, ebx
push 0x8754da
call fcn.00522770
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax], 0
test byte [esp + 0x38], 1
je 0x47710f
push dword [esp + 0x40]
call fcn.0051c570
add esp, 4
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
mov esi, dword [edi]
mov edi, dword [edi + 4]
cmp esi, edi
je 0x477256
mov dword [esp + 0x10], edi
nop word [eax + eax]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
lea ecx, [esp + 0x38]
push esi
call fcn.0051f860
test byte [esp], 1
jne 0x477180
mov word [esp + 2], 0
mov byte [esp], 0
jmp 0x477191
mov eax, dword [esp + 8]
mov word [eax], 0
mov dword [esp + 4], 0
movzx eax, byte [esp + 0x38]
test al, 1
je 0x4771b0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
jmp 0x4771b6
shr eax, 1
lea ecx, [esp + 0x39]
mov edx, esp
push edx
push eax
push ecx
call fcn.004bc220
add esp, 0xc
mov ebx, eax
test al, al
je 0x4771f0
lea ecx, [esp + 0x18]
push 0x8754de
call fcn.00522770
movzx eax, byte [esp]
test al, 1
je 0x477210
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
jmp 0x477216
mov eax, dword [ebp + 8]
mov dword [eax], 0
test byte [esp + 0x38], 1
jne 0x477237
jmp 0x477243
shr eax, 1
lea edx, [esp + 2]
lea edi, [esp + 0x18]
mov ecx, edi
push eax
push edx
call fcn.005225a0
mov ecx, edi
push 0x22
call fcn.00522920
mov edi, dword [esp + 0x10]
test byte [esp + 0x38], 1
je 0x477243
push dword [esp + 0x40]
call fcn.0051c570
add esp, 4
test bl, bl
je 0x47738a
add esi, 0xc
cmp esi, edi
jne 0x477140
lea eax, [ebp + 0x18]
xorps xmm0, xmm0
movups xmmword [esp + 0x6c], xmm0
movups xmmword [esp + 0x5c], xmm0
movups xmmword [esp + 0x4c], xmm0
movups xmmword [esp + 0x3c], xmm0
mov dword [esp + 0x38], 0x44
movaps xmmword [esp + 0x80], xmm0
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov eax, ecx
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x4772c6
mov eax, dword [esp + 0x10]
lea esi, [eax*4]
xor ebx, ebx
nop dword [eax]
mov eax, dword [edi + ebx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.00470f20
add esp, 4
push 1
push 1
push eax
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
add ebx, 4
cmp esi, ebx
jne 0x4772a0
test byte [esp + 0x28], 1
je 0x4772f4
mov eax, dword [esp + 0x30]
test byte [esp + 0x18], 1
jne 0x4772ff
lea ecx, [esp + 0x1a]
jmp 0x477303
mov dword [edi], 0
test byte [esp + 0x28], 1
jne 0x4773b9
jmp 0x4773c5
lea eax, [esp + 0x2a]
test byte [esp + 0x18], 1
je 0x4772d8
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ebx, dword [esp + 0x10]
test ebx, ebx
setne dl
lea esi, [esp + 0x80]
push esi
lea esi, [esp + 0x3c]
push esi
push 0
push 0
push 0
push edx
push 0
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov dword [esp + 0x34], eax
test ebx, ebx
je 0x477366
mov esi, ebx
shl esi, 2
xor ebx, ebx
nop dword [eax]
mov eax, dword [edi + ebx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.00470f20
add esp, 4
push 0
push 1
push eax
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
add ebx, 4
cmp esi, ebx
jne 0x477340
cmp dword [esp + 0x34], 0
je 0x477383
push dword [esp + 0x84]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x80]
jmp 0x477385
xor eax, eax
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
test byte [esp], 1
je 0x47739c
push dword [esp + 8]
call fcn.0051c570
add esp, 4
test byte [esp + 0x18], 1
je 0x4773af
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
mov edi, dword [ebp + 8]
test byte [esp + 0x28], 1
je 0x4773c5
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret