Function at 0x407c30
Capabilities:
Create process on windows

Disassembly:
sub esp, 0x2fc
push ebx
push ebp
push esi
push edi
xor bl, bl
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x69]
mov byte [esp + 0x68], bl
xor edx, edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x10
mov word [esp + 0x11], ax
lea edi, [esp + 0x28]
mov dword [esp + 0x24], edx
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea edi, [esp + 0x170]
mov dword [esp + 0x1c], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 0x20], ecx
mov ecx, 0x26
rep stosd dword es:[edi], eax
push edx
mov byte [esp + 0x14], bl
mov byte [esp + 0x17], al
mov dword [esp + 0x170], 0x9c
call esi
test eax, eax
jne 0x407cc4
lea eax, [esp + 0x16c]
mov dword [esp + 0x16c], 0x94
push eax
call esi
lea ecx, [esp + 0x68]
push 0x104
push ecx
call fcn.00402c20
add esp, 8
test eax, eax
jne 0x407cf4
push str._CreateSdProcess__GetSangforSduiPath_Failed_n
call fcn.00402970
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2fc
ret
cmp dword [esp + 0x310], 1
jne 0x407d00
mov bl, 0x10
call fcn.004013b0
add bl, 0x40
mov ebp, eax
mov byte [esp + 0x10], 0x20
mov byte [esp + 0x11], bl
call fcn.00407ba0
mov ebx, dword [esp + 0x314]
test eax, eax
je 0x407ddb
call fcn.004079e0
test eax, eax
je 0x407ddb
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x209]
mov byte [esp + 0x208], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
test ebx, ebx
stosb byte es:[edi], al
je 0x407d7a
lea edx, [esp + 0x10]
push str._StartSDOffLine
push edx
push str._s__s
lea eax, [esp + 0x214]
push 0x103
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x14
jmp 0x407da2
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x208]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 1
lea ecx, [esp + 0x20c]
push 0
lea edx, [esp + 0x70]
push ecx
push edx
push str.runas
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0x20
ja 0x407e8b
lea eax, [esp + 0x68]
push eax
push str._CreateSdProcess__ShellExecute_Failed__Cmd_s_n
call fcn.00402970
add esp, 8
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x68]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
je 0x407e2e
lea eax, [esp + 0x68]
push str._StartSDOffLine
push eax
push str._s__s
lea ecx, [esp + 0x74]
push 0x103
push ecx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x14
lea edx, [esp + 0x14]
lea eax, [esp + 0x24]
push edx
push eax
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x84]
push ebp
push ecx
push 0
mov dword [esp + 0x4c], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x407e8b
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0x68]
push eax
push edx
push str._CreateSdProcess__CreateProcess_Failed__Cmd_s__err_d_n
call fcn.00402970
push ebp
call fcn.00401640
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2fc
ret
push ebp
call fcn.00401640
mov eax, dword [esp + 0x314]
add esp, 4
test eax, eax
jne 0x407ea4
call fcn.004077f0
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
mov ecx, dword [esp + 0x18]
push ecx
call esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2fc
ret