Function at 0x140020200
Capabilities:
Compare security identifiers

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
movaps xmmword [rsp + 0x140], xmm7
movaps xmmword [rsp + 0x130], xmm6
mov rbx, r8
mov r12, rdx
mov rdi, rcx
mov rax, qword [0x140139028]
xor rax, rsp
mov qword [rsp + 0x128], rax
movaps xmm6, xmmword [0x140118af0]
movaps xmmword [rsp + 0x100], xmm6
xor esi, esi
mov byte [rsp + 0x100], sil
mov byte [rsp + 0x108], sil
lea rdx, [rcx + 0x18]
movabs r13, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0xe0]
mov qword [rcx + 0x10], r13
movaps xmmword [rcx], xmm6
call fcn.14001f5c0
mov qword [rsp + 0x38], rdi
cmp byte [rdi + 0x80], sil
je 0x1400203c7
lea r15, [rsp + 0x70]
mov rcx, rbx
mov rdx, r15
call fcn.140018960
mov r14, qword [r15]
mov rsi, qword [r15 + 8]
mov r15, rsi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x120], 0
sub r15, r14
je 0x140020301
js 0x140021a6e
mov rcx, r15
call fcn.14009f7f4
mov qword [rsp + 0x110], rax
lea rdi, [rax + r15]
mov qword [rsp + 0x120], rdi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400a3450
mov qword [rsp + 0x118], rdi
test r14, r14
je 0x14002031f
dec rsi
cmp r15, rsi
ja 0x140021ad2
mov qword [rsp + 0x78], r14
mov rcx, r14
call fcn.14009f888
mov rax, qword [rsp + 0xe8]
cmp rax, qword [rsp + 0xf0]
jb 0x140020381
lea r14, [rsp + 0xe0]
lea r15, [rsp + 0x110]
mov rcx, r14
mov rdx, r15
call fcn.140020030
mov rcx, qword [r15]
mov qword [r14 + 8], rax
test rcx, rcx
je 0x1400203c7
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021aec
mov qword [rsp + 0x118], rcx
call fcn.14009f888
jmp 0x1400203c7
test rax, rax
je 0x140021ae9
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x110]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x10], rcx
add rax, 0x18
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x63], 0
mov qword [rsp + 0x40], r12
je 0x1400205e2
mov rdx, qword [rbx]
lea r14, [rsp + 0x70]
mov rcx, r14
mov r8d, 2
call fcn.140027b50
mov rbp, qword [r14]
mov rsi, qword [r14 + 8]
cmp rbp, rsi
je 0x140020574
mov qword [rsp + 0x48], rbx
xorps xmm7, xmm7
lea r14, [rsp + 0xe0]
lea r15, [rsp + 0x110]
mov rbx, qword [sym.imp.ADVAPI32.dll_EqualSid]
jmp 0x140020472
test rax, rax
je 0x140021ac3
movups xmmword [rax], xmm7
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x110]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x10], rcx
add rax, 0x18
mov qword [rsp + 0xe8], rax
add rbp, 0x20
cmp rbp, rsi
je 0x140020565
mov eax, dword [rbp + 0x18]
cmp eax, 0xbfffffff
ja 0x140020465
and eax, 0x20
jne 0x140020465
mov rax, qword [rsp + 0x38]
mov rdi, qword [rax + 0x68]
mov r12, qword [rax + 0x70]
cmp rdi, r12
je 0x1400204a6
mov rdx, qword [rbp]
mov rcx, qword [rdi]
call rbx
test eax, eax
jne 0x140020465
add rdi, 0x18
jmp 0x14002048e
mov r12, qword [rbp]
mov r13, qword [rbp + 8]
movaps xmmword [rsp + 0x110], xmm7
mov qword [rsp + 0x120], 0
sub r13, r12
je 0x1400204ff
js 0x140021a6e
mov rcx, r13
call fcn.14009f7f4
mov qword [rsp + 0x110], rax
lea rdi, [rax + r13]
mov qword [rsp + 0x120], rdi
mov rcx, rax
mov rdx, r12
mov r8, r13
call fcn.1400a3450
mov qword [rsp + 0x118], rdi
mov rax, qword [rsp + 0xe8]
cmp rax, qword [rsp + 0xf0]
jb 0x140020422
mov rcx, r14
mov rdx, r15
call fcn.140020030
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0xe8], rax
test rcx, rcx
je 0x140020465
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021ac6
mov qword [rsp + 0x118], rcx
call fcn.14009f888
jmp 0x140020465
mov rbp, qword [rsp + 0x70]
mov r12, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
test rbp, rbp
je 0x1400205d8
mov rsi, qword [rsp + 0x78]
mov rcx, rbp
cmp rsi, rbp
je 0x1400205ce
add rsi, 0xffffffffffffffe0
jmp 0x1400205a1
mov qword [rsi + 8], rcx
call fcn.14009f888
lea rax, [rsi - 0x20]
cmp rsi, rbp
mov rsi, rax
je 0x1400205c9
test rsi, rsi
je 0x140021a7b
mov rcx, qword [rsi]
test rcx, rcx
je 0x140020595
mov rax, qword [rsi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x14002058c
jmp 0x140021a97
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rbp
call fcn.14009f888
movabs r13, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0xc0]
mov qword [r14 + 0x10], r13
movaps xmmword [r14], xmm6
mov rcx, r14
mov rsi, qword [rsp + 0x38]
mov rdx, rsi
call fcn.14001f5c0
cmp byte [rsi + 0x82], 0
je 0x140020750
lea r12, [rsp + 0x70]
mov rcx, rbx
mov rdx, r12
call fcn.140018960
mov r15, qword [r12]
mov rsi, qword [r12 + 8]
mov r12, rsi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x120], 0
sub r12, r15
je 0x14002067f
js 0x140021a6e
mov rcx, r12
call fcn.14009f7f4
mov qword [rsp + 0x110], rax
lea rdi, [rax + r12]
mov qword [rsp + 0x120], rdi
mov rcx, rax
mov rdx, r15
mov r8, r12
call fcn.1400a3450
mov qword [rsp + 0x118], rdi
test r15, r15
je 0x14002069d
dec rsi
cmp r12, rsi
ja 0x140021ad5
mov qword [rsp + 0x78], r15
mov rcx, r15
call fcn.14009f888
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0xd0]
jb 0x140020705
lea r15, [rsp + 0xc0]
lea r12, [rsp + 0x110]
mov rcx, r15
mov rdx, r12
call fcn.140020030
mov rcx, qword [r12]
mov qword [r15 + 8], rax
test rcx, rcx
mov r12, qword [rsp + 0x40]
je 0x140020750
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021af2
mov qword [rsp + 0x118], rcx
call fcn.14009f888
jmp 0x140020750
test rax, rax
je 0x140021aef
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x110]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x10], rcx
add rax, 0x18
mov qword [rsp + 0xc8], rax
mov r12, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x83], 0
je 0x1400208f3
mov r14, rbx
mov rdx, qword [rbx]
lea r15, [rsp + 0x70]
mov rcx, r15
mov r8d, 2
call fcn.140027b50
mov rsi, qword [r15]
mov rbx, qword [r15 + 8]
cmp rsi, rbx
je 0x1400208be
xorps xmm7, xmm7
lea r15, [rsp + 0xc0]
lea r12, [rsp + 0x110]
jmp 0x1400207f0
test rax, rax
je 0x140021aa7
movups xmmword [rax], xmm7
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x110]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x10], rcx
add rax, 0x18
mov qword [rsp + 0xc8], rax
add rsi, 0x20
cmp rsi, rbx
je 0x1400208b4
test byte [rsi + 0x18], 0x20
jne 0x1400207e3
mov r13, qword [rsi]
mov rbp, qword [rsi + 8]
movaps xmmword [rsp + 0x110], xmm7
mov qword [rsp + 0x120], 0
sub rbp, r13
je 0x14002084e
js 0x140021a6e
mov rcx, rbp
call fcn.14009f7f4
mov qword [rsp + 0x110], rax
lea rdi, [rax + rbp]
mov qword [rsp + 0x120], rdi
mov rcx, rax
mov rdx, r13
mov r8, rbp
call fcn.1400a3450
mov qword [rsp + 0x118], rdi
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0xd0]
jb 0x1400207a0
mov rcx, r15
mov rdx, r12
call fcn.140020030
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0xc8], rax
test rcx, rcx
je 0x1400207e3
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021aaa
mov qword [rsp + 0x118], rcx
call fcn.14009f888
jmp 0x1400207e3
mov rsi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x40]
test rsi, rsi
mov rbx, r14
lea r14, [rsp + 0xc0]
je 0x1400208f3
mov rdi, qword [rsp + 0x78]
mov rcx, rsi
cmp rdi, rsi
je 0x1400208e9
add rdi, 0xffffffffffffffe0
jmp 0x140021901
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rsi
call fcn.14009f888
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x81], 0
je 0x140020a5d
lea r15, [rsp + 0x70]
movaps xmmword [r15 + 0x10], xmm6
movaps xmmword [r15], xmm6
mov rcx, rbx
mov rdx, r15
call fcn.1400279e0
cmp byte [r15 + 0x18], 0
je 0x140020a5d
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0xd0]
jae 0x140020a0e
test rax, rax
je 0x140021b10
xorps xmm0, xmm0
movups xmmword [rax], xmm0
xor ecx, ecx
mov qword [rax + 0x10], rcx
mov rdx, qword [rsp + 0x70]
mov qword [rax], rdx
mov rdx, qword [rsp + 0x78]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x80]
mov qword [rax + 0x10], rdx
mov qword [rsp + 0x80], rcx
movaps xmmword [rsp + 0x70], xmm0
add rax, 0x18
jmp 0x140020a20
mov rax, qword [rsp + 0xc0]
cmp rax, qword [rsp + 0xc8]
jne 0x140020a73
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x61], 0
jne 0x140020a73
lea r14, [rsp + 0x70]
mov rcx, rbx
mov rdx, r14
mov r8d, 0xf01ff
call fcn.1400fb6f0
mov al, byte [rsp + 0x108]
cmp al, byte [r14 + 8]
je 0x140021927
lea rbx, [rsp + 0x100]
test al, al
jne 0x140021b90
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.14001c6c0
mov byte [rbx + 8], 1
cmp byte [rsp + 0x78], 0
je 0x140020b71
lea rcx, [rsp + 0x70]
call fcn.14001f4b0
jmp 0x140020b71
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x70]
call fcn.140020030
mov qword [rsp + 0xc8], rax
cmp byte [rsp + 0x88], 0
je 0x140020a5d
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140020a5d
mov rax, qword [rsp + 0x78]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021b46
mov qword [rsp + 0x78], rcx
call fcn.14009f888
mov rax, qword [rsp + 0xe0]
cmp rax, qword [rsp + 0xe8]
je 0x140020987
xorps xmm0, xmm0
lea rax, [rsp + 0x70]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x38]
movzx r8d, byte [rcx + 0x61]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 0xf01ff
lea r14, [rsp + 0x110]
lea r9, [rsp + 0xe0]
mov rcx, rbx
mov rdx, r14
call fcn.14002eb60
mov al, byte [rsp + 0x108]
cmp al, byte [r14 + 8]
je 0x140020b22
lea rbx, [rsp + 0x100]
test al, al
jne 0x140021ad8
lea rdx, [rsp + 0x110]
mov rcx, rbx
call fcn.14001c6c0
mov byte [rbx + 8], 1
cmp byte [rsp + 0x118], 0
je 0x140020b05
lea rcx, [rsp + 0x110]
call fcn.14001f4b0
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x140020b71
mov rdi, qword [rsp + 0x78]
mov rcx, rsi
cmp rdi, rsi
je 0x140020b67
add rdi, 0xffffffffffffffe8
jmp 0x140020b51
test al, al
je 0x140020b05
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x110]
call fcn.1400269d0
jmp 0x140020aee
mov rcx, qword [rdi]
call fcn.14009f888
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x140020b62
test rdi, rdi
je 0x140021a94
cmp byte [rdi + 0x17], 0
js 0x140020b3d
jmp 0x140020b45
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rsi
call fcn.14009f888
cmp byte [rsp + 0x108], 0
je 0x140020bd7
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x61], 0
je 0x140020d1a
cmp byte [rax + 0x62], 0
je 0x140020d1a
lea rcx, [rsp + 0x100]
call fcn.140038d60
test al, al
je 0x140020bd7
cmp byte [rsp + 0x108], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x120], 0
movaps xmmword [rsp + 0xb0], xmm6
jne 0x140020d39
jmp 0x140021b49
xor eax, eax
mov byte [r12], al
mov byte [r12 + 8], al
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x140020c57
mov rdi, qword [rsp + 0xc8]
mov rcx, rsi
cmp rdi, rsi
je 0x140020c4a
add rdi, 0xffffffffffffffe8
jmp 0x140020c1a
mov qword [rdi + 8], rcx
call fcn.14009f888
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x140020c42
test rdi, rdi
je 0x140021a68
mov rcx, qword [rdi]
test rcx, rcx
je 0x140020c0e
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x140020c05
jmp 0x140021a81
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rsi
call fcn.14009f888
mov rsi, qword [rsp + 0xe0]
test rsi, rsi
je 0x140020ccc
mov rdi, qword [rsp + 0xe8]
mov rcx, rsi
cmp rdi, rsi
je 0x140020cbf
add rdi, 0xffffffffffffffe8
jmp 0x140020c8f
mov qword [rdi + 8], rcx
call fcn.14009f888
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x140020cb7
test rdi, rdi
je 0x140021a6b
mov rcx, qword [rdi]
test rcx, rcx
je 0x140020c83
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x140020c7a
jmp 0x140021a84
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0xe8], rsi
call fcn.14009f888
cmp byte [rsp + 0x108], 0
je 0x140020ce3
lea rcx, [rsp + 0x100]
call fcn.14001f4b0
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
call fcn.1400a19c0
mov rax, r12
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x120], 0
movaps xmmword [rsp + 0xb0], xmm6
lea rcx, [rsp + 0x100]
lea rbx, [rsp + 0xb0]
mov rdx, rbx
call fcn.140038c70
cmp byte [rbx + 8], 0
je 0x1400216f7
movabs r13, 0x666666666666666
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x60], 0
je 0x140020fb3
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
cmp byte [rsp + 0x108], 0
je 0x140021b0d
lea rcx, [rsp + 0x100]
lea rbx, [rsp + 0x70]
mov rdx, rbx
call fcn.1400279e0
cmp byte [rbx + 0x18], 0
je 0x1400217a8
mov rbx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp rbx, rax
jb 0x140020efc
mov rdi, qword [rsp + 0x110]
mov r15, rbx
sub r15, rdi
sar r15, 3
movabs rcx, 0xcccccccccccccccd
imul r15, rcx
lea rbp, [r15 + 1]
cmp rbp, r13
ja 0x140021b52
sub rax, rdi
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, rbp
cmova rbp, rcx
movabs rcx, 0x333333333333333
cmp rax, rcx
cmovae rbp, r13
test rbp, rbp
je 0x140021b55
cmp rbp, r13
ja 0x140021b5d
lea rax, [rbp*8]
lea rcx, [rax + rax*4]
call fcn.14009f7f4
mov r14, rax
lea rax, [r15 + r15*4]
mov qword [rsp + 0x48], rax
lea r15, [rax*8]
add r15, r14
je 0x140021b60
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x78]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], 0
sub r13, r12
je 0x140020ea4
js 0x140021b63
mov rcx, r13
call fcn.14009f7f4
mov qword [r15], rax
lea rsi, [rax + r13]
mov qword [r15 + 0x10], rsi
mov rcx, rax
mov rdx, r12
mov r8, r13
call fcn.1400a3450
mov qword [r15 + 8], rsi
lea rax, [rbp*4]
add rax, rbp
lea rax, [r14 + rax*8]
mov qword [r15 + 0x18], 3
mov dword [r15 + 0x20], 0
lea r12, [r15 + 0x28]
cmp rbx, rdi
jne 0x140021946
mov qword [rsp + 0x110], r15
mov qword [rsp + 0x118], r12
mov qword [rsp + 0x120], rax
movabs r13, 0x666666666666666
test rbx, rbx
je 0x140020f63
jmp 0x140021b80
test rbx, rbx
je 0x140021b4f
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r15, r14
je 0x140020f4d
js 0x140021af5
mov rcx, r15
call fcn.14009f7f4
mov qword [rbx], rax
lea rsi, [rax + r15]
mov qword [rbx + 0x10], rsi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400a3450
mov qword [rbx + 8], rsi
mov qword [rbx + 0x18], 3
mov dword [rbx + 0x20], 0
add rbx, 0x28
mov r12, rbx
mov qword [rsp + 0x118], r12
mov cl, byte [rsp + 0x88]
test cl, cl
mov r12, qword [rsp + 0x38]
je 0x14002108e
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002108e
mov rax, qword [rsp + 0x78]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021b74
mov qword [rsp + 0x78], rcx
call fcn.14009f888
jmp 0x14002108e
xor eax, eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0xac], 0x10000000
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xa4], 0xa
mov rbx, qword [rsp + 0x118]
cmp rbx, qword [rsp + 0x120]
jae 0x140021a2c
test rbx, rbx
mov r12, qword [rsp + 0x38]
je 0x140021b4c
lea r15, [rsp + 0x70]
mov rcx, r15
mov edx, 0xa
call fcn.140027d50
mov r14, qword [r15]
mov rsi, qword [r15 + 8]
mov r15, rsi
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r15, r14
je 0x140021054
js 0x140021af5
mov rcx, r15
call fcn.14009f7f4
mov qword [rbx], rax
lea rdi, [rax + r15]
mov qword [rbx + 0x10], rdi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400a3450
mov qword [rbx + 8], rdi
movabs rax, 0x1000000000000000
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x20], 0
test r14, r14
je 0x140021082
dec rsi
cmp r15, rsi
ja 0x140021b6e
mov rcx, r14
call fcn.14009f888
add rbx, 0x28
mov qword [rsp + 0x118], rbx
mov rax, r12
mov r12, qword [r12 + 0x30]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x48], rax
cmp r12, rax
je 0x140021399
xorps xmm6, xmm6
jmp 0x14002110c
test rsi, rsi
movabs r13, 0x666666666666666
je 0x140021ab4
mov qword [rsi], r14
mov qword [rsi + 8], rbp
mov qword [rsi + 0x10], rbp
movaps xmmword [rsp + 0x70], xmm6
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x88]
mov eax, dword [rcx + 8]
mov dword [rsi + 0x20], eax
mov rax, qword [rcx]
mov qword [rsi + 0x18], rax
add rsi, 0x28
mov qword [rsp + 0x118], rsi
add r12, 0x28
cmp r12, qword [rsp + 0x48]
je 0x140021399
mov esi, dword [r12 + 0x18]
mov edi, dword [r12 + 0x1c]
mov r13d, dword [r12 + 0x20]
mov rbx, qword [r12]
mov r15, qword [r12 + 8]
movaps xmmword [rsp + 0x70], xmm6
mov qword [rsp + 0x80], 0
sub r15, rbx
je 0x140021a9a
js 0x140021a8a
mov rcx, r15
call fcn.14009f7f4
mov r14, rax
lea rbp, [rax + r15]
mov rcx, rax
mov rdx, rbx
mov r8, r15
call fcn.1400a3450
mov dword [rsp + 0x88], esi
mov dword [rsp + 0x8c], edi
mov dword [rsp + 0x90], r13d
mov rsi, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp rsi, rax
movabs rcx, 0xcccccccccccccccd
jb 0x1400210ad
mov r15, qword [rsp + 0x110]
mov rbx, rsi
sub rbx, r15
sar rbx, 3
imul rbx, rcx
lea rdi, [rbx + 1]
movabs r13, 0x666666666666666
cmp rdi, r13
ja 0x140021ab7
sub rax, r15
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, rdi
cmova rdi, rcx
movabs rcx, 0x333333333333333
cmp rax, rcx
cmovae rdi, r13
test rdi, rdi
je 0x140021aad
cmp rdi, r13
ja 0x140021aba
lea rax, [rdi*8]
lea rcx, [rax + rax*4]
call fcn.14009f7f4
lea rdx, [rbx + rbx*4]
lea r8, [rdx*8]
add r8, rax
je 0x140021abd
lea rcx, [rdi + rdi*4]
lea rcx, [rax + rcx*8]
mov qword [r8], r14
mov qword [r8 + 8], rbp
mov qword [r8 + 0x10], rbp
movaps xmmword [rsp + 0x70], xmm6
mov qword [rsp + 0x80], 0
lea r10, [rsp + 0x88]
mov r9d, dword [r10 + 8]
mov dword [r8 + 0x20], r9d
mov r9, qword [r10]
mov qword [r8 + 0x18], r9
lea r14, [r8 + 0x28]
cmp rsi, r15
jne 0x1400212c6
mov qword [rsp + 0x110], r8
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x120], rcx
test rsi, rsi
je 0x14002128f
mov rcx, rsi
call fcn.14009f888
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x118], r14
test rcx, rcx
je 0x1400210fd
mov rax, qword [rsp + 0x78]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021ac0
call fcn.14009f888
jmp 0x1400210fd
lea rax, [rax + rdx*8]
add rax, 0xffffffffffffffd8
test rax, rax
je 0x140021acf
movups xmmword [rax], xmm6
xor r8d, r8d
mov qword [rax + 0x10], r8
mov rdx, qword [rsi - 0x28]
mov qword [rax], rdx
mov rdx, qword [rsi - 0x20]
mov qword [rax + 8], rdx
mov rdx, qword [rsi - 0x18]
mov qword [rax + 0x10], rdx
mov qword [rsi - 0x18], r8
movups xmmword [rsi - 0x28], xmm6
mov edx, dword [rsi - 8]
mov dword [rax + 0x20], edx
mov rdx, qword [rsi - 0x10]
lea r8, [rsi - 0x28]
mov qword [rax + 0x18], rdx
add rax, 0xffffffffffffffd8
mov rsi, r8
cmp r8, r15
jne 0x1400212ce
mov rsi, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x118]
add rax, 0x28
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x120], rcx
cmp rdi, rsi
je 0x140021282
add rdi, 0xffffffffffffffd8
test rdi, rdi
je 0x140021ac9
mov rcx, qword [rdi]
test rcx, rcx
je 0x140021387
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021acc
mov qword [rdi + 8], rcx
call fcn.14009f888
lea rax, [rdi - 0x28]
cmp rdi, rsi
mov rdi, rax
je 0x140021282
jmp 0x140021357
cmp byte [rsp + 0x108], 0
je 0x140021afd
lea rcx, [rsp + 0x100]
lea r14, [rsp + 0x70]
mov rdx, r14
call fcn.140018960
mov rbx, qword [r14]
mov rsi, qword [r14 + 8]
mov r12, rsi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0
sub r12, rbx
je 0x140021b13
js 0x140021b00
mov rcx, r12
call fcn.14009f7f4
mov r14, rax
mov qword [rsp + 0x50], rax
lea r15, [rax + r12]
mov qword [rsp + 0x60], r15
mov rcx, rax
mov rdx, rbx
mov r8, r12
call fcn.1400a3450
mov qword [rsp + 0x58], r15
test rbx, rbx
je 0x140021430
dec rsi
cmp r12, rsi
ja 0x140021b1e
mov qword [rsp + 0x78], rbx
mov rcx, rbx
call fcn.14009f888
mov rbx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp rbx, rax
jb 0x140021586
mov rdi, qword [rsp + 0x110]
mov rdx, r13
mov r13, rbx
sub r13, rdi
sar r13, 3
movabs rcx, 0xcccccccccccccccd
imul r13, rcx
lea rbp, [r13 + 1]
cmp rbp, rdx
ja 0x140021b27
sub rax, rdi
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, rbp
cmova rbp, rcx
movabs rcx, 0x333333333333333
cmp rax, rcx
cmovae rbp, rdx
test rbp, rbp
je 0x140021b2a
cmp rbp, rdx
ja 0x140021b32
lea rax, [rbp*8]
lea rcx, [rax + rax*4]
call fcn.14009f7f4
mov r12, rax
lea rax, [r13*4]
add rax, r13
lea r13, [rax*8]
add r13, r12
je 0x140021b35
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], 0
sub r15, r14
je 0x140021528
js 0x140021b38
mov rcx, r15
call fcn.14009f7f4
mov qword [r13], rax
lea rsi, [rax + r15]
mov qword [r13 + 0x10], rsi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400a3450
mov qword [r13 + 8], rsi
lea rax, [rbp*4]
add rax, rbp
lea rax, [r12 + rax*8]
movabs rcx, 0x1000000000000000
mov qword [r13 + 0x18], rcx
mov dword [r13 + 0x20], 0
lea r14, [r13 + 0x28]
cmp rbx, rdi
jne 0x140021807
mov qword [rsp + 0x110], r13
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x120], rax
mov r12, qword [rsp + 0x40]
test rbx, rbx
je 0x1400215ee
mov rcx, rbx
call fcn.14009f888
jmp 0x1400215ee
test rbx, rbx
mov r12, qword [rsp + 0x40]
je 0x140021b24
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r15, r14
je 0x1400215d2
js 0x140021af5
mov rcx, r15
call fcn.14009f7f4
mov qword [rbx], rax
lea rsi, [rax + r15]
mov qword [rbx + 0x10], rsi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400a3450
mov qword [rbx + 8], rsi
movabs rax, 0x1000000000000000
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x20], 0
add rbx, 0x28
mov r14, rbx
mov qword [rsp + 0x118], r14
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14002161c
mov rax, qword [rsp + 0x58]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021b21
call fcn.14009f888
cmp byte [rsp + 0xb8], 0
je 0x140021b0a
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x110]
call fcn.14001abf0
test al, al
je 0x1400216f7
cmp byte [rsp + 0x108], 0
je 0x140021b40
cmp byte [rsp + 0xb8], 0
je 0x140021b43
mov rax, qword [rsp + 0xb0]
lea r8, [rsp + 0x70]
mov qword [r8], rax
mov rcx, qword [rsp + 0x100]
mov edx, 6
mov r9d, 8
call qword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
je 0x1400216f7
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x5c], 0
je 0x1400216c2
cmp byte [rsp + 0x108], 0
je 0x140021b71
mov rax, qword [rsp + 0x38]
mov edx, dword [rax + 0x58]
lea rcx, [rsp + 0x100]
call fcn.140026820
test al, al
je 0x1400216f7
xor eax, eax
mov byte [r12], al
mov byte [r12 + 8], al
cmp byte [rsp + 0x108], al
je 0x140021702
test r12, r12
je 0x140021b6b
lea rdx, [rsp + 0x100]
mov rcx, r12
call fcn.14001c6c0
mov byte [r12 + 8], 1
jmp 0x140021702
xor eax, eax
mov byte [r12], al
mov byte [r12 + 8], al
cmp byte [rsp + 0xb8], 0
je 0x14002172a
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], 0
test rcx, rcx
je 0x14002172a
call fcn.14009fa18
mov rsi, qword [rsp + 0x110]
test rsi, rsi
je 0x140020be2
mov rdi, qword [rsp + 0x118]
mov rcx, rsi
cmp rdi, rsi
je 0x140021759
add rdi, 0xffffffffffffffd8
jmp 0x140021780
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x118], rsi
call fcn.14009f888
jmp 0x140020be2
mov qword [rdi + 8], rcx
call fcn.14009f888
lea rax, [rdi - 0x28]
cmp rdi, rsi
mov rdi, rax
je 0x140021751
test rdi, rdi
je 0x140021a87
mov rcx, qword [rdi]
test rcx, rcx
je 0x140021774
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x14002176b
jmp 0x140021aa4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov cl, byte [rsp + 0x88]
cmp eax, 0x490
je 0x140020f72
xor eax, eax
mov byte [r12], al
mov byte [r12 + 8], al
test cl, cl
je 0x140021702
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140021702
mov rax, qword [rsp + 0x78]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021ba1
mov qword [rsp + 0x78], rcx
call fcn.14009f888
jmp 0x140021702
mov rcx, qword [rsp + 0x48]
lea rcx, [r12 + rcx*8]
add rcx, 0xffffffffffffffd8
xorps xmm0, xmm0
xor edx, edx
test rcx, rcx
je 0x140021b77
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rdx
mov r8, qword [rbx - 0x28]
mov qword [rcx], r8
mov r8, qword [rbx - 0x20]
mov qword [rcx + 8], r8
mov r8, qword [rbx - 0x18]
mov qword [rcx + 0x10], r8
mov qword [rbx - 0x18], rdx
movups xmmword [rbx - 0x28], xmm0
mov r8d, dword [rbx - 8]
mov dword [rcx + 0x20], r8d
mov r8, qword [rbx - 0x10]
lea r9, [rbx - 0x28]
mov qword [rcx + 0x18], r8
add rcx, 0xffffffffffffffd8
mov rbx, r9
cmp r9, rdi
jne 0x140021819
mov rbx, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
add rcx, 0x28
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x120], rax
cmp rsi, rbx
je 0x140021572
add rsi, 0xffffffffffffffd8
mov r12, qword [rsp + 0x40]
test rsi, rsi
je 0x140021b7a
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400218d6
mov rax, qword [rsi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021b7d
mov qword [rsi + 8], rcx
call fcn.14009f888
lea rax, [rsi - 0x28]
cmp rsi, rbx
mov rsi, rax
je 0x140021577
jmp 0x1400218a6
mov qword [rdi + 8], rcx
call fcn.14009f888
lea rax, [rdi - 0x20]
cmp rdi, rsi
mov rdi, rax
je 0x1400208e4
test rdi, rdi
je 0x140021a7e
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400218f1
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x1400218e8
int3
test al, al
je 0x140020b71
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x70]
call fcn.1400269d0
jmp 0x1400209f4
mov rcx, qword [rsp + 0x48]
lea rcx, [r14 + rcx*8]
add rcx, 0xffffffffffffffd8
xorps xmm0, xmm0
xor edx, edx
test rcx, rcx
je 0x140021b8d
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rdx
mov r8, qword [rbx - 0x28]
mov qword [rcx], r8
mov r8, qword [rbx - 0x20]
mov qword [rcx + 8], r8
mov r8, qword [rbx - 0x18]
mov qword [rcx + 0x10], r8
mov qword [rbx - 0x18], rdx
movups xmmword [rbx - 0x28], xmm0
mov r8d, dword [rbx - 8]
mov dword [rcx + 0x20], r8d
mov r8, qword [rbx - 0x10]
lea r9, [rbx - 0x28]
mov qword [rcx + 0x18], r8
add rcx, 0xffffffffffffffd8
mov rbx, r9
cmp r9, rdi
jne 0x140021958
mov rbx, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
add rcx, 0x28
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], r12
mov qword [rsp + 0x120], rax
cmp rsi, rbx
movabs r13, 0x666666666666666
je 0x140020ef2
add rsi, 0xffffffffffffffd8
test rsi, rsi
je 0x140021ba4
mov rcx, qword [rsi]
test rcx, rcx
je 0x140021a1a
mov rax, qword [rsi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021ba7
mov qword [rsi + 8], rcx
call fcn.14009f888
lea rax, [rsi - 0x28]
cmp rsi, rbx
mov rsi, rax
je 0x140020ee8
jmp 0x1400219ea
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x110]
lea rdx, [rsp + 0xa4]
lea r8, [rsp + 0xa8]
lea r9, [rsp + 0xac]
call fcn.140106870
mov rbx, rax
mov r12, qword [rsp + 0x38]
jmp 0x140021086
int3
int3
lea rcx, [rsp + 0x110]
call fcn.1400d43e0
int3
int3
int3
int3
int3
lea rcx, [rsp + 0x70]
call fcn.1400d43e0
int3
int3
xor ebp, ebp
xor r14d, r14d
jmp 0x140021161
int3
int3
int3
xor eax, eax
jmp 0x140021211
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov rcx, rbx
call fcn.14001f4b0
mov byte [rbx + 8], 0
jmp 0x140020aee
int3
int3
int3
int3
mov rcx, rbx
call fcn.1400d43e0
int3
lea rcx, [rsp + 0x50]
call fcn.1400d43e0
int3
int3
int3
xor r14d, r14d
xor r15d, r15d
jmp 0x140021412
int3
int3
int3
int3
xor r12d, r12d
jmp 0x1400214c6
int3
int3
mov rcx, r13
call fcn.1400d43e0
int3
int3
int3
int3
int3
int3
int3
xor r14d, r14d
jmp 0x140020e41
int3
int3
mov rcx, r15
call fcn.1400d43e0
int3
int3
int3
int3
int3
int3
int3
mov rcx, rbx
call fcn.14009f888
jmp 0x140020f63
int3
mov rcx, rbx
call fcn.14001f4b0
mov byte [rbx + 8], 0
jmp 0x1400209f4
int3
int3
int3