Function at 0x140020550
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 rsi, r8
mov r15, rdx
mov rdi, rcx
mov rax, qword [0x14013b040]
xor rax, rsp
mov qword [rsp + 0x128], rax
movaps xmm6, xmmword [0x14011c0c0]
movaps xmmword [rsp + 0x100], xmm6
xor eax, eax
mov byte [rsp + 0x100], al
mov byte [rsp + 0x108], al
lea rdx, [rcx + 0x18]
movabs r12, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0xe0]
mov qword [rcx + 0x10], r12
movaps xmmword [rcx], xmm6
call fcn.140022170
cmp byte [rdi + 0x80], 1
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rsi
je 0x140021469
cmp byte [rdi + 0x63], 1
jne 0x1400207fb
mov rdx, qword [rsi]
lea r14, [rsp + 0x80]
mov rcx, r14
mov r8d, 2
call fcn.140022710
mov rsi, qword [r14]
mov rbp, qword [r14 + 8]
cmp rsi, rbp
je 0x140020789
xorps xmm7, xmm7
lea r15, [rsp + 0x110]
mov rbx, qword [sym.imp.ADVAPI32.dll_EqualSid]
jmp 0x14002073f
lea rcx, [rsp + 0xe0]
mov rdx, r15
call fcn.140021fb0
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0xe8], rax
test rcx, rcx
je 0x140020736
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021c8c
mov qword [rsp + 0x118], rcx
call fcn.14009d26c
jmp 0x140020736
mov r12, qword [rsi]
mov r13, qword [rsi + 8]
movaps xmmword [rsp + 0x110], xmm7
mov qword [rsp + 0x120], 0
sub r13, r12
je 0x1400206dd
js 0x140021c48
mov rcx, r13
call fcn.14009d274
mov qword [rsp + 0x110], rax
lea r14, [rax + r13]
mov qword [rsp + 0x120], r14
mov rcx, rax
mov rdx, r12
mov r8, r13
call fcn.1400d07c0
mov qword [rsp + 0x118], r14
mov rax, qword [rsp + 0xe8]
cmp rax, qword [rsp + 0xf0]
jae 0x140020630
test rax, rax
je 0x140021c6d
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 rsi, 0x20
cmp rsi, rbp
je 0x140020772
mov eax, dword [rsi + 0x18]
cmp eax, 0xbfffffff
ja 0x140020736
and eax, 0x20
jne 0x140020736
mov r12, qword [rdi + 0x68]
mov r13, qword [rdi + 0x70]
cmp r12, r13
je 0x140020685
mov rdx, qword [rsi]
mov rcx, qword [r12]
call rbx
test eax, eax
jne 0x140020736
add r12, 0x18
jmp 0x140020756
mov rsi, qword [rsp + 0x80]
mov r15, qword [rsp + 0x40]
movabs r12, 0xaaaaaaaaaaaaaaaa
test rsi, rsi
je 0x1400207f6
mov rbx, qword [rsp + 0x88]
mov rcx, rsi
cmp rbx, rsi
je 0x1400207e9
add rbx, 0xffffffffffffffe0
jmp 0x1400207b9
mov qword [rbx + 8], rcx
call fcn.14009d26c
lea rax, [rbx - 0x20]
cmp rbx, rsi
mov rbx, rax
je 0x1400207e1
test rbx, rbx
je 0x140021c58
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400207ad
mov rax, qword [rbx + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x1400207a4
jmp 0x140021c67
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x88], rsi
call fcn.14009d26c
mov rsi, qword [rsp + 0x48]
lea r14, [rsp + 0xc0]
mov qword [r14 + 0x10], r12
movaps xmmword [r14], xmm6
mov rcx, r14
mov rdx, rdi
call fcn.140022170
cmp byte [rdi + 0x82], 1
jne 0x140020926
lea r12, [rsp + 0x80]
mov rcx, rsi
mov rdx, r12
call fcn.140017ae0
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 0x140020896
js 0x140021c48
mov rcx, r12
call fcn.14009d274
mov qword [rsp + 0x110], rax
lea rbx, [rax + r12]
mov qword [rsp + 0x120], rbx
mov rcx, rax
mov rdx, r15
mov r8, r12
call fcn.1400d07c0
mov qword [rsp + 0x118], rbx
test r15, r15
je 0x1400208b7
dec rsi
cmp r12, rsi
ja 0x140021da8
mov qword [rsp + 0x88], r15
mov rcx, r15
call fcn.14009d26c
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0xd0]
jb 0x140021e35
lea r15, [rsp + 0xc0]
lea r12, [rsp + 0x110]
mov rcx, r15
mov rdx, r12
call fcn.140021fb0
mov rcx, qword [r12]
mov qword [r15 + 8], rax
test rcx, rcx
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
je 0x140020926
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021dab
mov qword [rsp + 0x118], rcx
call fcn.14009d26c
cmp byte [rdi + 0x83], 1
jne 0x140020b0c
mov rdx, qword [rsi]
lea r15, [rsp + 0x80]
mov rcx, r15
mov r8d, 2
call fcn.140022710
mov rsi, qword [r15]
mov rbx, qword [r15 + 8]
cmp rsi, rbx
je 0x140020a95
xorps xmm7, xmm7
lea r15, [rsp + 0xc0]
lea r12, [rsp + 0x110]
jmp 0x1400209c1
test rax, rax
je 0x140021c61
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 0x140020a85
test byte [rsi + 0x18], 0x20
jne 0x1400209b4
mov r13, qword [rsi]
mov rbp, qword [rsi + 8]
movaps xmmword [rsp + 0x110], xmm7
mov qword [rsp + 0x120], 0
sub rbp, r13
je 0x140020a1f
js 0x140021c48
mov rcx, rbp
call fcn.14009d274
mov qword [rsp + 0x110], rax
lea r14, [rax + rbp]
mov qword [rsp + 0x120], r14
mov rcx, rax
mov rdx, r13
mov r8, rbp
call fcn.1400d07c0
mov qword [rsp + 0x118], r14
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0xd0]
jb 0x140020971
mov rcx, r15
mov rdx, r12
call fcn.140021fb0
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0xc8], rax
test rcx, rcx
je 0x1400209b4
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021c8f
mov qword [rsp + 0x118], rcx
call fcn.14009d26c
jmp 0x1400209b4
mov rsi, qword [rsp + 0x80]
lea r14, [rsp + 0xc0]
test rsi, rsi
mov r15, qword [rsp + 0x40]
je 0x140020b07
mov rbx, qword [rsp + 0x88]
mov rcx, rsi
cmp rbx, rsi
je 0x140020afa
add rbx, 0xffffffffffffffe0
jmp 0x140020aca
mov qword [rbx + 8], rcx
call fcn.14009d26c
lea rax, [rbx - 0x20]
cmp rbx, rsi
mov rbx, rax
je 0x140020af2
test rbx, rbx
je 0x140021c5b
mov rcx, qword [rbx]
test rcx, rcx
je 0x140020abe
mov rax, qword [rbx + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x140020ab5
jmp 0x140021c6a
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x88], rsi
call fcn.14009d26c
mov rsi, qword [rsp + 0x48]
cmp byte [rdi + 0x81], 1
je 0x140021ba0
mov rax, qword [rsp + 0xe0]
cmp rax, qword [rsp + 0xe8]
jne 0x140020b41
mov rax, qword [rsp + 0xc0]
cmp rax, qword [rsp + 0xc8]
je 0x1400218a2
xorps xmm0, xmm0
lea rax, [rsp + 0x80]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
movzx r8d, byte [rdi + 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, rsi
mov rdx, r14
call fcn.140022ae0
mov al, byte [rsp + 0x108]
cmp al, byte [r14 + 8]
je 0x140021447
lea rbx, [rsp + 0x100]
test al, al
jne 0x140021d97
lea rdx, [rsp + 0x110]
mov rcx, rbx
call fcn.14001c540
mov byte [rbx + 8], 1
cmp byte [rsp + 0x118], 1
jne 0x140020bd5
lea rcx, [rsp + 0x110]
call fcn.14001fcf0
mov rdx, qword [rsp + 0x80]
test rdx, rdx
jne 0x140021d3b
mov al, byte [rsp + 0x108]
test al, al
je 0x140021ce4
cmp byte [rdi + 0x61], 1
jne 0x140020c1d
cmp byte [rdi + 0x62], 1
jne 0x140020c1d
lea rcx, [rsp + 0x100]
call fcn.140022910
test al, al
je 0x140021ce4
mov al, byte [rsp + 0x108]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x120], 0
movaps xmmword [rsp + 0xb0], xmm6
test al, 1
je 0x140021c95
lea rcx, [rsp + 0x100]
lea rbx, [rsp + 0xb0]
mov rdx, rbx
call fcn.1400224b0
cmp byte [rbx + 8], 0
je 0x140021c7e
movabs rbp, 0x666666666666666
movabs r14, 0x333333333333333
cmp byte [rdi + 0x60], 1
jne 0x140021931
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
cmp byte [rsp + 0x108], 0
je 0x140021cb1
lea rcx, [rsp + 0x100]
lea rbx, [rsp + 0x80]
mov rdx, rbx
call fcn.1400225a0
cmp byte [rbx + 0x18], 1
jne 0x140021dae
mov rbx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp rbx, rax
jb 0x140021d08
mov rcx, qword [rsp + 0x110]
sub rbx, rcx
sar rbx, 3
movabs rdx, 0xcccccccccccccccd
imul rbx, rdx
lea rsi, [rbx + 1]
cmp rsi, rbp
ja 0x140021cb4
sub rax, rcx
sar rax, 3
imul rax, rdx
lea rcx, [rax + rax]
cmp rcx, rsi
cmova rsi, rcx
cmp rax, r14
cmovae rsi, rbp
test rsi, rsi
je 0x140021cb7
cmp rsi, rbp
ja 0x140021cbf
lea rax, [rsi*8]
lea rcx, [rax + rax*4]
call fcn.14009d274
mov r14, rax
lea rbx, [rbx + rbx*4]
shl rbx, 3
add rbx, r14
je 0x140021cc2
mov r15, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r12, r15
je 0x140020da9
js 0x140021c73
mov rcx, r12
call fcn.14009d274
mov qword [rbx], rax
lea r13, [rax + r12]
mov qword [rbx + 0x10], r13
mov rcx, rax
mov rdx, r15
mov r8, r12
call fcn.1400d07c0
mov qword [rbx + 8], r13
mov qword [rbx + 0x18], 3
mov dword [rbx + 0x20], 0
mov r15, qword [rsp + 0x110]
mov r13, qword [rsp + 0x118]
mov rax, r15
sub rax, r13
lea r12, [rbx + rax]
je 0x140020e6e
xorps xmm0, xmm0
xor eax, eax
mov rcx, r15
mov rdx, r12
test rdx, rdx
je 0x140021d58
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], rax
mov r8, qword [rcx]
mov qword [rdx], r8
mov r8, qword [rcx + 8]
mov qword [rdx + 8], r8
mov r8, qword [rcx + 0x10]
mov qword [rdx + 0x10], r8
mov qword [rcx + 0x10], rax
movups xmmword [rcx], xmm0
mov r8d, dword [rcx + 0x20]
mov dword [rdx + 0x20], r8d
mov r8, qword [rcx + 0x18]
mov qword [rdx + 0x18], r8
add rcx, 0x28
add rdx, 0x28
cmp rcx, r13
jne 0x140020de3
test r15, r15
je 0x140021d5b
mov rcx, qword [r15]
test rcx, rcx
je 0x140020e5d
mov rax, qword [r15 + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021d5e
mov qword [r15 + 8], rcx
call fcn.14009d26c
add r15, 0x28
cmp r15, r13
jne 0x140020e2d
mov r15, qword [rsp + 0x110]
lea rax, [rsi + rsi*4]
lea rax, [r14 + rax*8]
add rbx, 0x28
mov qword [rsp + 0x110], r12
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rax
test r15, r15
jne 0x140021cf2
mov qword [rsp + 0x118], rbx
cmp byte [rsp + 0x98], 1
jne 0x140020ee1
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140020ee1
mov rax, qword [rsp + 0x88]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021d05
mov qword [rsp + 0x88], rcx
call fcn.14009d26c
mov r12, qword [rdi + 0x30]
mov rax, qword [rdi + 0x38]
cmp r12, rax
jne 0x140021572
cmp byte [rsp + 0x108], 0
je 0x140021c98
lea rcx, [rsp + 0x100]
lea r14, [rsp + 0x80]
mov rdx, r14
call fcn.140017ae0
mov rbx, qword [r14]
mov rsi, qword [r14 + 8]
mov r12, rsi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
sub r12, rbx
je 0x140021cd9
js 0x140021c9b
mov rcx, r12
call fcn.14009d274
mov r14, rax
mov qword [rsp + 0x60], rax
lea r15, [rax + r12]
mov qword [rsp + 0x70], r15
mov rcx, rax
mov rdx, rbx
mov r8, r12
call fcn.1400d07c0
mov qword [rsp + 0x68], r15
test rbx, rbx
je 0x140020f8f
dec rsi
cmp r12, rsi
ja 0x140021cff
mov qword [rsp + 0x88], rbx
mov rcx, rbx
call fcn.14009d26c
mov rbx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp rbx, rax
jb 0x14002183d
mov rcx, qword [rsp + 0x110]
sub rbx, rcx
sar rbx, 3
movabs rdx, 0xcccccccccccccccd
imul rbx, rdx
lea rsi, [rbx + 1]
cmp rsi, rbp
ja 0x140021cc5
sub rax, rcx
sar rax, 3
imul rax, rdx
lea rcx, [rax + rax]
cmp rcx, rsi
cmova rsi, rcx
movabs rcx, 0x333333333333333
cmp rax, rcx
cmovae rsi, rbp
test rsi, rsi
je 0x140021cc8
cmp rsi, rbp
ja 0x140021cd0
lea rax, [rsi*8]
lea rcx, [rax + rax*4]
call fcn.14009d274
mov r12, rax
lea rbx, [rbx + rbx*4]
shl rbx, 3
add rbx, r12
je 0x140021cd3
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r15, r14
je 0x14002106e
js 0x140021c73
mov rcx, r15
call fcn.14009d274
mov qword [rbx], rax
lea r13, [rax + r15]
mov qword [rbx + 0x10], r13
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400d07c0
mov qword [rbx + 8], r13
movabs rax, 0x1000000000000000
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x20], 0
mov r14, qword [rsp + 0x110]
mov r13, qword [rsp + 0x118]
mov rax, r14
sub rax, r13
lea r15, [rbx + rax]
je 0x140021139
xorps xmm0, xmm0
xor eax, eax
mov rcx, r14
mov rdx, r15
test rdx, rdx
je 0x140021d61
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], rax
mov r8, qword [rcx]
mov qword [rdx], r8
mov r8, qword [rcx + 8]
mov qword [rdx + 8], r8
mov r8, qword [rcx + 0x10]
mov qword [rdx + 0x10], r8
mov qword [rcx + 0x10], rax
movups xmmword [rcx], xmm0
mov r8d, dword [rcx + 0x20]
mov dword [rdx + 0x20], r8d
mov r8, qword [rcx + 0x18]
mov qword [rdx + 0x18], r8
add rcx, 0x28
add rdx, 0x28
cmp rcx, r13
jne 0x1400210ae
test r14, r14
je 0x140021d64
mov rcx, qword [r14]
test rcx, rcx
je 0x140021128
mov rax, qword [r14 + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021d67
mov qword [r14 + 8], rcx
call fcn.14009d26c
add r14, 0x28
cmp r14, r13
jne 0x1400210f8
mov r14, qword [rsp + 0x110]
lea rax, [rsi + rsi*4]
lea rax, [r12 + rax*8]
add rbx, 0x28
mov qword [rsp + 0x110], r15
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rax
test r14, r14
je 0x14002116a
mov rcx, r14
call fcn.14009d26c
mov r15, qword [rsp + 0x40]
mov qword [rsp + 0x118], rbx
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14002119d
mov rax, qword [rsp + 0x68]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021d02
call fcn.14009d26c
cmp byte [rsp + 0xb8], 0
je 0x140021ca5
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x110]
call fcn.140028a90
test al, al
je 0x140021c7e
cmp byte [rsp + 0x108], 0
je 0x140021ca8
cmp byte [rsp + 0xb8], 0
je 0x140021cab
mov rax, qword [rsp + 0xb0]
lea r8, [rsp + 0x80]
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 0x140021c7e
cmp byte [rdi + 0x5c], 1
jne 0x140021244
cmp byte [rsp + 0x108], 0
je 0x140021cd6
mov edx, dword [rdi + 0x58]
lea rcx, [rsp + 0x100]
call fcn.140022350
test al, al
je 0x140021c7e
xor eax, eax
mov byte [r15], al
mov byte [r15 + 8], al
cmp byte [rsp + 0x108], 1
jne 0x140021275
test r15, r15
je 0x140021cae
lea rdx, [rsp + 0x100]
mov rcx, r15
call fcn.14001c540
mov byte [r15 + 8], 1
cmp byte [rsp + 0xb8], 1
jne 0x14002129d
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], 0
test rcx, rcx
je 0x14002129d
call fcn.14009d2d0
mov rsi, qword [rsp + 0x110]
test rsi, rsi
je 0x14002130f
mov rdi, qword [rsp + 0x118]
mov rcx, rsi
cmp rdi, rsi
je 0x140021302
add rdi, 0xffffffffffffffd8
test rdi, rdi
je 0x140021c7b
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400212ee
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021c92
mov qword [rdi + 8], rcx
call fcn.14009d26c
lea rax, [rdi - 0x28]
cmp rdi, rsi
mov rdi, rax
jne 0x1400212be
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x118], rsi
call fcn.14009d26c
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x140021384
mov rdi, qword [rsp + 0xc8]
mov rcx, rsi
cmp rdi, rsi
je 0x140021377
add rdi, 0xffffffffffffffe8
jmp 0x140021347
mov qword [rdi + 8], rcx
call fcn.14009d26c
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x14002136f
test rdi, rdi
je 0x140021c55
mov rcx, qword [rdi]
test rcx, rcx
je 0x14002133b
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x140021332
jmp 0x140021c64
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rsi
call fcn.14009d26c
mov rsi, qword [rsp + 0xe0]
test rsi, rsi
je 0x1400213f9
mov rdi, qword [rsp + 0xe8]
mov rcx, rsi
cmp rdi, rsi
je 0x1400213ec
add rdi, 0xffffffffffffffe8
jmp 0x1400213bc
mov qword [rdi + 8], rcx
call fcn.14009d26c
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x1400213e4
test rdi, rdi
je 0x140021c5e
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400213b0
mov rax, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x1400213a7
jmp 0x140021c70
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0xe8], rsi
call fcn.14009d26c
cmp byte [rsp + 0x108], 1
jne 0x140021410
lea rcx, [rsp + 0x100]
call fcn.14001fcf0
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
call fcn.14009f1f0
mov rax, r15
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
test al, al
je 0x140020bbe
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x110]
call fcn.140029930
jmp 0x140020bbe
lea r15, [rsp + 0x80]
mov rcx, rsi
mov rdx, r15
call fcn.140017ae0
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 0x1400214da
js 0x140021c48
mov rcx, r15
call fcn.14009d274
mov qword [rsp + 0x110], rax
lea rbx, [rax + r15]
mov qword [rsp + 0x120], rbx
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400d07c0
mov qword [rsp + 0x118], rbx
test r14, r14
je 0x1400214fb
dec rsi
cmp r15, rsi
ja 0x140021e1c
mov qword [rsp + 0x88], r14
mov rcx, r14
call fcn.14009d26c
mov rax, qword [rsp + 0xe8]
cmp rax, qword [rsp + 0xf0]
jb 0x140021e97
lea r14, [rsp + 0xe0]
lea r15, [rsp + 0x110]
mov rcx, r14
mov rdx, r15
call fcn.140021fb0
mov rcx, qword [r15]
mov qword [r14 + 8], rax
test rcx, rcx
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
je 0x1400205e6
mov rax, qword [rsp + 0x118]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021e1f
mov qword [rsp + 0x118], rcx
call fcn.14009d26c
jmp 0x1400205e6
xorps xmm6, xmm6
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdi
mov ebp, dword [r12 + 0x18]
mov edi, dword [r12 + 0x1c]
mov r13d, dword [r12 + 0x20]
mov r14, qword [r12]
mov r15, qword [r12 + 8]
movaps xmmword [rsp + 0x80], xmm6
mov qword [rsp + 0x90], 0
sub r15, r14
je 0x140021e13
js 0x140021d6a
mov rcx, r15
call fcn.14009d274
mov rbx, rax
mov qword [rsp + 0x80], rax
lea rsi, [rax + r15]
mov qword [rsp + 0x90], rsi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400d07c0
mov qword [rsp + 0x88], rsi
mov dword [rsp + 0x98], ebp
mov dword [rsp + 0x9c], edi
mov dword [rsp + 0xa0], r13d
mov r14, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp r14, rax
jb 0x140021eef
mov rcx, qword [rsp + 0x110]
sub r14, rcx
sar r14, 3
movabs rdx, 0xcccccccccccccccd
imul r14, rdx
lea rsi, [r14 + 1]
movabs rbp, 0x666666666666666
cmp rsi, rbp
mov rdi, qword [rsp + 0x50]
ja 0x140021d77
sub rax, rcx
sar rax, 3
imul rax, rdx
lea rcx, [rax + rax]
cmp rcx, rsi
cmova rsi, rcx
movabs rcx, 0x333333333333333
cmp rax, rcx
cmovae rsi, rbp
test rsi, rsi
je 0x140021d7a
cmp rsi, rbp
ja 0x140021d82
lea rax, [rsi*8]
lea rcx, [rax + rax*4]
call fcn.14009d274
mov r9, rax
lea r15, [r14 + r14*4]
shl r15, 3
add r15, r9
je 0x140021d85
movups xmmword [r15], xmm6
xor ecx, ecx
mov qword [r15 + 0x10], rcx
mov rax, qword [rsp + 0x80]
mov qword [r15], rax
mov rax, qword [rsp + 0x88]
mov qword [r15 + 8], rax
mov rax, qword [rsp + 0x90]
mov qword [r15 + 0x10], rax
mov qword [rsp + 0x90], rcx
movaps xmmword [rsp + 0x80], xmm6
lea rcx, [rsp + 0x98]
mov eax, dword [rcx + 8]
mov dword [r15 + 0x20], eax
mov rax, qword [rcx]
mov qword [r15 + 0x18], rax
mov r14, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x118]
mov rax, r14
sub rax, rbx
lea r13, [r15 + rax]
je 0x1400217c4
mov rax, r14
mov rcx, r13
test rcx, rcx
je 0x140021d8b
movups xmmword [rcx], xmm6
xor r8d, r8d
mov qword [rcx + 0x10], r8
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rdx, qword [rax + 8]
mov qword [rcx + 8], rdx
mov rdx, qword [rax + 0x10]
mov qword [rcx + 0x10], rdx
mov qword [rax + 0x10], r8
movups xmmword [rax], xmm6
mov edx, dword [rax + 0x20]
mov dword [rcx + 0x20], edx
mov rdx, qword [rax + 0x18]
mov qword [rcx + 0x18], rdx
add rax, 0x28
add rcx, 0x28
cmp rax, rbx
jne 0x14002172e
test r14, r14
je 0x140021d8e
mov rcx, qword [r14]
test rcx, rcx
je 0x1400217b3
mov qword [rsp + 0x58], r9
mov rax, qword [r14 + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021d91
mov qword [r14 + 8], rcx
call fcn.14009d26c
mov r9, qword [rsp + 0x58]
add r14, 0x28
cmp r14, rbx
jne 0x140021779
mov r14, qword [rsp + 0x110]
lea rax, [rsi + rsi*4]
lea rax, [r9 + rax*8]
add r15, 0x28
mov qword [rsp + 0x110], r13
mov qword [rsp + 0x118], r15
mov qword [rsp + 0x120], rax
test r14, r14
je 0x1400217f5
mov rcx, r14
call fcn.14009d26c
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x118], r15
test rcx, rcx
je 0x140021829
mov rax, qword [rsp + 0x88]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021d88
call fcn.14009d26c
add r12, 0x28
cmp r12, qword [rsp + 0x48]
je 0x140020ef2
jmp 0x14002157f
test rbx, rbx
je 0x140021e32
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r15, r14
je 0x140021884
js 0x140021c73
mov rcx, r15
call fcn.14009d274
mov qword [rbx], rax
lea rsi, [rax + r15]
mov qword [rbx + 0x10], rsi
mov rcx, rax
mov rdx, r14
mov r8, r15
call fcn.1400d07c0
mov qword [rbx + 8], rsi
movabs rax, 0x1000000000000000
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x20], 0
add rbx, 0x28
jmp 0x14002116a
cmp byte [rdi + 0x61], 1
je 0x140020b41
lea r14, [rsp + 0x80]
mov rcx, rsi
mov rdx, r14
mov r8d, 0xf01ff
call fcn.140022a00
mov al, byte [rsp + 0x108]
cmp al, byte [r14 + 8]
je 0x140021916
lea rbx, [rsp + 0x100]
test al, al
jne 0x140021f88
lea rdx, [rsp + 0x80]
mov rcx, rbx
call fcn.14001c540
mov byte [rbx + 8], 1
cmp byte [rsp + 0x88], 1
jne 0x140020be6
lea rcx, [rsp + 0x80]
call fcn.14001fcf0
jmp 0x140020be6
test al, al
je 0x1400218f6
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x80]
call fcn.140029930
jmp 0x1400218f6
mov rbx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x120]
cmp rbx, rax
jb 0x140021f50
mov rcx, qword [rsp + 0x110]
sub rbx, rcx
sar rbx, 3
movabs rdx, 0xcccccccccccccccd
imul rbx, rdx
lea rsi, [rbx + 1]
cmp rsi, rbp
ja 0x140021e22
sub rax, rcx
sar rax, 3
imul rax, rdx
lea rcx, [rax + rax]
cmp rcx, rsi
cmova rsi, rcx
cmp rax, r14
cmovae rsi, rbp
test rsi, rsi
je 0x140021e25
cmp rsi, rbp
ja 0x140021e2c
lea rax, [rsi*8]
lea rcx, [rax + rax*4]
call fcn.14009d274
lea rbx, [rbx + rbx*4]
shl rbx, 3
mov qword [rsp + 0x48], rax
add rbx, rax
je 0x140021e2f
lea r12, [rsp + 0x80]
mov rcx, r12
mov edx, 0xa
call fcn.14002c650
mov r15, qword [r12]
mov r13, qword [r12 + 8]
mov r12, r13
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
sub r12, r15
je 0x140021a2f
js 0x140021c73
mov r14, rbp
mov rcx, r12
call fcn.14009d274
mov qword [rbx], rax
lea rbp, [rax + r12]
mov qword [rbx + 0x10], rbp
mov rcx, rax
mov rdx, r15
mov r8, r12
call fcn.1400d07c0
mov qword [rbx + 8], rbp
mov rbp, r14
movabs rax, 0x1000000000000000
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x20], 0
test r15, r15
je 0x140021a5d
dec r13
cmp r12, r13
ja 0x140021eec
mov rcx, r15
call fcn.14009d26c
mov r15, qword [rsp + 0x110]
mov r13, qword [rsp + 0x118]
mov rax, r15
sub rax, r13
lea r12, [rbx + rax]
je 0x140021b13
xorps xmm0, xmm0
xor eax, eax
mov rcx, r15
mov rdx, r12
test rdx, rdx
je 0x140021f7f
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], rax
mov r8, qword [rcx]
mov qword [rdx], r8
mov r8, qword [rcx + 8]
mov qword [rdx + 8], r8
mov r8, qword [rcx + 0x10]
mov qword [rdx + 0x10], r8
mov qword [rcx + 0x10], rax
movups xmmword [rcx], xmm0
mov r8d, dword [rcx + 0x20]
mov dword [rdx + 0x20], r8d
mov r8, qword [rcx + 0x18]
mov qword [rdx + 0x18], r8
add rcx, 0x28
add rdx, 0x28
cmp rcx, r13
jne 0x140021a88
test r15, r15
je 0x140021f82
mov rcx, qword [r15]
test rcx, rcx
je 0x140021b02
mov rax, qword [r15 + 8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021f85
mov qword [r15 + 8], rcx
call fcn.14009d26c
add r15, 0x28
cmp r15, r13
jne 0x140021ad2
mov r15, qword [rsp + 0x110]
lea rax, [rsi + rsi*4]
mov rcx, qword [rsp + 0x48]
lea rax, [rcx + rax*8]
add rbx, 0x28
mov qword [rsp + 0x110], r12
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rax
test r15, r15
jne 0x140021e8a
mov qword [rsp + 0x118], rbx
jmp 0x140020ee1
test rax, rax
je 0x140021f99
xorps xmm0, xmm0
movups xmmword [rax], xmm0
xor ecx, ecx
mov qword [rax + 0x10], rcx
mov rdx, qword [rsp + 0x80]
mov qword [rax], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x90]
mov qword [rax + 0x10], rdx
mov qword [rsp + 0x90], rcx
movaps xmmword [rsp + 0x80], xmm0
add rax, 0x18
jmp 0x140021bef
lea r15, [rsp + 0x80]
movaps xmmword [r15 + 0x10], xmm6
movaps xmmword [r15], xmm6
mov rcx, rsi
mov rdx, r15
call fcn.1400225a0
mov al, byte [r15 + 0x18]
cmp al, 1
jne 0x140021bfe
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0xd0]
jb 0x140021b52
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x80]
call fcn.140021fb0
mov qword [rsp + 0xc8], rax
mov al, byte [rsp + 0x98]
test al, 1
mov r15, qword [rsp + 0x40]
je 0x140020b19
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140020b19
mov rax, qword [rsp + 0x88]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021f7c
mov qword [rsp + 0x88], rcx
call fcn.14009d26c
jmp 0x140020b19
lea rcx, [rsp + 0x110]
call fcn.1400d1300
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov rcx, rbx
call fcn.1400d1300
int3
xor eax, eax
mov byte [r15], al
mov byte [r15 + 8], al
jmp 0x140021275
int3
int3
int3
int3
int3
lea rcx, [rsp + 0x60]
call fcn.1400d1300
int3
int3
int3
int3
int3
int3
xor r14d, r14d
jmp 0x140020d4a
int3
int3
int3
xor r12d, r12d
jmp 0x14002101f
int3
int3
int3
xor r14d, r14d
xor r15d, r15d
jmp 0x140020f6e
xor eax, eax
mov byte [r15], al
mov byte [r15 + 8], al
jmp 0x14002130f
mov rcx, r15
call fcn.14009d26c
jmp 0x140020e9b
int3
int3
int3
test rbx, rbx
je 0x140021f9f
mov dword [rsp + 0x20], 0
lea rdx, [rsp + 0x80]
mov rcx, rbx
mov r8d, 3
xor r9d, r9d
call fcn.14003c030
add rbx, 0x28
jmp 0x140020e9b
lea rbx, [rsp + 0x80]
mov rcx, rbx
call fcn.140097c90
mov rcx, qword [rbx]
call fcn.14009d26c
jmp 0x140020be6
int3
int3
int3
int3
int3
int3
lea rcx, [rsp + 0x80]
call fcn.1400d1300
int3
xor r9d, r9d
jmp 0x1400216a4
int3
int3
int3
int3
int3
int3
int3
mov rcx, rbx
call fcn.14001fcf0
mov byte [rbx + 8], 0
jmp 0x140020bbe
int3
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x490
je 0x140020ea3
xor eax, eax
mov rcx, qword [rsp + 0x40]
mov byte [rcx], al
mov byte [rcx + 8], al
cmp byte [rsp + 0x98], 1
jne 0x140021e09
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140021e09
mov rax, qword [rsp + 0x88]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140021f9c
mov qword [rsp + 0x88], rcx
call fcn.14009d26c
mov r15, qword [rsp + 0x40]
jmp 0x140021275
xor esi, esi
xor ebx, ebx
jmp 0x1400215ef
int3
int3
int3
xor eax, eax
jmp 0x1400219b4
int3
int3
int3
test rax, rax
je 0x140021fa2
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 r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
jmp 0x140020926
mov rcx, r15
call fcn.14009d26c
jmp 0x140021b45
test rax, rax
je 0x140021fa5
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 r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
jmp 0x1400205e6
int3
test r14, r14
je 0x140021d94
mov qword [r14], rbx
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], rsi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x98]
mov eax, dword [rcx + 8]
mov dword [r14 + 0x20], eax
mov rax, qword [rcx]
mov qword [r14 + 0x18], rax
add r14, 0x28
mov qword [rsp + 0x118], r14
movabs rbp, 0x666666666666666
mov rdi, qword [rsp + 0x50]
jmp 0x140021829
test rbx, rbx
je 0x140021fa8
mov dword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 0xa
xor r8d, r8d
mov r9d, 0x10000000
call fcn.14003c0c0
add rbx, 0x28
jmp 0x140021b45
int3
int3
int3
int3
mov rcx, rbx
call fcn.14001fcf0
mov byte [rbx + 8], 0
jmp 0x1400218f6
int3
int3
int3
int3
int3
int3