Function at 0x4155db
Capabilities:
Create process on windows

Disassembly:
push 0xd4
mov eax, 0x591cb9
call fcn.0054669f
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x8c], esi
lea eax, [ebx + 0x10]
push eax
call fcn.00427022
pop ecx
test al, al
jne 0x415666
push 0x50
call fcn.005465e0
pop ecx
mov dword [ebp - 0x8c], eax
xor edi, edi
mov dword [ebp - 4], edi
test eax, eax
je 0x415625
push ebx
mov ecx, eax
call fcn.0043e4bc
jmp 0x415627
mov eax, edi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x8c], edi
push dword [ebp - 0x8c]
mov dword [ebp - 0x90], edi
push eax
call fcn.00412ae8
mov ecx, dword [ebp - 0x90]
mov dword [esi], 1
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x8c]
mov dword [esi + 8], ecx
jmp 0x41591b
mov ecx, dword [ebx + 0xc]
mov eax, ecx
shr eax, 2
and al, 1
je 0x4156df
shr ecx, 1
and cl, 1
je 0x4156df
push 0x50
call fcn.005465e0
pop ecx
mov dword [ebp - 0x8c], eax
xor edi, edi
mov dword [ebp - 4], 1
test eax, eax
je 0x41569e
push ebx
mov ecx, eax
call fcn.0043e4bc
jmp 0x4156a0
mov eax, edi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x8c], edi
push dword [ebp - 0x8c]
mov dword [ebp - 0x90], edi
push eax
call fcn.00412ae8
mov eax, dword [ebp - 0x90]
mov dword [esi], 2
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x8c]
mov dword [esi + 8], eax
jmp 0x41591b
push ebx
call fcn.00415dd0
pop ecx
test al, al
je 0x4156f8
push ebx
push esi
call fcn.00415923
pop ecx
pop ecx
jmp 0x41591b
push 0x50
call fcn.005465e0
pop ecx
mov dword [ebp - 0x8c], eax
xor edi, edi
mov dword [ebp - 4], 2
test eax, eax
je 0x41571d
push ebx
mov ecx, eax
call fcn.0043e4bc
jmp 0x41571f
mov eax, edi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x8c], edi
push dword [ebp - 0x8c]
mov dword [ebp - 0x90], edi
push eax
call fcn.00412ae8
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xd8], eax
lea eax, [ebx + 0x10]
mov dword [ebp - 4], 3
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.004118e7
lea eax, [ebx + 0x28]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004118e7
add esp, 0x10
push 5
pop eax
mov byte [ebp - 4], al
mov ecx, ebx
lea eax, [ebp - 0x88]
push eax
call fcn.0043e7bb
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 6
push eax
call fcn.0041efad
pop ecx
pop ecx
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 8
call fcn.00406661
lea eax, [ebp - 0x58]
push ebx
push eax
call fcn.00414dc4
pop ecx
pop ecx
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
xorps xmm0, xmm0
mov byte [ebp - 4], 9
cmovae eax, dword [ebp - 0x70]
movlpd qword [ebp - 0xa8], xmm0
movlpd qword [ebp - 0xa0], xmm0
movlpd qword [ebp - 0x98], xmm0
mov dword [ebp - 0xcc], 0x3c
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc8], 0x440
call fcn.00414535
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0xc4], eax
jne 0x41581f
mov eax, edi
jmp 0x41582a
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0xb8], eax
jne 0x41583a
mov eax, edi
jmp 0x415845
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
test byte [ebx + 0xc], 1
push 5
pop ebx
mov dword [ebp - 0xb4], eax
mov eax, ebx
push 0
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xac], edi
cmp dword [ebp - 0x44], 8
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
cmp eax, 1
jne 0x4158db
cmp dword [ebp - 0x94], 0
je 0x4158db
push dword [ebp - 0x94]
call dword [sym.imp.KERNEL32.dll_GetProcessId]
mov ebx, dword [ebp - 0x90]
mov dword [ebx + 0x40], eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.00412eac
pop ecx
pop ecx
push eax
lea ecx, [ebx + 0x48]
call fcn.004044b0
mov ecx, dword [ebp - 0xd0]
test ecx, ecx
je 0x4158d4
call fcn.0040569b
mov dword [esi], edi
mov dword [esi + 4], ebx
jmp 0x4158f2
cmp dword [ebp - 0xac], ebx
push 3
pop eax
cmove eax, ebx
mov dword [esi], eax
mov eax, dword [ebp - 0x90]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0x58]
mov dword [esi + 8], eax
call fcn.00406687
lea ecx, [ebp - 0x28]
call fcn.00406687
lea ecx, [ebp - 0x40]
call fcn.00406687
lea ecx, [ebp - 0x70]
call fcn.00406687
mov eax, esi
call fcn.00546649
ret