Function at 0x1008f8b
Capabilities:
Get user security identifier

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x78], eax
xor eax, eax
mov dword [esi], 0xffff
push edi
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], eax
cmp dword [0x101fc80], eax
je 0x1009318
mov edi, 0x101fc80
mov ebx, dword [edi]
mov ecx, str._UNLIMITED
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1008ffa
test dx, dx
je 0x1008ff6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1008ffa
add eax, 4
add ecx, 4
test dx, dx
jne 0x1008fd4
xor eax, eax
jmp 0x1008fff
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100900f
mov eax, dword [ebp - 0x78]
or dword [eax + 0x10], 0xffffffff
jmp 0x1009302
mov ecx, str._COMM
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100903c
test dx, dx
je 0x1009038
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100903c
add eax, 4
add ecx, 4
test dx, dx
jne 0x1009016
xor eax, eax
jmp 0x1009041
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009302
mov ecx, str._PRINT
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1009076
test dx, dx
je 0x1009072
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1009076
add eax, 4
add ecx, 4
test dx, dx
jne 0x1009050
xor eax, eax
jmp 0x100907b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009302
push ebx
call fcn.01010270
mov ebx, eax
test ebx, ebx
jne 0x1009099
push 0xdb1
call fcn.0100295a
mov edi, dword [edi]
mov ecx, 0x1019580
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10090c8
test dx, dx
je 0x10090c4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10090c8
add eax, 4
add ecx, 4
test dx, dx
jne 0x10090a2
xor eax, eax
jmp 0x10090cd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100910b
push 0x1019580
push 0xf70
push ebx
call fcn.010103ff
mov ecx, dword [ebp - 0x78]
mov dword [ecx + 0x10], eax
cmp eax, 1
jb 0x10090f7
cmp eax, 0x7fff
jbe 0x1009302
push 0x1019580
push 0xf70
call fcn.0101081b
jmp 0x1009302
mov ecx, str._REMARK
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1009138
test dx, dx
je 0x1009134
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1009138
add eax, 4
add ecx, 4
test dx, dx
jne 0x1009112
xor eax, eax
jmp 0x100913d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100914c
mov eax, dword [ebp - 0x78]
mov dword [eax + 8], ebx
jmp 0x1009302
mov ecx, str._GRANT
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1009179
test dx, dx
je 0x1009175
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1009179
add eax, 4
add ecx, 4
test dx, dx
jne 0x1009153
xor eax, eax
jmp 0x100917e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1009191
inc dword [ebp - 0x6c]
push 0x3a
pop eax
mov word [ebx - 2], ax
jmp 0x1009302
mov ecx, str._CACHE
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10091be
test dx, dx
je 0x10091ba
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10091be
add eax, 4
add ecx, 4
test dx, dx
jne 0x1009198
xor eax, eax
jmp 0x10091c3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1009302
push ebx
call dword [sym.imp.msvcrt.dll__wcsupr]
mov eax, ebx
pop ecx
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x10091d8
sub eax, edx
sar eax, 1
mov edi, eax
jne 0x10091f9
push str._CACHE
push 0xf70
call fcn.0101081b
push dword [0x10204dc]
call dword [sym.imp.msvcrt.dll__wcsupr]
push dword [0x10204e4]
call dword [sym.imp.msvcrt.dll__wcsupr]
push dword [0x10204ec]
call dword [sym.imp.msvcrt.dll__wcsupr]
push dword [0x10204f4]
call dword [sym.imp.msvcrt.dll__wcsupr]
push dword [0x1020504]
call dword [sym.imp.msvcrt.dll__wcsupr]
push dword [0x10204fc]
call dword [sym.imp.msvcrt.dll__wcsupr]
push edi
push dword [0x10204dc]
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0x24
test eax, eax
je 0x10092fc
cmp word [ebx], 0x59
je 0x10092fc
push edi
push dword [0x10204e4]
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x1009280
and dword [esi], eax
jmp 0x1009302
push edi
push dword [0x10204ec]
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
je 0x10092fc
push edi
push dword [0x10204f4]
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x10092b2
mov dword [esi], 0x20
jmp 0x1009302
push edi
push dword [0x1020504]
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
je 0x10092ea
push edi
push dword [0x10204fc]
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x10092e4
mov dword [esi], 0x2000
jmp 0x1009302
cmp word [ebx], 0x4e
jne 0x10092f2
mov dword [esi], 0x30
jmp 0x1009302
push str._CACHE
jmp 0x10090fc
mov dword [esi], 0x10
inc dword [ebp - 0x70]
mov edi, dword [ebp - 0x70]
lea edi, [edi*4 + 0x101fc80]
cmp dword [edi], 0
jne 0x1008fcb
cmp dword [ebp + 0x10], 0
je 0x1009583
mov eax, dword [ebp - 0x6c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1009363
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push 1
mov dword [ebp - 0x74], 0x44
call dword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
test eax, eax
jne 0x1009354
call ebx
push eax
call fcn.0100295a
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
add eax, 0x24
jmp 0x1009369
imul eax, eax, 0x4c
add eax, 0x1c
push eax
push 0
mov dword [ebp - 0x74], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
mov dword [ebp - 0x7c], edi
test edi, edi
jne 0x1009385
push 8
call fcn.0100295a
push 1
push edi
lea esi, [edi + 0x14]
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
test eax, eax
jne 0x100939d
call ebx
push eax
call fcn.0100295a
mov eax, dword [ebp - 0x74]
push 2
add eax, 0xffffffec
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_InitializeAcl]
mov ebx, dword [sym.imp.KERNEL32.dll_LocalFree]
test eax, eax
jne 0x10093c6
push edi
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100295a
xor eax, eax
cmp dword [ebp - 0x6c], eax
jne 0x10093fd
lea eax, [ebp - 0x48]
push eax
push 0x1200a9
push 2
push esi
call dword [sym.imp.ADVAPI32.dll_AddAccessAllowedAce]
test eax, eax
jne 0x1009556
push dword [ebp - 0x7c]
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100295a
jmp 0x1009556
mov dword [ebp - 0x70], eax
cmp dword [0x101fc80], eax
je 0x1009556
mov esi, 0x101fc80
push dword [esi]
call fcn.01010270
mov edi, eax
test edi, edi
je 0x1009540
mov esi, dword [esi]
mov eax, str._GRANT
mov cx, word [esi]
cmp cx, word [eax]
jne 0x100944f
test cx, cx
je 0x100944b
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x100944f
add esi, 4
add eax, 4
test cx, cx
jne 0x1009429
xor eax, eax
jmp 0x1009454
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1009540
push edi
call fcn.0101029b
mov esi, eax
test esi, esi
jne 0x1009477
push str._GRANT
push 0xf70
call fcn.0101081b
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x48]
push eax
push edi
push 0
mov dword [ebp - 0x74], 0x44
mov dword [ebp - 0x80], 0x10
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
test eax, eax
jne 0x10094ba
push dword [ebp - 0x7c]
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100295a
push dword [0x102048c]
mov edi, dword [sym.imp.msvcrt.dll__wcsicmp]
push esi
call edi
pop ecx
pop ecx
test eax, eax
jne 0x10094d8
mov dword [ebp - 0x6c], 0x1200a9
jmp 0x1009517
push dword [0x1020494]
push esi
call edi
pop ecx
pop ecx
test eax, eax
jne 0x10094f0
mov dword [ebp - 0x6c], 0x1301bf
jmp 0x1009517
push dword [0x102049c]
push esi
call edi
pop ecx
pop ecx
test eax, eax
jne 0x1009508
mov dword [ebp - 0x6c], 0x1f01ff
jmp 0x1009517
push str._GRANT
push 0xf70
call fcn.0101081b
mov esi, dword [ebp - 0x7c]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x6c]
lea eax, [esi + 0x14]
push 2
push eax
call dword [sym.imp.ADVAPI32.dll_AddAccessAllowedAce]
test eax, eax
jne 0x1009540
push esi
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100295a
inc dword [ebp - 0x70]
mov esi, dword [ebp - 0x70]
lea esi, [esi*4 + 0x101fc80]
cmp dword [esi], 0
jne 0x1009411
mov esi, dword [ebp - 0x7c]
push 0
lea eax, [esi + 0x14]
push eax
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
jne 0x100957b
push esi
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100295a
mov eax, dword [ebp - 0x78]
mov dword [eax + 0x24], esi
jmp 0x1009593
cmp dword [ebp - 0x6c], 0
je 0x1009593
push 0xdb1
call fcn.0100295a
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01002d45
leave
ret 0xc