Function at 0x4570fc
Capabilities:
Create process on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
push ebx
push esi
push edi
push 2
pop ebx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x7c]
push ebx
call fcn.0040194d
push dword [esp + 0x34]
movdqa xmm0, xmmword [0xa76f60]
lea eax, [esp + 0xb4]
push eax
xor esi, esi
mov dword [esp + 0x34], 0xfffffff8
lea eax, [esp + 0xa8]
mov dword [esp + 0x34], 0xfffffff7
push eax
mov dword [esp + 0x38], 0xc857617c
lea ecx, [esp + 0x6c]
push esi
movdqu xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
call fcn.00401a81
mov dword [esp + 0x2c], 0x44bd1a6f
lea ecx, [esp + 0x88]
push 4
call fcn.0040194d
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], esi
jmp 0x4571a4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
mov dword [eax + ecx*4], 0x2124f84b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x457191
mov dword [esp + 0xc], esi
jmp 0x4571bc
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x40], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x4571b0
mov dword [esp + 0xc], esi
jmp 0x4571dc
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x88]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x4571c9
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 4]
mov edi, dword [eax]
xor eax, eax
cmp edx, edi
setne al
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0x591b68de
setle al
dec eax
add eax, edx
je 0x457215
test edi, edi
je 0x457215
xor edi, edi
inc edi
mov esi, edi
jmp 0x457218
xor edi, edi
inc edi
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x88]
inc dword [esp + 0x20]
call fcn.00401a1f
lea ecx, [esp + 0x60]
call fcn.00401a1f
lea ecx, [esp + 0x7c]
call fcn.00401a1f
mov dword [esp + 0x28], 0xa149cec7
lea ecx, [esp + 0x48]
mov dword [esp + 0x10], 0x1658a600
mov dword [esp + 0x24], 0x45beac3e
push edi
call fcn.0040194d
mov dword [esp + 0x1c], 4
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x20], 0xe61175c8
push 3
mov dword [esp + 0x18], 0x69e1d621
mov dword [esp + 0x10], eax
pop esi
jmp 0x45729a
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x94], 0xca3c0bf9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x457287
mov dword [esp + 0xc], eax
jmp 0x4572b9
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov dword [ecx + edx*4], 0x3b03c3fa
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x4572a6
mov dword [esp + 0xc], eax
jmp 0x4572d5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x38], 0x78dfce24
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x4572c5
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
imul ecx, dword [esp + 0x28]
dec dword [esp + 0x3c]
test ecx, ecx
jne 0x457304
mov edx, eax
cmp dword [esp + 0x3c], eax
je 0x457306
mov edx, edi
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x94], edx
mov dword [esp + 0x20], edx
xor edx, edx
cmp dword [ecx], eax
sete dl
xor ebx, ebx
imul ecx, edx, 0x7afc
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
mov ecx, dword [esp + 0x28]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x1c]
setg dl
xor ebx, ebx
cmp edx, ecx
setle bl
add ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
add ebx, dword [ecx]
xor ecx, ecx
cmp ebx, 0x74484a86
setl cl
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
jmp 0x457389
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x94], 0x293e35f2
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x457376
lea ecx, [esp + 0x48]
call fcn.00401a1f
push 0x5c90
xor esi, esi
lea eax, [esp + 0x38]
push esi
push dword [esp + 0x38]
push eax
push 0x5bd1
call fcn.0045efb4
add esp, 0x14
mov dword [esp + 0x1c], 4
mov dword [esp + 0xc], 0x979cd329
xor eax, eax
mov dword [esp + 0x14], 0xfffffffe
mov dword [esp + 0x2c], 0xfffffffc
push 3
pop esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], 0x3a1a91f1
mov dword [esp + 0x20], 0xbc8977b4
mov dword [esp + 0x10], eax
jmp 0x457405
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x44], 0x262954f6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4573f5
mov ecx, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, 0xebf495e3
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, 0xd8b9
setne dl
sub edx, dword [esp + 0x1c]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp edx, ecx
setle bl
xor ecx, ecx
cmp ebx, 0xe52d
setne cl
sub ecx, dword [esp + 0x1c]
cmp ecx, 0x2a43
jle 0x457465
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x14], eax
jne 0x45749c
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x4575ff
push 0xf2b
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x4575fd
push esi
lea ecx, [esp + 0x58]
call fcn.0040194d
xor eax, eax
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], esi
jge 0x4574d1
push dword [esp + 0xc]
lea ecx, [esp + 0x58]
call fcn.00401379
mov dword [eax], 0x79cc099a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4574b2
xor eax, eax
push 2
mov dword [esp + 0x10], eax
pop ebx
jmp 0x4574ed
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xb0], 0x15e1b460
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x4574da
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], ebx
jg 0x4575e1
push eax
lea ecx, [esp + 0x58]
call fcn.00401379
mov esi, eax
mov ecx, 0x49f0dc4b
mov dword [esp + 0x24], 0x7eb23672
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x10], 0x22cbd4da
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
push dword [esp + 0xc]
call fcn.00401379
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [esp + 0xc]
add ecx, eax
mov eax, dword [esi]
neg eax
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x24]
je 0x45756a
mov eax, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x78], edi
cmp dword [esi], edi
setg al
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], eax
jl 0x4575ce
mov dword [esp + 0x10], eax
jmp 0x45759e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xb8], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45758b
mov dword [esp + 0x10], eax
jmp 0x4575be
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc0], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x4575ab
dec dword [esp + 0x28]
dec dword [esp + 0x14]
jns 0x457585
inc dword [esp + 0xc]
mov ecx, 0x49f0dc4b
cmp dword [esp + 0xc], ebx
jle 0x457512
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x4575f4
push eax
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0x54]
call fcn.00401a1f
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
imul edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
sub ecx, edx
jne 0x45761a
cmp dword [esp + 0x20], eax
je 0x45761c
mov eax, edi
add eax, 6
mov dword [esp + 0x44], eax
je 0x457629
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
imul eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
sub eax, 9
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov esp, ebp
pop ebp
ret