Function at 0x18074d26
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
mov eax, dword [0x180af1d0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, edx
push eax
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebx]
push ebx
call dword [ecx + 0x80]
xor esi, esi
cmp eax, esi
jl 0x18074fca
mov eax, dword [ebx]
push edi
push ebx
call dword [eax + 0x88]
cmp eax, esi
jl 0x18074fca
push dword [ebp - 0x78]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x48]
cmp eax, esi
jl 0x18074fca
cmp byte [ebp + 0x10], 0
mov eax, dword [ebx]
je 0x18074d97
push esi
push 0x1809c2bc
push ebx
call dword [eax + 0x78]
mov edi, eax
jmp 0x18074e39
push 0x2000
push ebx
call dword [eax + 0x70]
cmp eax, esi
jl 0x18074fca
mov eax, dword [0x180b4188]
mov ecx, 0x180b4188
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x78], eax
mov eax, 0x101
mov dword [ebp - 0x90], eax
push eax
lea eax, [ebp - 0x78]
lea edi, [ebp - 0x9c]
call fcn.18002b2f
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x90]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
mov esi, dword [ebp - 0x9c]
neg eax
sbb al, al
inc al
mov byte [ebp - 0x71], al
mov eax, dword [ebp - 0x94]
call fcn.18003baa
cmp byte [ebp - 0x71], 0
je 0x18074e1f
call fcn.1800d4b3
mov esi, eax
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
call fcn.18003e0a
mov eax, esi
jmp 0x18074fca
mov eax, dword [ebx]
push 0
push dword [ebp - 0x78]
push ebx
call dword [eax + 0x78]
mov edi, eax
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
call fcn.18003e0a
xor esi, esi
cmp edi, esi
jl 0x18074fc8
call fcn.1800cd37
xor ecx, ecx
test al, al
setne cl
or eax, 0xffffffff
sub eax, ecx
mov ecx, dword [ebx]
push eax
push ebx
call dword [ecx + 0xa8]
cmp eax, esi
jl 0x18074fca
cmp byte [ebp + 0x14], 0
je 0x18074e7f
cmp byte [ebp + 0x10], 0
je 0x18074e7f
mov eax, ebx
call fcn.18074b83
cmp eax, esi
jl 0x18074fca
push dword [ebp + 0x18]
mov eax, ebx
call fcn.18074c0e
cmp eax, esi
pop ecx
jl 0x18074fca
mov eax, dword [ebx]
lea ecx, [ebp - 0x70]
push ecx
push 0x1809d9e0
push ebx
mov dword [ebp - 0x70], esi
call dword [eax]
mov eax, dword [ebp - 0x70]
cmp eax, esi
jne 0x18074eb4
mov eax, 0x80004002
jmp 0x18074fca
mov ecx, dword [eax]
push 1
push esi
push eax
call dword [ecx + 0x18]
mov edi, eax
cmp edi, esi
jl 0x18074fbb
cmp byte [ebp + 0x10], 0
mov eax, dword [ebp - 0x70]
je 0x18074ee1
cmp eax, esi
je 0x18074eda
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
jmp 0x18074fca
lea edx, [ebp - 0x7c]
push edx
mov dword [ebp - 0x7c], esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov edi, eax
cmp edi, esi
jl 0x18074fb2
mov eax, dword [ebp - 0x70]
cmp eax, esi
je 0x18074f08
mov dword [ebp - 0x70], esi
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, 0x1809c768
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
call fcn.18006a06
lea eax, [ebp - 0x8c]
call fcn.1801cb14
test al, al
je 0x18074f92
mov eax, edi
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.180067fd
test al, al
je 0x18074f92
mov ecx, dword [ebp - 0x7c]
push esi
push 0x1f01ff
mov eax, edi
push eax
push 1
call fcn.18004372
add esp, 0x10
lea ecx, [ebp - 0x6c]
mov edi, eax
call fcn.18003638
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x8c], ebx
call fcn.18006940
push dword [ebp - 0x7c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
cmp edi, esi
mov eax, dword [ebp - 0x70]
jl 0x18074fbe
jmp 0x18074ed0
call fcn.1800d4b3
lea ecx, [ebp - 0x6c]
mov edi, eax
call fcn.18003638
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x8c], ebx
call fcn.18006940
push dword [ebp - 0x7c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x70]
cmp eax, esi
je 0x18074fc8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.18075e75
leave
ret