Function at 0x180171520
Capabilities:
Print debug messages

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov qword [rbp - 0x49], 0xfffffffffffffffe
mov qword [rsp + 0x118], rbx
mov rax, qword [0x180332088]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rsi, r8
mov r13, rcx
test rdx, rdx
jne 0x180171569
lea eax, [rdx + 1]
jmp 0x180171796
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x79], xmm0
xor r12d, r12d
mov qword [rbp - 0x69], r12
lea r8, [rbp - 0x79]
call fcn.180171050
mov rdi, qword [rbp - 0x79]
cmp rdi, qword [rbp - 0x71]
je 0x180171737
lea ebx, [r12 + 8]
or r14d, 0xffffffff
nop dword [rax + rax]
mov rdx, rdi
lea rcx, [rbp - 0x39]
call fcn.18016df70
nop
mov rcx, qword [rbp - 1]
sub rcx, qword [rbp - 9]
sar rcx, 7
mov eax, 5
cmp rcx, 1
cmove eax, ebx
mov dword [r13 + 0x1258], eax
lea rcx, [rbp - 0x61]
call fcn.180173c30
nop
mov rbx, qword [rbp - 0x61]
lea rdx, [rbp - 0x39]
lea rcx, [r13 + 0x1020]
call fcn.1801a81a0
test rax, rax
je 0x180171610
mov r9, rbx
lea r8, [rbp - 0x39]
mov rdx, rax
lea rcx, [r13 + 0x1020]
call fcn.1801a8aa0
mov dword [r13 + 0x1258], 0x3e8
mov rax, qword [rbp - 0x61]
mov rbx, qword [rax]
mov rax, qword [rax + 8]
mov qword [rbp - 0x51], rax
cmp rbx, rax
je 0x180171644
mov rdx, rbx
mov rcx, rsi
call fcn.180082a60
add rbx, 0x10
mov rax, qword [rbp - 0x61]
mov rax, qword [rax + 8]
mov qword [rbp - 0x51], rax
cmp rbx, rax
jne 0x180171624
mov rax, qword [rsi + 8]
sub rax, qword [rsi]
sar rax, 4
cmp rax, 0x1e
ja 0x1801716cf
mov rbx, qword [rbp - 0x59]
test rbx, rbx
je 0x18017168a
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18017168a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18017168a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [0x1802abc2c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [rbp - 9]
call fcn.180173390
mov r8, qword [rbp - 0x19]
cmp r8, 8
jb 0x1801716ba
inc r8
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x31]
call fcn.18005cac0
add rdi, 0x18
cmp rdi, qword [rbp - 0x71]
mov ebx, 8
jne 0x1801715a0
jmp 0x180171733
mov rbx, qword [rbp - 0x59]
test rbx, rbx
je 0x180171703
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180171703
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r14d
cmp r14d, 1
jne 0x180171703
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [0x1802abc2c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [rbp - 9]
call fcn.180173390
mov r8, qword [rbp - 0x19]
cmp r8, 8
jb 0x180171733
inc r8
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x31]
call fcn.18005cac0
mov rdi, qword [rbp - 0x79]
mov rax, qword [rsi + 8]
sub rax, qword [rsi]
sar rax, 4
test rax, rax
setne r12b
test rdi, rdi
je 0x180171793
mov rbx, rdi
cmp rdi, qword [rbp - 0x71]
je 0x180171769
mov rcx, rbx
call fcn.180173390
add rbx, 0x18
cmp rbx, qword [rbp - 0x71]
jne 0x180171757
mov rcx, qword [rbp - 0x69]
sub rcx, rdi
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, rdi
call fcn.1800d30a0
mov eax, r12d
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1802037a0
mov rbx, qword [rsp + 0x118]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret