Function at 0x405680
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x48a638
push 0x441f50
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2084
call fcn.0044e2b0
mov eax, dword [0x48e050]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2054], edi
mov ebx, edx
xor esi, esi
mov dword [ebp - 0x2038], esi
mov dword [ebp - 0x202c], esi
mov dword [ebp - 0x2028], esi
mov dword [ebp - 0x204c], esi
xor eax, eax
mov dword [ebp - 0x2048], eax
mov dword [ebp - 0x2044], eax
mov dword [ebp - 0x2040], eax
mov dword [ebp - 0x209c], esi
push 0x40
push esi
lea eax, [ebp - 0x2098]
push eax
call fcn.004416b0
add esp, 0xc
call fcn.00405e80
mov dword [ebp - 0x2030], esi
mov dword [ebp - 0x2034], esi
mov dword [ebp - 0x203c], 4
cmp eax, 1
je 0x405aaf
cmp eax, 4
je 0x405aaf
cmp edi, esi
jne 0x405745
xor eax, eax
jmp 0x405abf
mov eax, edi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x405750
sub eax, edx
sar eax, 1
je 0x40573e
cmp ebx, esi
je 0x4057b4
push ebx
push edi
push str.CreateProcessAsUserAdmin:__s__s
call fcn.00404c20
add esp, 0xc
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x405780
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, ebx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x405796
sub eax, edi
sar eax, 1
add eax, edx
cmp eax, 0x1000
ja 0x40573e
mov edi, dword [ebp - 0x2054]
mov eax, dword [ebp + 8]
cmp eax, 0xffffffff
jne 0x4057c2
call dword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x2028]
push ecx
push eax
call sub.WTSAPI32.dll_WTSQueryUserToken
test eax, eax
jne 0x4057ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.WTSQueryUserToken_error:__d
call fcn.00404c20
add esp, 8
jmp 0x405a36
push esi
mov edx, dword [ebp - 0x2028]
push edx
lea eax, [ebp - 0x2030]
push eax
call sub.USERENV.dll_CreateEnvironmentBlock
test eax, eax
jne 0x405820
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateEnvironmentBlock_error:__d
call fcn.00404c20
add esp, 8
jmp 0x405a36
call fcn.00409170
test eax, eax
je 0x4058f0
push str.UAC_dang_bat_n
call fcn.00404c20
add esp, 4
lea ecx, [ebp - 0x203c]
push ecx
mov edx, dword [ebp - 0x203c]
push edx
lea eax, [ebp - 0x2034]
push eax
push 0x13
mov ecx, dword [ebp - 0x2028]
push ecx
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x4058b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetTokenInformation_error:__d
call fcn.00404c20
add esp, 8
lea edx, [ebp - 0x202c]
push edx
push 1
push 2
push esi
push 0x2000000
mov eax, dword [ebp - 0x2028]
push eax
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
jne 0x405938
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DuplicateTokenEx_error:__d
call fcn.00404c20
add esp, 8
jmp 0x405a36
lea ecx, [ebp - 0x202c]
push ecx
push 1
push 2
push esi
push 0x2000000
mov edx, dword [ebp - 0x2034]
push edx
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
jne 0x405938
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DuplicateTokenEx_error:__d
call fcn.00404c20
add esp, 8
jmp 0x405a36
push str.UAC_dang_tat_n
call fcn.00404c20
add esp, 4
lea eax, [ebp - 0x202c]
push eax
push 1
push 2
push esi
push 0x2000000
mov ecx, dword [ebp - 0x2028]
push ecx
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
jne 0x405938
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DuplicateTokenEx_error:__d
call fcn.00404c20
add esp, 8
jmp 0x405a36
xor eax, eax
mov dword [ebp - 0x204c], eax
mov dword [ebp - 0x2048], eax
mov dword [ebp - 0x2044], eax
mov dword [ebp - 0x2040], eax
push 0x44
push esi
lea edx, [ebp - 0x209c]
push edx
call fcn.004416b0
add esp, 0xc
mov dword [ebp - 0x209c], 0x44
mov dword [ebp - 0x2094], str.WinSta0Default
cmp ebx, esi
je 0x4059af
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x405981
sub eax, edx
sar eax, 1
je 0x4059af
push ebx
push edi
push str.__s___s
push 0x1000
lea eax, [ebp - 0x2024]
push eax
call fcn.0043ed50
add esp, 0x14
jmp 0x4059c9
push edi
push str.__s_
push 0x1000
lea ecx, [ebp - 0x2024]
push ecx
call fcn.0043ed50
add esp, 0x10
lea edx, [ebp - 0x2024]
push edx
push str.szCmdLine:__s
call fcn.00404c20
add esp, 8
lea eax, [ebp - 0x204c]
push eax
lea ecx, [ebp - 0x209c]
push ecx
push esi
mov edx, dword [ebp - 0x2030]
push edx
push 0x8000400
push esi
push esi
push esi
lea eax, [ebp - 0x2024]
push eax
push esi
mov ecx, dword [ebp - 0x202c]
push ecx
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
cmp eax, esi
jne 0x405a2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateProcessAsUser_error:__d
call fcn.00404c20
add esp, 8
jmp 0x405a36
mov edx, dword [ebp - 0x204c]
mov dword [ebp - 0x2038], edx
mov dword [ebp - 4], 0xfffffffe
call fcn.00405a4c
mov eax, dword [ebp - 0x2038]
jmp 0x405abf
mov eax, dword [ebp + 8]
push eax
mov edx, ebx
mov ecx, edi
call fcn.00405ae0
add esp, 4
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.0043e4c7
mov esp, ebp
pop ebp
ret