Function at 0x10016696
Capabilities:
Compare security identifiers

Disassembly:
mov eax, 0x1013e868
call fcn.1013e250
sub esp, 0x58
push ebx
push esi
push edi
mov edi, edx
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edx
inc ebx
mov dword [ebp - 0x14], 0xfffffff6
mov esi, ecx
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x24], 0x5cc7
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], 0xdc4b
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x18], edx
jmp 0x100166ea
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], 0x8bbca631
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x100166dc
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ebx
jg 0x1001681f
mov dword [ebp - 0x1c], 0x94ff5452
mov dword [ebp - 0x18], 0x3799040c
mov dword [ebp - 0x20], 0xde90
mov dword [ebp - 0x18], edx
jmp 0x10016724
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], 0xfffffff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10016716
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x38], ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x1c], eax
jge 0x10016752
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x38]
cmp eax, ebx
setge cl
neg ecx
je 0x10016779
mov ecx, ebx
cmp dword [ebp - 0x20], edx
jne 0x1001677b
mov ecx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, dword [ebp + eax*4 - 0x38]
je 0x1001678f
mov eax, dword [ebp - 0x14]
mov ecx, edx
cmp dword [ebp + eax*4 - 0x38], edx
je 0x10016791
mov ecx, ebx
xor eax, eax
cmp ecx, 0xd3ed
setge al
cmp eax, 0x5ad058bb
jle 0x100167aa
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x18], 0xfe64
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x24]
jne 0x100167eb
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10016810
push edx
push 0x1a9b
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
jmp 0x10016810
mov dword [ebp - 0x18], edx
jmp 0x1001680b
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10016802
push edx
call dword [sym.imp.GDI32.dll_CreateBrushIndirect]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x48], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x100167f0
inc dword [ebp - 0x14]
push 0
pop edx
cmp dword [ebp - 0x14], ebx
jle 0x100166fc
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x209f
mov dword [esi + 0x10], edx
push 7
setl cl
xor eax, eax
pop ebx
mov dword [ebp - 0x14], ecx
mov dword [esi + 0x14], ebx
mov word [esi], ax
mov dword [ebp - 4], edx
mov ecx, esi
push edi
mov dword [ebp - 0x28], 1
call fcn.10013eaf
push 2
lea ecx, [ebp - 0x44]
call fcn.10013ee8
xor edi, edi
inc edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x18], ebx
xor ebx, ebx
mov dword [ebp - 0x24], 0x2c40a98c
mov dword [ebp - 0x18], ebx
jmp 0x1001687c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10016870
mov eax, dword [ebp - 0x44]
mov dword [eax], ebx
mov dword [ebp - 0x18], 0x18
jmp 0x100168b2
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001689f
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100168af
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_EqualSid]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1d
jg 0x10016890
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], bl
call fcn.100144eb
mov eax, dword [0x110e412c]
test al, 1
jne 0x100168ee
or eax, edi
mov dword [0x110e412c], eax
push 0x15aef
mov dword [ebp - 4], 2
call fcn.10019cfd
pop ecx
mov word [0x110e4134], ax
mov byte [ebp - 4], bl
mov dword [ebp - 0x18], 0xb743d837
mov eax, 0x643b8a2
mov dword [ebp - 0x24], 0xfa147b80
xor ecx, ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x24], 0xfbe58499
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x60], 0x6088
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov edi, dword [sym.imp.USER32.dll_GetDC]
sub eax, 0x279c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sets cl
mov dword [ebp - 0x24], ecx
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setg dl
sub dword [ebp - 0x18], edx
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
je 0x1001696e
call ebx
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov eax, dword [0x110e412c]
test al, 2
jne 0x1001699b
or eax, 2
mov dword [0x110e412c], eax
push 0x5c6b
mov dword [ebp - 4], 3
call fcn.10019cfd
pop ecx
mov word [0x110e4138], ax
mov byte [ebp - 4], 0
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x24], 0x19ac196a
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x24], 0xfffffff9
mov byte [ebp - 0xd], 0
cmp byte [ebp - 0xd], 0
je 0x10016a09
push 0x7d0
push 0x1a45
push 0x1f12
push 0
push 0x144f
push 0xe65
call ebx
push eax
call edi
push eax
push 0x370
push 0xdd2
push 0x26f7
push 0x1da5
call ebx
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
xor edx, edx
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov ebx, dword [ebp - 0x2c]
setg dl
xor eax, eax
add edx, dword [ebp - 0x1c]
cmp edx, 0x4ad744d0
setl al
xor ecx, ecx
cmp eax, 0xb9a7
mov eax, dword [ebp - 0x24]
setne cl
sub eax, ecx
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setg dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x24], ecx
test ebx, ebx
je 0x10016a98
push 0x1a
pop edi
call fcn.10015ef6
push 0x34
xor edx, edx
pop ecx
div ecx
mov eax, edx
cmp eax, edi
jge 0x10016a81
movzx edx, word [0x110e4134]
jmp 0x10016a8b
cdq
idiv edi
movzx eax, word [0x110e4138]
add edx, eax
mov ecx, esi
push edx
call fcn.10013e7e
dec ebx
jne 0x10016a66
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret