Function at 0x40022d71
Capabilities:
Get user security identifier

Disassembly:
mov eax, 0x4007234b
call fcn.4006f3a0
sub esp, 0x148
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x80], edx
push edi
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x18], esi
call fcn.40022a30
xor ebx, ebx
lea ecx, [ebp - 0x150]
mov dword [ebp - 4], ebx
push dword [ebp - 0x50]
call fcn.40006bc7
xor eax, eax
lea ecx, [ebp - 0x54]
inc eax
mov byte [ebp - 4], al
call fcn.40022ac0
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0x54]
cmp dword [edi - 0xc], ebx
jne 0x40022dc9
mov byte [ebp - 0x11], bl
jmp 0x4002363c
mov ecx, edi
call fcn.4004cd70
xor eax, eax
mov dword [ebp - 0xd4], 7
mov dword [ebp - 0xd8], ebx
mov word [ebp - 0xe8], ax
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x4c], ebx
push eax
push ebx
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x48], ebx
push eax
push ebx
push dword [esi]
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
push dword [ebp - 0x4c]
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x40022eee
call fcn.40001ce1
push eax
lea ecx, [ebp - 0x24]
call fcn.40006f05
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24]
mov esi, dword [ebp - 0x48]
push esi
call fcn.40006b63
push esi
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x1c], eax
call fcn.40007032
mov esi, dword [ebp - 0x28]
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x18]
push esi
push dword [eax]
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
test eax, eax
je 0x40022ed0
push 0xffffffffffffffff
lea ecx, [ebp - 0x24]
call fcn.40006b9b
cmp dword [ebp - 0x88], 1
jne 0x40022ed0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_ConvertSidToStringSidW]
mov esi, dword [ebp - 0x18]
test eax, eax
je 0x40022ec6
test esi, esi
je 0x40022ec6
cmp word [esi], bx
jne 0x40022eaf
mov eax, ebx
jmp 0x40022eb6
push esi
call fcn.40054188
pop ecx
push eax
push esi
lea ecx, [ebp - 0xe8]
call fcn.4000744c
mov esi, dword [ebp - 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebp - 0x28]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.40004636
push ebx
push ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
call fcn.40026a21
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x68], ebx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x5c], 0x3f800000
push eax
mov dword [ebp - 0x6c], ebx
call fcn.40003160
mov dword [ebp - 0x64], 7
mov dword [ebp - 0x60], 8
lea edx, [ebp - 0x78]
mov byte [ebp - 4], 7
mov ecx, edi
call fcn.40022371
push 7
mov byte [ebp - 0x11], al
xor eax, eax
pop ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x90], ebx
mov word [ebp - 0xa0], ax
mov byte [ebp - 4], 8
mov esi, str.Common
push esi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.40054188
pop ecx
push eax
push esi
lea ecx, [ebp - 0x44]
call fcn.4000744c
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x78]
call fcn.40024e19
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.40007169
cmp byte [ebp - 0x11], 0
mov esi, dword [ebp - 0x1c]
je 0x40022fb0
cmp esi, dword [ebp - 0x78]
jne 0x4002306d
lea ecx, [ebp - 0xc0]
call fcn.40024da9
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 9
xor eax, eax
push str.Common
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.40054188
pop ecx
push eax
push str.Common
lea ecx, [ebp - 0x44]
call fcn.4000744c
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x44]
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x138]
call fcn.40027c4d
pop ecx
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x78]
call fcn.400278a4
lea ecx, [ebp - 0x120]
call fcn.40024dfd
push ebx
push 1
lea ecx, [ebp - 0x138]
call fcn.40007169
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.40007169
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.40002cf2
lea ecx, [ebp - 0xc0]
call fcn.400268ed
push dword [ebp - 0xc0]
call fcn.40053016
cmp byte [ebp - 0x1c], 0
pop ecx
cmovne esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x78]
je 0x40023189
xor eax, eax
mov dword [ebp - 0x30], 7
add esi, 0x20
mov dword [ebp - 0x34], ebx
push str.guid
mov dword [ebp - 0x28], esi
mov word [ebp - 0x44], ax
call fcn.40054188
pop ecx
push eax
push str.guid
lea ecx, [ebp - 0x44]
call fcn.4000744c
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.40024e19
push ebx
push 1
lea ecx, [ebp - 0x44]
mov esi, dword [eax]
call fcn.40007169
mov eax, dword [ebp - 0x28]
cmp esi, dword [eax]
je 0x400230da
add esi, 0x20
cmp dword [esi + 0x14], 8
jb 0x400230ca
mov esi, dword [esi]
push esi
mov ecx, 0x400978a4
call fcn.40006a29
jmp 0x40023189
lea ecx, [ebp - 0x1c]
call fcn.40047350
push eax
mov ecx, 0x400978a4
mov byte [ebp - 4], 0xc
call fcn.400088ff
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.40004636
push dword [0x400978a4]
lea ecx, [ebp - 0x100]
call fcn.40006bc7
mov esi, eax
mov byte [ebp - 4], 0xd
xor eax, eax
push str.guid
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.40054188
pop ecx
push eax
push str.guid
lea ecx, [ebp - 0x44]
call fcn.4000744c
push esi
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0xd0]
call fcn.40027c89
pop ecx
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x28]
push eax
call fcn.400277f5
lea ecx, [ebp - 0xd0]
call fcn.400227e7
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.40007169
push ebx
push 1
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 8
call fcn.40007169
xor eax, eax
mov dword [ebp - 0x30], 7
mov esi, str.Location
mov dword [ebp - 0x34], ebx
push esi
mov word [ebp - 0x44], ax
call fcn.40054188
pop ecx
push eax
push esi
lea ecx, [ebp - 0x44]
call fcn.4000744c
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x78]
call fcn.40024e19
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.40007169
cmp byte [ebp - 0x11], 0
je 0x400231dc
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x78]
jne 0x40023293
lea ecx, [ebp - 0xc0]
call fcn.40024da9
mov esi, eax
mov byte [ebp - 4], 0x10
xor eax, eax
push str.Location
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.40054188
pop ecx
push eax
push str.Location
lea ecx, [ebp - 0x44]
call fcn.4000744c
push esi
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x138]
call fcn.40027c4d
pop ecx
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x78]
call fcn.400278a4
lea ecx, [ebp - 0x120]
call fcn.40024dfd
xor esi, esi
lea ecx, [ebp - 0x138]
push ebx
inc esi
push esi
call fcn.40007169
push ebx
push esi
lea ecx, [ebp - 0x44]
call fcn.40007169
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.40002cf2
lea ecx, [ebp - 0xc0]
call fcn.400268ed
push dword [ebp - 0xc0]
call fcn.40053016
cmp byte [ebp - 0x1c], 0
pop ecx
je 0x400235f9
mov eax, dword [ebp - 0x20]
lea ecx, [eax + 0x20]
mov eax, dword [ecx]
mov dword [ebp - 0x18], ecx
mov esi, dword [eax]
cmp esi, eax
je 0x400232df
lea eax, [esi + 0x20]
cmp dword [eax + 0x14], 8
jb 0x400232ac
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x50]
call fcn.4000d585
test eax, eax
je 0x400232c4
mov ecx, dword [ebp - 0x18]
mov esi, dword [esi]
cmp esi, dword [ecx]
jne 0x400232a1
jmp 0x400232df
add esi, 8
lea eax, [ebp - 0xa0]
cmp eax, esi
je 0x400232dc
push 0xffffffffffffffff
push ebx
push esi
mov ecx, eax
call fcn.400070ab
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x90], 0
jne 0x400233c9
mov eax, dword [ecx]
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
mov esi, dword [eax]
cmp esi, eax
je 0x40023349
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
lea ecx, [esi + 8]
cmp dword [ecx + 0x14], 8
jb 0x40023313
mov ecx, dword [ecx]
push ecx
push ecx
call fcn.40004d3e
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
cmp ecx, edx
ja 0x4002333b
jb 0x40023331
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
ja 0x4002333e
mov eax, dword [ebp - 0x28]
mov ecx, edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], ecx
jmp 0x4002333e
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov esi, dword [esi]
cmp esi, dword [edx]
jne 0x40023308
jmp 0x4002334f
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
add eax, 1
adc ecx, ebx
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.40004983
mov byte [ebp - 4], 0x13
mov esi, dword [eax]
cmp word [esi], bx
jne 0x4002336d
mov eax, ebx
jmp 0x40023374
push esi
call fcn.40054188
pop ecx
push eax
push esi
lea ecx, [ebp - 0xa0]
call fcn.4000744c
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.40004636
lea eax, [ebp - 0x150]
push eax
lea edx, [ebp - 0xa0]
lea ecx, [ebp - 0xd0]
call fcn.400277b9
pop ecx
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x18]
push eax
call fcn.400277f5
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 8
call fcn.400227e7
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x78]
call fcn.40024e19
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x78]
jne 0x40023463
lea ecx, [ebp - 0xc0]
call fcn.40024da9
push eax
lea edx, [ebp - 0xa0]
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x138]
call fcn.40027ca5
pop ecx
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x16
push eax
lea ecx, [ebp - 0x78]
call fcn.400278a4
lea ecx, [ebp - 0x120]
call fcn.40024dfd
push ebx
push 1
lea ecx, [ebp - 0x138]
call fcn.40007169
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.40002cf2
lea ecx, [ebp - 0xc0]
call fcn.400268ed
push dword [ebp - 0xc0]
call fcn.40053016
cmp byte [ebp - 0x1c], 0
pop ecx
je 0x400235f9
mov esi, dword [ebp - 0x20]
push ecx
lea edx, [ebp - 0xe8]
lea ecx, [ebp - 0xb8]
call fcn.40027ce1
pop ecx
mov byte [ebp - 4], 0x17
cmp dword [eax + 0x14], 8
jb 0x40023482
mov eax, dword [eax]
push dword [ebp - 0x80]
mov edx, eax
lea ecx, [ebp - 0x58]
call fcn.40006aaf
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x19
call fcn.40007169
lea eax, [esi + 0x20]
mov byte [ebp - 0x18], bl
mov dword [ebp - 0x24], eax
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x400234ef
mov ebx, dword [ebp - 0x24]
xor edi, edi
inc edi
lea eax, [esi + 0x20]
cmp dword [eax + 0x14], 8
jb 0x400234c4
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x58]
call fcn.40006fbb
mov ecx, dword [ebp - 0x18]
test eax, eax
mov esi, dword [esi]
movzx ecx, cl
cmove ecx, edi
mov dword [ebp - 0x18], ecx
cmp esi, dword [ebx]
jne 0x400234b9
mov edi, dword [ebp - 0x54]
push 0
pop ebx
test cl, cl
jne 0x400235cb
mov eax, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x84], xmm0
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x4002353c
mov ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x80]
lea ecx, [esi + 8]
cmp dword [ecx + 0x14], 8
jb 0x40023519
mov ecx, dword [ecx]
push ecx
push ecx
call fcn.40004d3e
cmp edi, edx
ja 0x4002352e
jb 0x4002352a
cmp ebx, eax
ja 0x4002352e
mov ebx, eax
mov edi, edx
mov eax, dword [ebp - 0x24]
mov esi, dword [esi]
cmp esi, dword [eax]
jne 0x4002350e
mov edi, dword [ebp - 0x54]
xor ebx, ebx
mov esi, dword [ebp - 0x24]
lea ecx, [ebp - 0x1c]
mov edx, dword [esi + 4]
lea edx, [edx + 1]
call fcn.4000492d
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x100]
push dword [ebp - 0x58]
call fcn.40006bc7
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x44]
push dword [ebp - 0x1c]
call fcn.40006bc7
lea eax, [ebp - 0x100]
push eax
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x130]
call fcn.40027c89
pop ecx
push eax
lea eax, [ebp - 0x84]
mov byte [ebp - 4], 0x1d
push eax
mov ecx, esi
call fcn.400277f5
lea ecx, [ebp - 0x130]
call fcn.400227e7
xor esi, esi
lea ecx, [ebp - 0x44]
push ebx
inc esi
push esi
call fcn.40007169
push ebx
push esi
lea ecx, [ebp - 0x100]
call fcn.40007169
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x1c]
lea ecx, [eax - 0x10]
call fcn.40004636
push ecx
lea edx, [ebp - 0x78]
mov ecx, edi
call fcn.4002281b
cmp byte [ebp - 0x18], 0
pop ecx
jne 0x400235e6
test al, al
jne 0x400235e6
mov byte [ebp - 0x11], bl
jmp 0x400235ec
xor eax, eax
inc eax
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x58]
lea ecx, [ecx - 0x10]
call fcn.40004636
jmp 0x400235fc
mov byte [ebp - 0x11], bl
xor eax, eax
lea ecx, [ebp - 0xa0]
push ebx
inc eax
push eax
call fcn.40007169
cmp dword [ebp - 0x70], 0
je 0x40023624
push dword [ebp - 0x70]
call fcn.40053016
pop ecx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
lea ecx, [ebp - 0x78]
call fcn.40025406
xor eax, eax
lea ecx, [ebp - 0xe8]
push ebx
inc eax
push eax
call fcn.40007169
lea ecx, [edi - 0x10]
call fcn.40004636
xor eax, eax
lea ecx, [ebp - 0x150]
push ebx
inc eax
push eax
call fcn.40007169
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.40004636
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0x11]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret