Function at 0x1002b020
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x3918
call fcn.10047e80
push ebp
push esi
push edi
xor ebp, ebp
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x50]
mov dword [esp + 0x4c], ebp
rep stosd dword es:[edi], eax
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x3928]
mov dword [esp + 0x40], eax
mov ecx, 0x9ff
lea edi, [esp + 0x1125]
mov dword [esp + 0x44], eax
mov byte [esp + 0x1124], al
push ebp
rep stosd dword es:[edi], eax
mov cl, byte [esi]
mov dword [esp + 0x14], ebp
stosw word es:[edi], ax
mov byte [esp + 0x28], cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], ebp
stosb byte es:[edi], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x24]
mov eax, dword [edx]
push eax
push ebp
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
lea ecx, [esp + 0x24]
push ecx
call fcn.1002c280
push ebp
call fcn.1002cd90
xor edx, edx
add esp, 8
cmp edx, str.userenv.dll
mov dword [esp + 0x1120], ebp
je 0x1002b0f6
mov edi, str.userenv.dll
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x1002b0f6
push str.userenv.dll
call fcn.1002cc20
add esp, 4
mov dword [esp + 0x1120], eax
mov edi, dword [esp + 0x1120]
push ebx
push str.CreateEnvironmentBlock
push edi
call fcn.1002cd70
push str.DestroyEnvironmentBlock
push edi
mov esi, eax
call fcn.1002cd70
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x48]
push 0x10052824
push eax
mov dword [esp + 0x50], ebp
call fcn.1002a6a0
add esp, 0x18
test al, al
je 0x1002b467
mov ecx, dword [esp + 0x38]
push ecx
push ebp
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
cmp edi, ebp
jne 0x1002b178
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jne 0x1002b15d
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ebp
call fcn.1002f6e0
add esp, 4
lea ecx, [esp + 0x10]
push eax
push esi
push str._comm__createProcessAsUser__s__OpenProcess_explorer__failed:__s
push 0x10052834
jmp 0x1002b1b4
lea edx, [esp + 0x18]
push edx
push 0xf01ff
push edi
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x1002b1cb
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jne 0x1002b19b
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ebp
call fcn.1002f6e0
add esp, 4
lea ecx, [esp + 0x10]
push eax
push esi
push str._comm__createProcessAsUser__s__OpenProcessToken_explorer__failed:__s
push 0x10052880
call fcn.10030b00
push eax
call fcn.10030b10
add esp, 0x10
mov dword [esp + 0x14], ebp
jmp 0x1002b5ac
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
push 1
push 1
push ebp
push 0x2000000
push ecx
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
lea edx, [esp + 0x50]
mov dword [esp + 0x50], 0x44
push edx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov al, byte [esp + 0x3934]
test al, al
je 0x1002b217
mov word [esp + 0x80], 5
mov dword [esp + 0x7c], 1
jmp 0x1002b23c
mov eax, 0xffffff9c
mov dword [esp + 0x68], ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], ebp
mov word [esp + 0x80], bp
mov dword [esp + 0x7c], 7
mov eax, dword [esp + 0x18]
push ebp
lea ecx, [esp + 0x28]
push eax
push ecx
call esi
test eax, eax
je 0x1002b42d
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, edx
cmp word [eax], bp
jne 0x1002b264
cmp word [eax + 2], bp
je 0x1002b26a
inc ecx
add eax, 2
jmp 0x1002b259
push ebp
push ebp
lea eax, [esp + 0x1130]
push 0x2800
push eax
push ecx
push edx
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
call fcn.1002f250
test al, al
je 0x1002b2fb
xor eax, eax
mov cl, byte [esp + eax + 0x1128]
test cl, cl
jne 0x1002b2a4
mov cl, byte [esp + eax + 0x1129]
test cl, cl
je 0x1002b2ac
inc eax
cmp eax, 0x2800
jl 0x1002b28e
push str.CommonProgramFiles_x86_
lea ecx, [esp + 0x112c]
push eax
push ecx
call fcn.1002af30
push str.CommonProgramW6432
lea edx, [esp + 0x1138]
push eax
push edx
call fcn.1002af30
push 0x10052a14
push eax
lea eax, [esp + 0x1148]
push eax
call fcn.1002af30
push str.ProgramW6432
lea ecx, [esp + 0x1150]
push eax
push ecx
call fcn.1002af30
add esp, 0x30
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x1002b308
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea edx, [esp + 0x94]
push eax
push edx
call fcn.1002a7b0
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x1002b325
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x50]
push ecx
push edx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x1130]
push ebp
push ecx
push 0xc000030
push ebp
push ebp
push ebp
push eax
push ebp
push edx
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserA]
mov ecx, dword [esp + 0x98]
mov esi, eax
cmp ecx, ebp
je 0x1002b375
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x1002b36c
cmp al, 0xff
je 0x1002b36c
dec al
mov byte [ecx], al
jmp 0x1002b375
push ecx
call fcn.10047cb0
add esp, 4
cmp esi, ebp
je 0x1002b3df
mov edx, dword [esp + 0x3c]
cmp edx, 0xffffffff
je 0x1002b3df
mov eax, dword [esp + 0x3938]
mov ecx, dword [esp + 0x44]
cmp eax, ebp
je 0x1002b396
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
cmp eax, ebp
jne 0x1002b3a7
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ecx
push eax
push str._comm__createProcessAsUser__s__successed__pid_d
push 0x10052a38
lea ecx, [esp + 0x20]
call fcn.10030b00
push eax
call fcn.10030b10
mov al, byte [esp + 0x3940]
add esp, 0x10
test al, al
je 0x1002b414
mov eax, dword [esp + 0x3c]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x1002b414
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jne 0x1002b3ed
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ebp
call fcn.1002f6e0
add esp, 4
lea ecx, [esp + 0x10]
push eax
push esi
push str._comm__createProcessAsUser__s__failed:__s
push 0x10052a74
call fcn.10030b00
push eax
call fcn.10030b10
add esp, 0x10
mov eax, dword [esp + 0x40]
cmp eax, 0xffffffff
je 0x1002b5ac
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1002b5ac
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jne 0x1002b43b
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ebp
call fcn.1002f6e0
add esp, 4
lea ecx, [esp + 0x10]
push eax
push esi
push str._comm__createProcessAsUser__d__CreateEnvironmentBlock_failed:__s
push 0x10052aa8
call fcn.10030b00
push eax
call fcn.10030b10
add esp, 0x10
jmp 0x1002b5ac
push ebp
call fcn.1002cd90
xor ecx, ecx
add esp, 4
xor ebx, ebx
cmp ecx, 0x100528d0
je 0x1002b49c
mov edi, 0x100528d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x1002b49c
push 0x100528d0
call fcn.1002cc20
add esp, 4
mov ebx, eax
push ebp
call fcn.1002cd90
xor edx, edx
add esp, 4
cmp edx, str.wtsapi32.dll
je 0x1002b4cf
mov edi, str.wtsapi32.dll
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x1002b4cf
push str.wtsapi32.dll
call fcn.1002cc20
add esp, 4
mov ebp, eax
push 0x100528f0
push ebx
call fcn.1002cd70
push str.WTSQueryUserToken
push ebp
mov esi, eax
call fcn.1002cd70
add esp, 0x10
mov edi, eax
test esi, esi
je 0x1002b537
call esi
cmp eax, 0xffffffff
jne 0x1002b53b
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x1002b504
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push str._comm__createProcessAsUser__s__failed:_No_session_attached_to_the_console__WTSGetActiveConsoleSessionId_failed_
push 0x10052924
lea ecx, [esp + 0x1c]
call fcn.10030b00
push eax
call fcn.10030b10
push ebp
mov dword [esp + 0x24], 0
call fcn.1002cd90
push ebx
call fcn.1002cd90
add esp, 0x14
jmp 0x1002b5a6
mov eax, dword [esp + 0x10]
test edi, edi
je 0x1002b597
lea ecx, [esp + 0x18]
push ecx
push eax
call edi
test eax, eax
jne 0x1002b597
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x1002b559
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0
call fcn.1002f6e0
add esp, 4
lea ecx, [esp + 0x10]
push eax
push esi
push str._comm__createProcessAsUser__s__WTSQueryUserToken_failed:__s
push 0x100529a0
call fcn.10030b00
push eax
call fcn.10030b10
push ebp
mov dword [esp + 0x28], 0
call fcn.1002cd90
push ebx
call fcn.1002cd90
add esp, 0x18
jmp 0x1002b5a6
push ebp
call fcn.1002cd90
push ebx
call fcn.1002cd90
add esp, 8
mov edi, dword [esp + 0x20]
xor ebp, ebp
mov eax, dword [esp + 0x24]
pop ebx
cmp eax, ebp
je 0x1002b5ba
push eax
call dword [esp + 0x4c]
cmp edi, ebp
je 0x1002b5c9
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call esi
jmp 0x1002b5cf
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x1002b5da
push eax
call esi
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x1002b5e5
push eax
call esi
mov edx, dword [esp + 0x1120]
push edx
call fcn.1002cd90
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp ecx, ebp
pop edi
pop esi
pop ebp
je 0x1002b625
mov al, byte [ecx - 1]
test al, al
je 0x1002b61b
cmp al, 0xff
je 0x1002b61b
dec al
mov byte [ecx - 1], al
mov eax, dword [esp + 4]
add esp, 0x3918
ret
dec ecx
push ecx
call fcn.10047cb0
add esp, 4
mov eax, dword [esp + 4]
add esp, 0x3918
ret