Function at 0x14006da10
Capabilities:
Compare security identifiers

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x148
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x14014ee68]
xor rax, rsp
mov qword [rsp + 0x130], rax
movzx esi, r9b
mov edi, r8d
mov rbx, rdx
mov rbp, rcx
cmp byte [rdx + 0x4c], 0
je 0x14006ddca
lea rcx, [rdx + 8]
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
test eax, eax
setne al
test al, al
je 0x14006ddca
cmp byte [rbp + 0x10], 0
je 0x14006da76
xor eax, eax
jmp 0x14006ddd5
mov rdx, rbx
lea rcx, [rsp + 0xb0]
call fcn.140007b70
mov dword [rsp + 0x128], edi
mov byte [rsp + 0x12c], sil
movzx eax, byte [rsp + 0x1a0]
mov byte [rsp + 0x12d], al
xor r12d, r12d
mov edi, r12d
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r13, vtable.ATL::CSid.0
or esi, 0xffffffff
test eax, eax
je 0x14006dd36
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x7c], 0
mov dword [rsp + 0x80], 7
lea rcx, [0x140162de8]
mov rax, qword [0x140162de8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x88], rax
lea rcx, [0x140162de8]
mov rax, qword [0x140162de8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
lea rcx, [0x140162de8]
mov rax, qword [0x140162de8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x98], rax
lea rcx, [0x140162de8]
mov rax, qword [0x140162de8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa0], rax
mov rax, qword [rbp]
mov edx, edi
mov rcx, rbp
call qword [rax + 0x20]
mov rbx, rax
lea rdx, [rax + 8]
lea rcx, [rsp + 0x30]
call fcn.14006cdc0
mov r11d, dword [rbx + 0x80]
mov dword [rsp + 0xa8], r11d
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x18]
mov byte [rsp + 0xad], al
movzx eax, byte [rbx + 0x84]
mov byte [rsp + 0xac], al
cmp byte [rsp + 0x7c], 0
je 0x14006dc95
lea rcx, [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
test eax, eax
setne al
test al, al
je 0x14006dc95
cmp byte [rsp + 0xfc], 0
je 0x14006dc95
lea rcx, [rsp + 0xb8]
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
test eax, eax
setne al
test al, al
je 0x14006dc95
cmp byte [rsp + 0x7c], 0
je 0x14006dc95
lea rcx, [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
test eax, eax
setne al
test al, al
je 0x14006dc95
cmp byte [rsp + 0xfc], 0
je 0x14006dc95
lea rcx, [rsp + 0xb8]
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
test eax, eax
setne al
test al, al
je 0x14006dc95
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
setne al
test al, al
je 0x14006dc95
mov eax, dword [rsp + 0x128]
cmp dword [rsp + 0xa8], eax
jne 0x14006dc95
movzx eax, byte [rsp + 0x12c]
cmp byte [rsp + 0xac], al
jne 0x14006dc95
movzx eax, byte [rsp + 0x12d]
cmp byte [rsp + 0xad], al
jne 0x14006dc95
test r12d, r12d
je 0x14006dc92
test edi, edi
je 0x14006dc92
mov rax, qword [rbp]
mov edx, edi
mov rcx, rbp
call qword [rax + 0x18]
dec edi
inc r12d
mov qword [rsp + 0x30], r13
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dcbc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dcde
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dd00
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dd22
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc edi
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp edi, eax
jb 0x14006dac6
mov qword [rsp + 0xb0], r13
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dd60
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dd82
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006dda4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14006ddc5
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, r12d
jmp 0x14006ddd5
mov ecx, 0x80070057
call fcn.1400056f0
int3
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.14001e7c0
add rsp, 0x148
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret