Function at 0x431900
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x48
mov eax, dword [0x673f64]
xor eax, esp
mov dword [esp + 0x44], eax
push esi
push edi
lea eax, [esp + 0x18]
mov dword [esp + 0x14], edx
push eax
push 0x64722c
push 4
push 0
push 0x633410
mov edi, ecx
mov dword [esp + 0x3c], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
js 0x431b3a
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x24]
push edx
push 1
lea edx, [esp + 0x34]
xorps xmm0, xmm0
push edx
push 8
lea edx, [esp + 0x40]
movaps xmmword [esp + 0x40], xmm0
mov ecx, dword [eax]
push edx
push edx
push eax
call dword [ecx + 0x3c]
test eax, eax
jne 0x4319da
lea eax, [esp + 0x20]
push eax
push 0x64726c
push 0x63309c
push dword [esp + 0x30]
call dword [sym.imp.SHLWAPI.dll_IUnknown_QueryService]
mov esi, eax
test esi, esi
js 0x4319ce
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x1c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov esi, eax
test esi, esi
js 0x4319c4
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x28]
push edx
push 0x6471d0
push eax
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x4319df
mov esi, 0x80004005
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test esi, esi
js 0x431b3a
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
push 0x6471f8
mov dword [esp + 0x24], 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x3c]
mov esi, eax
test esi, esi
js 0x431b1d
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x24]
push edx
push 0x64725c
push eax
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
test esi, esi
js 0x431a70
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x18]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, eax
test esi, esi
js 0x431a66
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push edx
push 0x6471e8
push eax
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test esi, esi
js 0x431b1d
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x431a8c
mov eax, dword [edi]
push dword [edi + 0x10]
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
push eax
call esi
mov dword [esp + 0x18], eax
mov eax, 8
mov word [esp + 0x30], ax
mov eax, dword [esp + 0x14]
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x431ab4
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
call esi
mov edi, eax
push 0xffffffffffffffff
mov dword [esp + 0x3c], edi
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
mov ecx, dword [esp + 0x1c]
sub esp, 0x10
mov esi, dword [esp + 0x28]
mov eax, esp
xorps xmm0, xmm0
sub esp, 0x10
mov edx, dword [ecx]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x70]
push esi
push ecx
movups xmmword [eax], xmm0
call dword [edx + 0x7c]
push esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x18], eax
call esi
push edi
call esi
mov ecx, dword [esp + 0x1c]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.0058a7e9
mov esp, ebp
pop ebp
ret
push 6
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x14], 8
jb 0x431b50
mov eax, dword [eax]
cmp dword [edi + 0x14], 8
jb 0x431b58
mov edi, dword [edi]
push 1
push 0
push eax
push edi
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
xor ecx, ecx
cmp eax, 0x20
cmovg esi, ecx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x4c]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.0058a7e9
mov esp, ebp
pop ebp
ret