Function at 0x532940
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov al, byte [ebp + 0x10]
mov edx, dword [0x5c4738]
xor edx, ebp
mov dword [esp + 0x88], edx
test al, al
je 0x532a7b
xor edi, edi
dec edi
lea esi, [esp + 0x14]
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
lea ebx, [esp + 0x20]
push ebx
call fcn.0043c570
mov ecx, esi
push ebx
call fcn.0040f3e0
mov ecx, ebx
call fcn.004c5e70
lea ebx, [esp + 8]
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov ecx, dword [ebp + 8]
push ebx
call fcn.0041e1f0
cmp byte [ebx + 0xb], 0
jns 0x5329b6
mov ebx, dword [esp + 8]
cmp word [ebx], 0x22
jne 0x532bad
movzx eax, byte [esp + 0x1f]
test al, al
jns 0x5329cd
mov eax, dword [esp + 0x18]
add eax, 2
lea edx, [esp + 0x14]
lea edi, [esp + 8]
lea ecx, [esp + 0x20]
push edx
push 0xffffffffffffffff
push eax
push edi
call fcn.00418b90
cmp byte [edi + 0xb], 0
js 0x532c72
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
movq xmm0, qword [esp + 0x20]
movq qword [esp + 8], xmm0
lea ebx, [esp + 8]
movzx eax, byte [ebx + 0xb]
mov ecx, ebx
test al, al
jns 0x532a1a
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
push ebx
push 3
push eax
push ecx
call fcn.004c0990
add esp, 0x10
pxor xmm0, xmm0
movdqu xmmword [esp + 0x48], xmm0
movdqu xmmword [esp + 0x38], xmm0
movdqu xmmword [esp + 0x28], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x20], 0x3c
mov dword [esp + 0x24], 0x40
call fcn.00532d50
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], str.runas
cmp byte [esi + 0xb], 0
jns 0x532bc3
mov eax, dword [esp + 0x14]
jmp 0x532bc7
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x20]
movdqu xmmword [esi + 0x4c], xmm0
movdqa xmmword [esi + 0x40], xmm0
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
mov ecx, esi
call fcn.00531b20
call fcn.004294b0
cmp eax, 3
jl 0x532b4a
cmp byte [ebp + 0x14], 0
je 0x532cd3
lea ebx, [esp + 0x84]
mov dword [ebx], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push ebx
push 0xf01ff
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x532b4a
mov ebx, dword [esp + 0x84]
xor eax, eax
dec eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [eax], 0
push eax
push str.S_1_16_8192
call sub.ADVAPI32.dll_ConvertStringSidToSidW
test eax, eax
je 0x532b4a
mov dword [esp + 4], ebx
lea ebx, [esp + 0x14]
mov dword [ebx + 4], 0x20
mov eax, dword [esp + 8]
mov dword [ebx], eax
push eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
add eax, 8
push eax
push ebx
push 0x19
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
je 0x532b4a
mov eax, dword [esp + 0x84]
mov dword [esp + 0x50], eax
xor eax, eax
dec eax
lea ebx, [esp + 0x14]
mov dword [ebx + 4], eax
mov dword [ebx], eax
push esi
push dword [ebp + 8]
push ebx
call fcn.00532cf0
add esp, 0xc
mov ecx, ebx
call fcn.004ce630
test al, al
je 0x532c3d
cmp byte [ebp + 0x14], 0
je 0x532c3d
lea eax, [esp + 8]
mov dword [eax], 0xffffffff
lea ecx, [esp + 0x14]
push eax
call fcn.00520f40
mov ebx, eax
test edi, edi
je 0x532c48
test bl, bl
je 0x532c48
mov eax, dword [esp + 8]
mov dword [edi], eax
jmp 0x532c48
movzx eax, byte [esp + 0x1f]
test al, al
jns 0x5329d0
mov eax, dword [esp + 0x18]
jmp 0x5329d0
lea eax, [esp + 0x14]
mov dword [esp + 0x30], eax
cmp byte [esp + 0x13], 0
jns 0x532bd6
mov ebx, dword [esp + 8]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], 5
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
cmp eax, 1
sete bl
jne 0x532ca1
cmp byte [ebp + 0x14], 0
je 0x532ca1
mov ebx, dword [esp + 0x58]
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [esp + 0x84]
mov dword [eax], 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x532c9f
mov bl, 1
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x532ca1
mov eax, dword [esp + 0x84]
mov dword [ecx], eax
jmp 0x532ca1
lea ecx, [esp + 0x14]
call fcn.004ce630
mov ebx, eax
lea ecx, [esp + 0x14]
call fcn.004bc770
lea ecx, [esp + 0x20]
call fcn.005320d0
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.004d25a3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 8]
mov word [eax], 0
mov dword [esp + 0xc], 0
cmp byte [esp + 0x13], 0
jns 0x5329f0
push dword [esp + 8]
call fcn.004cf0d6
add esp, 4
jmp 0x5329f0
xor ebx, ebx
test edi, edi
je 0x532cac
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [esp + 0x13], 0
jns 0x532cbf
push dword [esp + 8]
call fcn.004cf0d6
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x532c5a
push dword [esp + 0x14]
call fcn.004cf0d6
add esp, 4
jmp 0x532c5a
mov bl, 1
push dword [ebp + 8]
call fcn.00532110
add esp, 4
test al, al
je 0x532abf
jmp 0x532c51