Function at 0x100e6db0
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10151768
mov eax, dword fs:[0]
push eax
sub esp, 0x184
mov eax, dword [0x1019a128]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov bl, dl
mov eax, ecx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x100e6df1
call fcn.100e7c30
mov dword [ebp - 0x18], eax
mov edx, str.explorer.exe
test bl, bl
mov ecx, str.winlogon.exe
cmove ecx, edx
mov edx, eax
call fcn.100e6c00
mov edi, eax
test edi, edi
jne 0x100e6e7c
push str.GetUserToken
lea edx, [eax + 4]
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], edi
mov al, byte [esi + 0x48]
test al, al
je 0x100e6e6a
mov edx, str.GetProcessPid_for
mov ecx, esi
call fcn.10020800
mov al, byte [esi + 0x48]
test al, al
je 0x100e6e6a
mov eax, str.user
test bl, bl
mov edx, str.system
mov ecx, esi
cmove edx, eax
call fcn.10020800
cmp byte [esi + 0x48], 0
je 0x100e6e6a
mov edx, str._failed
mov ecx, esi
call fcn.10020800
lea ecx, [ebp - 0xe8]
call fcn.1000ad70
xor eax, eax
jmp 0x100e71f8
push edi
push 0
push 0x2000000
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x100e6f19
push str.GetUserToken
mov edx, 4
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 1
mov al, byte [esi + 0x48]
test al, al
je 0x100e6efa
mov edx, str.OpenProcess_pid
mov ecx, esi
call fcn.10020800
mov al, byte [esi + 0x48]
test al, al
je 0x100e6efa
push edi
mov ecx, esi
call fcn.100201d0
cmp byte [esi + 0x48], 0
je 0x100e6efa
mov edx, str._failed_err_
mov ecx, esi
call fcn.10020800
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [esi + 0x48], 0
je 0x100e6f0e
push eax
mov ecx, esi
call fcn.100201d0
lea ecx, [ebp - 0xe8]
jmp 0x100e71d6
lea ecx, [ebp - 0x3c]
push ecx
push 0x201eb
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x100e6f5d
push str.GetUserToken
lea edx, [eax + 4]
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 2
mov al, byte [esi + 0x48]
test al, al
je 0x100e6efa
mov edx, str.OpenProcessToken_pid
jmp 0x100e6ed2
lea eax, [ebp - 0x20]
push eax
push str.SeDebugPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
jne 0x100e6fa5
push str.GetUserToken
lea edx, [eax + 4]
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 3
cmp byte [esi + 0x48], 0
je 0x100e6efa
mov edx, str.LookupPrivilegeValue_failed_err_
jmp 0x100e6ef3
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test bl, bl
jne 0x100e703b
mov esi, dword [ebp - 0x3c]
xor edx, edx
push ecx
call fcn.100d70a0
add esp, 4
test al, al
je 0x100e7035
lea eax, [ebp - 0x34]
push eax
push 4
lea eax, [ebp - 0x14]
push eax
push 0x12
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
call esi
test eax, eax
jne 0x100e70ad
push str.IsUACEnabled
lea edx, [eax + 8]
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 4
cmp byte [esi + 0x48], 0
je 0x100e7013
mov edx, str.GetTokenInformation_failed_err
mov ecx, esi
call fcn.10020800
call edi
cmp byte [esi + 0x48], 0
je 0x100e7023
push eax
mov ecx, esi
call fcn.100201d0
lea ecx, [ebp - 0xe8]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ad70
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
push eax
push 1
push 1
push 0
push 0x2000000
push dword [ebp - 0x3c]
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 2
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
jne 0x100e710d
push str.GetUserToken
lea edx, [eax + 4]
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 6
cmp byte [esi + 0x48], 0
je 0x100e70a6
mov edx, str.DuplicateTokenEx_failed_err_
mov ecx, esi
call fcn.10020800
call edi
jmp 0x100e6f00
cmp dword [ebp - 0x14], 1
je 0x100e7035
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 4
push eax
push 4
lea eax, [ebp - 0x38]
push eax
push 0x13
push dword [ebp - 0x3c]
call esi
test eax, eax
jne 0x100e71db
push str.GetUserToken
lea edx, [eax + 4]
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 5
cmp byte [esi + 0x48], 0
je 0x100e6efa
mov edx, 0x10175a20
mov ecx, esi
call fcn.100205a0
jmp 0x100e6efa
push 4
lea eax, [ebp - 0x18]
push eax
push 0xc
push dword [ebp - 0x38]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
jne 0x100e7168
push dword [ebp - 0x38]
call esi
push str.GetUserToken
mov edx, 4
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0xe8]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 7
cmp byte [esi + 0x48], 0
je 0x100e7161
mov edx, str.SetTokenInformation_failed_err_
mov ecx, esi
call fcn.10020800
call edi
jmp 0x100e6f00
push 0
push 0
push 0x10
lea eax, [ebp - 0x30]
push eax
push 0
push dword [ebp - 0x38]
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
jne 0x100e71db
push dword [ebp - 0x38]
call esi
push str.GetUserToken
mov edx, 4
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x190]
call fcn.1000aed0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 8
cmp byte [esi + 0x48], 0
je 0x100e71c0
mov edx, str.AdjustTokenPrivileges_failed_err_
mov ecx, esi
call fcn.10020800
call edi
cmp byte [esi + 0x48], 0
je 0x100e71d0
push eax
mov ecx, esi
call fcn.100201d0
lea ecx, [ebp - 0x190]
call fcn.1000ad70
mov eax, dword [ebp - 0x3c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x100e71eb
push eax
call esi
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x100e71f5
push eax
call esi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101157bc
mov esp, ebp
pop ebp
ret