Function at 0x14011a440
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
mov rbx, r9
mov qword [rsp + 0x68], r8
mov r11, rdx
mov rdi, rcx
mov rax, qword [0x14022d028]
xor rax, rsp
mov qword [rsp + 0x130], rax
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov r12, qword [rdi + 0x10]
mov r15, qword [rdi + 0x18]
cmp r12, r15
je 0x14011b44e
mov rbp, qword [r12]
mov rcx, qword [r12 + 8]
mov eax, dword [r12 + 0x14]
mov dword [rsp + 0xa4], 0
lea rsi, [rdi + 0x10]
mov r14, qword [r11 + 0x110]
cmp r14, 0xffffffffffffffff
mov qword [rsp + 0x30], r11
mov dword [rsp + 0xac], eax
mov qword [rsp + 0xb8], rcx
je 0x14011b488
mov rax, r15
sub rax, r12
sar rax, 5
cmp rax, r14
jbe 0x14011bbd9
mov rcx, r14
shl rcx, 5
mov edx, dword [r12 + rcx + 0x10]
mov r13d, edx
and edx, 0xffffff00
mov dword [rsp + 0xa8], edx
lea rdx, [rbx + 0x18]
mov qword [rsp + 0x48], rdx
lea rdx, [rdi + 8]
mov qword [rsp + 0x98], rdx
cmp byte [rbx + 0x18], 0
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x80], rsi
je 0x14011acb7
movabs rcx, 0xfffffffc00000000
mov rdx, qword [rbx]
mov qword [rsp + 0x28], rdx
mov r9, qword [rbx + 8]
mov edx, dword [rbx + 0x10]
mov dword [rsp + 0x74], edx
mov r10d, dword [rbx + 0x14]
mov rdx, r11
and rdx, rcx
mov rcx, r12
mov qword [rsp + 0x90], r14
cmp rdx, qword [0x14022f688]
mov dword [rsp + 0x40], r10d
mov qword [rsp + 0x38], r9
jne 0x14011a59d
mov rcx, r11
call fcn.1400c5cb0
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
mov r14, qword [r11 + 0x110]
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
sub rax, rcx
sar rax, 5
cmp rax, r14
jbe 0x14011bbb6
mov rdx, r14
shl rdx, 5
mov rax, qword [rcx + rdx + 0x18]
mov qword [rax + 0x110], 0xffffffffffffffff
mov rbx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rsi, rax
sub rsi, rbx
sar rsi, 5
cmp rsi, r14
jbe 0x14011bbb6
movabs r8, 0x8000000000000001
lea rcx, [rbx + rdx]
cmp dword [rbx + rdx + 0x14], 0
jne 0x14011b904
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
add r8, rcx
cmp r8, 2
jb 0x14011bd44
lea r8, [rdx + rcx]
sar r8, 0x3f
btc r8, 0x3f
add rdx, rcx
cmovo rdx, r8
mov rcx, rdx
mov rdx, qword [rsp + 0x28]
test r10d, r10d
jne 0x14011a656
movabs rdx, 0x8000000000000001
add rdx, r9
cmp rdx, 2
jb 0x14011bcd8
mov rdx, qword [rsp + 0x28]
lea r8, [rdx + r9]
sar r8, 0x3f
btc r8, 0x3f
add rdx, r9
cmovo rdx, r8
cmp rdx, rcx
mov qword [rsp + 0x60], rbp
mov dword [rsp + 0x8c], r13d
jle 0x14011a9f1
mov qword [rsp + 0x58], r15
lea rdx, [r14*2 + 1]
cmp rdx, rsi
jae 0x14011bb98
lea r8, [r14 + r14]
mov r15, qword [rsp + 0x28]
lea rcx, [r15 + r9]
sar rcx, 0x3f
btc rcx, 0x3f
mov rbp, r15
add rbp, r9
cmovo rbp, rcx
movabs rcx, 0x8000000000000001
add rcx, r9
add rcx, 0xfffffffffffffffe
cmp rcx, 0xfffffffffffffffe
setb cl
test r10d, r10d
setne r9b
cmovne rbp, r15
or r9b, cl
mov byte [rsp + 0x98], r9b
mov r13, qword [rsp + 0x48]
mov qword [rsp + 0x78], r12
add r8, 2
mov rcx, rax
sub rcx, rbx
sar rcx, 5
cmp r8, rsi
jae 0x14011a964
cmp rcx, r8
jbe 0x14011bbb6
cmp rcx, rdx
movabs r15, 0x8000000000000001
jbe 0x14011bbb6
mov r10, r8
shl r10, 5
lea r9, [rbx + r10]
cmp dword [rbx + r10 + 0x14], 0
jne 0x14011b90c
mov r10, qword [r9]
mov r9, qword [r9 + 8]
lea r11, [r9 + r15]
cmp r11, 2
jb 0x14011bc6e
lea r11, [r10 + r9]
sar r11, 0x3f
btc r11, 0x3f
add r10, r9
cmovo r10, r11
mov r9, r10
mov r11, qword [rsp + 0x30]
mov r10, rdx
shl r10, 5
add r10, rbx
cmp dword [r10 + 0x14], 0
jne 0x14011b914
mov r11, qword [r10]
mov r10, qword [r10 + 8]
add r15, r10
cmp r15, 2
jb 0x14011bca6
lea r15, [r11 + r10]
sar r15, 0x3f
btc r15, 0x3f
add r11, r10
cmovo r11, r15
mov r10, r11
mov r11, qword [rsp + 0x30]
cmp r10, r9
jg 0x14011a7a2
mov r8, rdx
mov r15, r8
mov r10d, dword [rsp + 0x40]
cmp rcx, r15
jbe 0x14011bbb6
mov r12, r15
shl r12, 5
lea rdx, [rbx + r12]
cmp dword [rbx + r12 + 0x14], 0
jne 0x14011a96c
mov r9, qword [rdx]
mov r8, qword [rdx + 8]
movabs r10, 0x8000000000000001
add r10, r8
cmp r10, 2
jb 0x14011bd08
lea r10, [r9 + r8]
sar r10, 0x3f
btc r10, 0x3f
add r9, r8
cmovo r9, r10
mov r8, r9
mov r10d, dword [rsp + 0x40]
mov r9, rbp
cmp byte [rsp + 0x98], 0
je 0x14011bdfc
cmp r9, r8
jg 0x14011b81c
mov r15, r14
mov r12, qword [rsp + 0x78]
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], r9
mov edx, dword [rsp + 0x74]
mov dword [rsp + 0x110], edx
mov dword [rsp + 0x114], r10d
mov qword [rsp + 0x118], r11
cmp rcx, r15
je 0x14011a974
mov rbp, qword [rsp + 0x60]
mov r14, qword [rsp + 0x90]
mov r13d, dword [rsp + 0x8c]
jbe 0x14011bbb6
mov rax, r15
shl rax, 5
lea rsi, [rbx + rax]
add rsi, 0x18
mov rax, qword [rsp + 0x28]
mov qword [rsi - 0x18], rax
mov qword [rsi - 0x10], r9
mov dword [rsi - 8], edx
mov dword [rsi - 4], r10d
mov rcx, qword [rsi]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14022f688]
jne 0x14011a8cb
call fcn.1400c5e10
mov r11, qword [rsp + 0x118]
mov qword [rsi], r11
mov qword [rsp + 0x118], 0
mov rax, qword [rdi + 0x18]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x80]
mov r11d, r13d
mov rcx, qword [rsi]
sub rax, rcx
sar rax, 5
cmp rax, r15
mov r13, qword [rsp + 0x48]
jbe 0x14011bbb6
mov rax, r15
shl rax, 5
mov rax, qword [rcx + rax + 0x18]
mov qword [rax + 0x110], r15
mov rax, qword [rdi + 0x18]
sub rax, qword [rdi + 0x10]
sar rax, 5
cmp rax, r15
movabs rsi, 0xaaaaaaaaaaaaaaaa
jbe 0x14011bbb6
mov rcx, qword [rsp + 0x118]
movabs rax, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x14022f688]
mov r15, qword [rsp + 0x58]
jne 0x14011ad49
jmp 0x14011bc1b
mov r15, rdx
jmp 0x14011a7aa
mov r8, qword [rdx]
jmp 0x14011a804
cmp rax, qword [rdi + 0x20]
mov rbp, qword [rsp + 0x60]
mov r14, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x80]
mov r13d, dword [rsp + 0x8c]
jae 0x14011b93f
test rax, rax
mov rbx, qword [rsp + 0x50]
je 0x14011bbfe
mov rcx, qword [rsp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], r9
mov dword [rax + 0x10], edx
mov dword [rax + 0x14], r10d
mov qword [rax + 0x18], r11
mov qword [rsp + 0x118], 0
add rax, 0x20
mov qword [rdi + 0x18], rax
jmp 0x14011a8eb
xor ebp, ebp
mov ecx, dword [rsp + 0x74]
mov r13, qword [rsp + 0x48]
jmp 0x14011ab19
mov rbp, r14
jmp 0x14011ab0d
test r14, r14
je 0x14011a9d9
mov qword [rsp + 0x58], r15
mov r15, r12
movabs rax, 0x8000000000000001
add rax, r9
add rax, 0xfffffffffffffffe
mov qword [rsp + 0xb0], rax
mov r13, qword [rsp + 0x48]
lea r12, [r14 - 1]
mov rbp, r12
shr rbp, 1
mov rbx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rsi, rax
sub rsi, rbx
sar rsi, 5
cmp rsi, rbp
jbe 0x14011bbb6
mov r8, qword [rsp + 0x28]
lea rdx, [r8 + r9]
sar rdx, 0x3f
btc rdx, 0x3f
mov rcx, r8
add rcx, r9
cmovo rcx, rdx
test r10d, r10d
cmovne rcx, r8
jne 0x14011aa75
cmp qword [rsp + 0xb0], 0xfffffffffffffffe
jae 0x14011bedc
mov rdx, rbp
shl rdx, 5
add rdx, rbx
cmp dword [rdx + 0x14], 0
jne 0x14011b91c
mov r8, qword [rdx]
mov rdx, qword [rdx + 8]
movabs r9, 0x8000000000000001
add r9, rdx
cmp r9, 2
jb 0x14011be6f
lea r9, [r8 + rdx]
sar r9, 0x3f
btc r9, 0x3f
add r8, rdx
cmovo r8, r9
mov rdx, r8
mov r9, qword [rsp + 0x38]
cmp rdx, rcx
jle 0x14011a9e9
mov rcx, qword [rsp + 0x98]
mov rdx, rbp
mov r8, r14
call fcn.140014d50
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
mov r14, rbp
cmp r12, 1
ja 0x14011aa1c
mov rbx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rsi, rax
sub rsi, rbx
sar rsi, 5
mov r12, r15
mov r15, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x74]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], r9
mov dword [rsp + 0x110], ecx
mov dword [rsp + 0x114], r10d
mov qword [rsp + 0x118], r11
cmp rsi, rbp
mov r14, qword [rsp + 0x90]
je 0x14011ac3e
jbe 0x14011bbb6
mov rax, rbp
shl rax, 5
lea rsi, [rbx + rax]
add rsi, 0x18
mov rax, qword [rsp + 0x28]
mov qword [rsi - 0x18], rax
mov qword [rsi - 0x10], r9
mov dword [rsi - 8], ecx
mov dword [rsi - 4], r10d
mov rcx, qword [rsi]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14022f688]
jne 0x14011aba5
call fcn.1400c5e10
mov r11, qword [rsp + 0x30]
mov qword [rsi], r11
mov qword [rsp + 0x118], 0
mov rax, qword [rdi + 0x18]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x80]
mov rcx, qword [rsi]
sub rax, rcx
sar rax, 5
cmp rax, rbp
jbe 0x14011bbb6
mov rax, rbp
shl rax, 5
mov rax, qword [rcx + rax + 0x18]
mov qword [rax + 0x110], rbp
mov rax, qword [rdi + 0x18]
sub rax, qword [rdi + 0x10]
sar rax, 5
cmp rax, rbp
movabs rsi, 0xaaaaaaaaaaaaaaaa
jbe 0x14011bbb6
mov rcx, qword [rsp + 0x118]
movabs rax, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x14022f688]
mov rbp, qword [rsp + 0x60]
mov r11d, dword [rsp + 0x8c]
jne 0x14011ad49
jmp 0x14011bc1b
cmp rax, qword [rdi + 0x20]
mov rsi, qword [rsp + 0x80]
jae 0x14011b959
test rax, rax
mov rbx, qword [rsp + 0x50]
je 0x14011bbfe
mov rdx, qword [rsp + 0x28]
mov qword [rax], rdx
mov qword [rax + 8], r9
mov dword [rax + 0x10], ecx
mov dword [rax + 0x14], r10d
mov qword [rax + 0x18], r11
mov qword [rsp + 0x118], 0
add rax, 0x20
mov qword [rdi + 0x18], rax
jmp 0x14011abc5
mov byte [rsp + 0xc0], 0
xor eax, eax
jmp 0x14011adf7
lea r8, [rsi - 0xaa]
mov eax, 0xaaaaaaaa
mov r10d, 0xaaaaaaaa
mov r9, rsi
jmp 0x14011ad67
movabs rsi, 0xfffffffc00000000
mov rax, qword [r12 + rcx + 0x18]
mov qword [rax + 0x110], 0xffffffffffffffff
mov rax, qword [rdi + 0x10]
mov rbx, qword [rdi + 0x18]
mov rcx, rbx
sub rcx, rax
sar rcx, 5
dec rcx
cmp rcx, r14
jne 0x14011b005
mov r11d, r13d
cmp rax, rbx
je 0x14011bc30
mov r13, r14
mov r14, rbx
add r14, 0xffffffffffffffe0
je 0x14011bc43
mov rcx, qword [rbx - 8]
and rsi, rcx
cmp rsi, qword [0x14022f688]
jne 0x14011ad26
mov esi, r11d
call fcn.1400c5e10
mov r11d, esi
mov qword [rbx - 8], 0
mov qword [rdi + 0x18], r14
mov rbx, qword [rsp + 0x50]
mov r14, r13
mov r13, qword [rsp + 0x48]
movabs rsi, 0xaaaaaaaaaaaaaaaa
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
cmp rcx, rdx
je 0x14011ac9d
mov r8, qword [rcx]
mov r9, qword [rcx + 8]
mov eax, dword [rcx + 0x14]
xor r10d, r10d
cmp r14, 0xffffffffffffffff
je 0x14011ad83
movzx r11d, r11b
or r11d, dword [rsp + 0xa8]
cmp r11d, 1
je 0x14011bbe6
cmp byte [r13], 0
je 0x14011ad94
cmp dword [rbx + 0x10], 1
je 0x14011bbde
cmp r12, r15
je 0x14011af1a
cmp rcx, rdx
je 0x14011af1a
cmp r10d, dword [rsp + 0xa4]
jne 0x14011adcc
cmp r8, rbp
jne 0x14011adcc
cmp r9, qword [rsp + 0xb8]
jne 0x14011adcc
cmp eax, dword [rsp + 0xac]
je 0x14011aef5
cmp rcx, rdx
je 0x14011ac8e
movups xmm0, xmmword [rcx]
mov eax, dword [rcx + 0x14]
movups xmmword [rsp + 0xc0], xmm0
mov dword [rsp + 0xd0], 0
mov dword [rsp + 0xd4], eax
mov al, 1
mov byte [rsp + 0xd8], al
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
lea r8, [0x1401b2650]
cmp rax, r8
jne 0x14011b924
mov r15, rsi
lea r9, [rsi - 0xaa]
mov rbx, qword [rdi + 0x38]
mov r8d, 0xaaaaaaaa
cmp rcx, rdx
je 0x14011af31
mov r13, r15
mov r14, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xc8]
mov ebp, dword [rsp + 0xd0]
mov r12d, dword [rsp + 0xd4]
mov rsi, r14
cmp r12d, 1
je 0x14011bd86
mov rdx, qword [rsp + 0x68]
cmp byte [rdx + 8], 0
je 0x14011af4e
mov rax, qword [rdx]
cmp rax, rsi
jge 0x14011afe7
cmp qword [rbx + 0x240], 0
jne 0x14011bc56
mov al, 1
test r14, r14
je 0x14011afe7
mov rdi, qword [rbx + 0x30]
mov qword [rsp + 0xe0], r14
mov qword [rsp + 0xe8], r15
mov dword [rsp + 0xf0], ebp
mov dword [rsp + 0xf4], r12d
mov byte [rsp + 0xf8], al
mov dword [rsp + 0xf9], r8d
mov dword [rsp + 0xfc], r8d
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
lea rcx, [0x14013d740]
cmp rax, rcx
jne 0x14011bbee
mov eax, dword [rdi + 0x190]
cmp eax, 4
je 0x14011ba7d
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.140146540
nop
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rcx, rdx
setne al
cmp r12, r15
setne r8b
cmp r8b, al
je 0x14011aef5
jmp 0x14011adcc
xor eax, eax
mov r14, r9
mov r13, r15
mov ebp, 0xaaaaaaaa
mov r12d, 0xaaaaaaaa
mov rdx, qword [rsp + 0x68]
jmp 0x14011ae95
mov qword [rsp + 0x28], r9
mov rax, qword [fcn.1400fc780]
lea rcx, [0x140142f90]
cmp rax, rcx
jne 0x14011bba3
lea rdi, [rsp + 0x100]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14011beb5
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023f400]
mov qword [rsp + 0x100], rax
mov rdx, qword [rsp + 0x68]
mov r8d, 0xaaaaaaaa
mov r9, qword [rsp + 0x28]
cmp byte [rdx + 8], 0
jne 0x14011bc96
test rdx, rdx
je 0x14011bbfe
mov rax, qword [rsp + 0x100]
mov qword [rdx], rax
mov byte [rdx + 8], 1
jmp 0x14011ae73
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [0x14021f820]
jmp 0x14011aef5
mov ebx, r11d
jmp 0x14011b176
cmp rbx, rax
je 0x14011bbb6
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x78], r12
shl rcx, 5
mov rax, qword [rax + rcx + 0x18]
mov qword [rax + 0x110], 0xffffffffffffffff
mov rax, qword [rdi + 0x18]
cmp rax, qword [rdi + 0x10]
je 0x14011bbb6
mov r11d, r13d
mov r13, qword [rax - 0x20]
mov rcx, qword [rax - 0x18]
mov qword [rsp + 0x30], rcx
mov ecx, dword [rax - 0x10]
mov dword [rsp + 0x38], ecx
mov ecx, dword [rax - 0xc]
mov dword [rsp + 0x28], ecx
mov rcx, qword [rax - 8]
mov qword [rsp + 0x40], rcx
mov qword [rax - 8], 0
mov r15, qword [rdi + 0x18]
sub r15, qword [rdi + 0x10]
sar r15, 5
dec r15
lea rax, [r14*2 + 1]
mov r12, r14
cmp rax, r15
jae 0x14011b1a4
lea rcx, [r14 + r14]
mov r8, r14
add rcx, 2
cmp rcx, r15
jae 0x14011affd
mov r9, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
sub rdx, r9
sar rdx, 5
cmp rdx, rcx
jbe 0x14011bbb6
cmp rdx, rax
jbe 0x14011bbb6
mov r10, rcx
shl r10, 5
lea rdx, [r9 + r10]
cmp dword [r9 + r10 + 0x14], 0
jne 0x14011b446
mov ebp, r11d
mov r10, qword [rdx]
mov rdx, qword [rdx + 8]
movabs r11, 0x8000000000000001
add r11, rdx
cmp r11, 2
jb 0x14011bf0c
lea r11, [r10 + rdx]
sar r11, 0x3f
btc r11, 0x3f
add r10, rdx
cmovo r10, r11
mov rdx, r10
mov r11d, ebp
mov r10, rax
shl r10, 5
add r9, r10
cmp dword [r9 + 0x14], 0
jne 0x14011b43e
mov ebp, r11d
mov r10, qword [r9]
mov r9, qword [r9 + 8]
movabs r11, 0x8000000000000001
add r11, r9
cmp r11, 2
jb 0x14011bf32
lea r11, [r10 + r9]
sar r11, 0x3f
btc r11, 0x3f
add r10, r9
cmovo r10, r11
mov r9, r10
mov r11d, ebp
cmp r9, rdx
jg 0x14011b170
mov rcx, rax
mov ebx, r11d
mov rax, rcx
mov r12, rax
mov rcx, qword [rsp + 0x98]
mov rdx, rax
call fcn.140014d50
lea rcx, [r12 + r12]
lea rax, [r12*2 + 1]
mov r8, r12
cmp rax, r15
mov r11d, ebx
jb 0x14011b098
test r12, r12
je 0x14011b29e
mov r8, qword [rsp + 0x30]
movabs rax, 0x8000000000000001
lea r9, [rax + r8]
add r9, 0xfffffffffffffffe
mov rbp, r14
lea r14, [r12 - 1]
mov r15, r14
shr r15, 1
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x14011bbb6
mov ebx, r11d
lea rdx, [r8 + r13]
sar rdx, 0x3f
btc rdx, 0x3f
mov rax, r13
add rax, r8
cmovo rax, rdx
cmp dword [rsp + 0x28], 0
cmovne rax, r13
jne 0x14011b219
cmp r9, 0xfffffffffffffffe
jae 0x14011bf98
mov rdx, r15
shl rdx, 5
add rcx, rdx
cmp dword [rcx + 0x14], 0
jne 0x14011b436
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
movabs r8, 0x8000000000000001
add r8, rcx
cmp r8, 2
jb 0x14011bf58
lea r8, [rdx + rcx]
sar r8, 0x3f
btc r8, 0x3f
add rdx, rcx
cmovo rdx, r8
mov rcx, rdx
mov r8, qword [rsp + 0x30]
cmp rcx, rax
jle 0x14011b2a8
mov rcx, qword [rsp + 0x98]
mov rdx, r15
mov r8, r12
mov r12, r9
call fcn.140014d50
mov r9, r12
mov r8, qword [rsp + 0x30]
mov r12, r15
cmp r14, 1
mov r14, rbp
mov r11d, ebx
jbe 0x14011b2b1
jmp 0x14011b1c4
xor r15d, r15d
mov r8, qword [rsp + 0x30]
jmp 0x14011b2b1
mov r15, r12
mov r14, rbp
mov r11d, ebx
mov qword [rsp + 0x100], r13
mov qword [rsp + 0x108], r8
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x110], eax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x114], eax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x118], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rdx, rax
sub rdx, rcx
sar rdx, 5
cmp rdx, r15
je 0x14011b3e2
mov r12, qword [rsp + 0x78]
jbe 0x14011bbb6
mov rbx, r14
mov rax, r15
shl rax, 5
lea r14, [rcx + rax]
add r14, 0x18
mov qword [r14 - 0x18], r13
mov qword [r14 - 0x10], r8
mov eax, dword [rsp + 0x38]
mov dword [r14 - 8], eax
mov eax, dword [rsp + 0x28]
mov dword [r14 - 4], eax
mov rcx, qword [r14]
mov rax, rcx
and rax, rsi
cmp rax, qword [0x14022f688]
jne 0x14011b351
mov ebp, r11d
call fcn.1400c5e10
mov r11d, ebp
mov rax, qword [rsp + 0x40]
mov qword [r14], rax
mov qword [rsp + 0x118], 0
mov rax, qword [rdi + 0x18]
mov r13, qword [rsp + 0x60]
mov r14, rbx
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x14011bbb6
mov rax, r15
shl rax, 5
mov rax, qword [rcx + rax + 0x18]
mov qword [rax + 0x110], r15
mov rax, qword [rdi + 0x10]
mov rbx, qword [rdi + 0x18]
mov rcx, rbx
sub rcx, rax
sar rcx, 5
cmp rcx, r15
jbe 0x14011bbb6
mov rcx, qword [rsp + 0x118]
mov rdx, rcx
and rdx, rsi
cmp rdx, qword [0x14022f688]
mov r15, qword [rsp + 0x58]
je 0x14011bf80
mov rbp, r13
jmp 0x14011acf2
cmp rax, qword [rdi + 0x20]
mov r12, qword [rsp + 0x78]
jae 0x14011b973
test rax, rax
je 0x14011bbfe
mov qword [rax], r13
mov qword [rax + 8], r8
mov ecx, dword [rsp + 0x38]
mov dword [rax + 0x10], ecx
mov ecx, dword [rsp + 0x28]
mov dword [rax + 0x14], ecx
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x18], rcx
mov qword [rsp + 0x118], 0
add rax, 0x20
mov qword [rdi + 0x18], rax
mov r13, qword [rsp + 0x60]
jmp 0x14011b371
mov rcx, qword [rcx]
jmp 0x14011b267
mov r9, qword [r9]
jmp 0x14011b168
mov rdx, qword [rdx]
jmp 0x14011b118
lea rbp, [rcx - 0xaa]
mov dword [rsp + 0xa4], 0xaaaaaaaa
mov eax, 0xaaaaaaaa
jmp 0x14011a4a7
mov r8, qword [r8]
jmp 0x14011b5d3
xor r12d, r12d
mov r8, rdx
mov rax, rcx
jmp 0x14011b61c
xor r11d, r11d
jmp 0x14011ad3f
lea r13, [rbx + 0x18]
mov dword [rsp + 0xa8], 0xaaaaaa00
cmp byte [rbx + 0x18], 0
je 0x14011b480
mov qword [rsp + 0x60], rbp
movabs rcx, 0xfffffffc00000000
mov rax, qword [rbx]
mov qword [rsp + 0x28], rax
mov rdx, r15
mov r15, qword [rbx + 8]
mov ebp, dword [rbx + 0x10]
mov qword [rsp + 0x50], rbx
mov ebx, dword [rbx + 0x14]
mov rax, r11
and rax, rcx
mov qword [rsp + 0x78], r12
mov rcx, r12
mov qword [rsp + 0x58], rdx
cmp rax, qword [0x14022f688]
jne 0x14011b4f7
mov rcx, r11
call fcn.1400c5cb0
mov r11, qword [rsp + 0x30]
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
mov r12, rdx
sub r12, rcx
je 0x14011b472
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x90], r14
lea rax, [rdi + 8]
mov qword [rsp + 0x40], rax
sar r12, 5
movabs rax, 0x8000000000000001
add rax, r15
add rax, 0xfffffffffffffffe
mov qword [rsp + 0x38], rax
lea r14, [r12 - 1]
mov r13, r14
shr r13, 1
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rdx, rax
sub rdx, rcx
sar rdx, 5
cmp rdx, r13
jbe 0x14011bbb6
mov r9, qword [rsp + 0x28]
lea r8, [r9 + r15]
sar r8, 0x3f
btc r8, 0x3f
mov rdx, r9
add rdx, r15
cmovo rdx, r8
test ebx, ebx
cmovne rdx, r9
jne 0x14011b589
cmp qword [rsp + 0x38], 0xfffffffffffffffe
jae 0x14011be3f
mov r8, r13
shl r8, 5
add r8, rcx
cmp dword [r8 + 0x14], 0
jne 0x14011b46a
mov r9, qword [r8]
mov r8, qword [r8 + 8]
movabs r10, 0x8000000000000001
add r10, r8
cmp r10, 2
jb 0x14011bdd9
lea r10, [r9 + r8]
sar r10, 0x3f
btc r10, 0x3f
add r9, r8
cmovo r9, r10
mov r8, r9
cmp r8, rdx
jle 0x14011b757
mov rcx, qword [rsp + 0x40]
mov rdx, r13
mov r8, r12
call fcn.140014d50
mov r12, r13
cmp r14, 1
mov r11, qword [rsp + 0x30]
ja 0x14011b533
mov rdx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov rcx, rdx
mov rax, r8
mov r12, r13
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x48]
sub r8, rdx
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], r15
mov dword [rsp + 0x110], ebp
mov dword [rsp + 0x114], ebx
mov qword [rsp + 0x118], r11
sar r8, 5
cmp r8, r12
je 0x14011b774
jbe 0x14011bbb6
mov edx, ebp
mov rbp, rsi
mov rsi, r13
mov r13, r14
mov rax, r12
shl rax, 5
lea r14, [rcx + rax]
add r14, 0x18
mov rax, qword [rsp + 0x28]
mov qword [r14 - 0x18], rax
mov qword [r14 - 0x10], r15
mov dword [r14 - 8], edx
mov dword [r14 - 4], ebx
mov rcx, qword [r14]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14022f688]
jne 0x14011b6b5
call fcn.1400c5e10
mov r11, qword [rsp + 0x118]
mov qword [r14], r11
mov qword [rsp + 0x118], 0
mov rax, qword [rdi + 0x18]
mov r15, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov r14, r13
mov r13, rsi
mov rsi, rbp
mov rcx, qword [rsi]
sub rax, rcx
sar rax, 5
cmp rax, r12
jbe 0x14011bbb6
mov rax, r12
shl rax, 5
mov rax, qword [rcx + rax + 0x18]
mov qword [rax + 0x110], r12
mov rax, qword [rdi + 0x18]
sub rax, qword [rdi + 0x10]
sar rax, 5
cmp rax, r12
movabs rsi, 0xaaaaaaaaaaaaaaaa
jbe 0x14011bbb6
mov rbp, rdx
mov rcx, qword [rsp + 0x118]
movabs rax, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x14022f688]
mov r12, qword [rsp + 0x78]
je 0x14011bc11
xor r11d, r11d
jmp 0x14011ad49
mov rdx, rcx
mov r8, rax
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x48]
mov r11, qword [rsp + 0x30]
jmp 0x14011b61c
cmp rax, qword [rdi + 0x20]
jae 0x14011b7c1
test rax, rax
je 0x14011bbfe
mov rcx, qword [rsp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], r15
mov dword [rax + 0x10], ebp
mov dword [rax + 0x14], ebx
mov qword [rax + 0x18], r11
mov qword [rsp + 0x118], 0
add rax, 0x20
mov qword [rdi + 0x18], rax
mov r15, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
jmp 0x14011b6e0
lea rdx, [rsp + 0x100]
mov rcx, rsi
call fcn.140014eb0
jmp 0x14011b7a9
cmp r14, r15
jbe 0x14011bbb6
cmp rax, qword [rdi + 0x20]
jae 0x14011b993
test rax, rax
je 0x14011bbfe
mov rcx, qword [rdx + 0x10]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rdx]
movups xmmword [rax], xmm0
mov rcx, qword [rbx + r12 + 0x18]
mov qword [rax + 0x18], rcx
mov qword [rbx + r12 + 0x18], 0
add rax, 0x20
mov qword [rdi + 0x18], rax
jmp 0x14011b89c
cmp rcx, r14
mov r9, qword [rsp + 0x38]
je 0x14011b7d3
jbe 0x14011bbb6
mov rax, r14
shl rax, 5
mov rcx, qword [rdx + 0x10]
mov qword [rbx + rax + 0x10], rcx
movups xmm0, xmmword [rdx]
movups xmmword [rbx + rax], xmm0
cmp r14, r15
je 0x14011b89c
lea r13, [rbx + rax]
add r13, 0x18
mov rcx, qword [r13]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14022f688]
jne 0x14011b881
call fcn.1400c5e10
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
lea rax, [rbx + r12]
add rax, 0x18
mov rcx, qword [rax]
mov qword [r13], rcx
mov qword [rax], 0
mov r13, qword [rsp + 0x48]
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x14011bbb6
mov rcx, r14
shl rcx, 5
mov rax, qword [rax + rcx + 0x18]
mov qword [rax + 0x110], r14
mov rbx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rcx, rax
sub rcx, rbx
sar rcx, 5
cmp rcx, r14
mov r12, qword [rsp + 0x78]
jbe 0x14011bbb6
lea r8, [r15 + r15]
lea rdx, [r15*2 + 1]
mov r14, r15
cmp rdx, rsi
jae 0x14011a82b
jmp 0x14011a6da
mov rcx, qword [rcx]
jmp 0x14011a61c
mov r9, qword [r9]
jmp 0x14011a755
mov r10, qword [r10]
jmp 0x14011a79a
mov rdx, qword [rdx]
jmp 0x14011aac3
lea r8, [rsp + 0xc0]
mov rcx, rdi
mov rdx, qword [rsp + 0x68]
call qword [0x14021f820]
jmp 0x14011aef5
lea rdx, [rsp + 0x100]
mov rcx, rsi
call fcn.140014eb0
mov rbx, qword [rsp + 0x50]
jmp 0x14011a9d0
lea rdx, [rsp + 0x100]
mov rcx, rsi
call fcn.140014eb0
mov rbx, qword [rsp + 0x50]
jmp 0x14011ac85
lea rdx, [rsp + 0x100]
mov rcx, qword [rsp + 0x80]
mov ebx, r11d
call fcn.140014eb0
mov r11d, ebx
jmp 0x14011b428
mov rcx, qword [rsp + 0x80]
call fcn.140014eb0
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
jmp 0x14011b813
mov r9, qword [rsp + 0xe0]
cmp ebp, 1
je 0x14011c020
mov rax, r9
jmp 0x14011ba0e
mov rcx, qword [rdi + 0x210]
mov ebp, dword [rsp + 0xf4]
test ebp, ebp
jne 0x14011b9b4
mov r9, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe8]
lea rdx, [rax + r14]
cmp rdx, 2
jb 0x14011c003
lea rdx, [r9 + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rax, r9
cmovo rax, rdx
mov r8, r9
mov qword [rsp + 0x20], rax
lea rbx, [rsp + 0x120]
mov rdx, rbx
call fcn.140131040
mov r15, qword [rbx]
add r14, 0xfffffffffffffffe
cmp r15, r14
je 0x14011bff9
lea rbx, [rsp + 0x100]
mov r14, qword [rsp + 0x68]
mov rcx, r14
mov rdx, rbx
call fcn.140131110
mov rdx, r14
movabs rax, 0x141dd76000
add rax, qword [rbx]
movabs r14, 0x7fffffffffffffff
cmovno r14, rax
cmp r14, r15
cmovge r14, r15
mov qword [rsp + 0x120], r14
jmp 0x14011bab3
mov qword [rsp + 0x120], r13
mov sil, byte [rsp + 0xf8]
movabs r14, 0x8000000000000001
test sil, sil
jne 0x14011b9ca
add r14, 0xfffffffffffffffe
mov qword [rsp + 0x120], r14
mov ebp, dword [rsp + 0xf4]
xor eax, eax
mov ecx, 0
cmp ebp, 2
je 0x14011bac7
mov rcx, qword [rsp + 0xe8]
test sil, sil
mov rdi, qword [rdi + 0x210]
cmove rcx, rax
mov qword [rsp + 0x100], r14
mov qword [rsp + 0x108], rcx
cmp byte [rdx + 8], 0
je 0x14011bb13
mov rax, qword [rdx]
lea rdx, [rsp + 0x100]
mov qword [rdx + 0x10], rax
mov byte [rdx + 0x18], 0
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [0x14021f820]
jmp 0x14011aef5
mov rax, qword [fcn.1400fc780]
lea rcx, [0x140142f90]
cmp rax, rcx
jne 0x14011bbc9
lea rbx, [rsp + 0x128]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14011bfd2
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023f400]
mov qword [rsp + 0x128], rax
mov rcx, qword [rsp + 0x68]
cmp byte [rcx + 8], 0
jne 0x14011bfc2
test rcx, rcx
je 0x14011bbfe
mov rax, qword [rsp + 0x128]
mov qword [rcx], rax
mov byte [rcx + 8], 1
jmp 0x14011baee
mov rcx, rsi
mov r15, r14
jmp 0x14011a82b
lea rcx, [rsp + 0x100]
call qword [0x14021f820]
jmp 0x14011afb0
lea rcx, [0x1401fff03]
lea rdx, str....._third_partylibc_srcinclude_vector:1393:_assertion___n___size___failed:_vector___index_out_of_bounds_n
call fcn.140180910
lea rcx, [rsp + 0x128]
call qword [0x14021f820]
jmp 0x14011bb70
call fcn.1401b2750
inc dword [rdi + 0x28]
jmp 0x14011ad94
dec dword [rdi + 0x28]
jmp 0x14011ad83
lea r8, [rsp + 0xe0]
mov rcx, rdi
jmp 0x14011b934
lea rcx, [0x1401fff03]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
call fcn.140180910
call fcn.1400c5e10
jmp 0x14011b74f
mov r13d, r11d
call fcn.1400c5e10
mov r11d, r13d
mov r13, qword [rsp + 0x48]
jmp 0x14011ad49
lea rcx, [0x1401fff03]
lea rdx, str....._third_partylibc_srcinclude_vector:1521:_assertion__empty___failed:_vector::pop_back_called_on_an_empty_vector_n
call fcn.140180910
lea rcx, [0x1401fff03]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
call fcn.140180910
xor eax, eax
mov r14, r9
mov r15, r13
mov ebp, 0xaaaaaaaa
mov r12d, 0xaaaaaaaa
jmp 0x14011ae95
mov r11, r13
cmp r10, r9
jne 0x14011bc7e
mov r13, r11
jmp 0x14011a750
add r10, r15
cmp r10, 1
mov r13, r11
mov r11, qword [rsp + 0x30]
ja 0x14011a755
int3
mov rax, qword [rsp + 0x100]
mov qword [rdx], rax
jmp 0x14011ae73
mov r15, r13
cmp r11, r10
jne 0x14011bcb6
mov r13, r15
jmp 0x14011a795
movabs r13, 0x8000000000000001
add r11, r13
cmp r11, 1
mov r13, r15
mov r11, qword [rsp + 0x30]
ja 0x14011a79a
int3
mov rdx, r9
cmp qword [rsp + 0x28], r9
je 0x14011a656
mov rdx, qword [rsp + 0x28]
movabs r8, 0x8000000000000001
add r8, rdx
mov rdx, r9
cmp r8, 1
ja 0x14011a656
int3
mov r10, r13
cmp r9, r8
jne 0x14011bd1d
mov r13, r10
mov r11, qword [rsp + 0x30]
jmp 0x14011a7ff
movabs r11, 0x8000000000000001
add r9, r11
cmp r9, 1
mov r13, r10
mov r11, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x40]
ja 0x14011a804
int3
cmp rdx, rcx
jne 0x14011bd5d
mov r11, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
jmp 0x14011a61c
movabs r10, 0x8000000000000001
add rdx, r10
cmp rdx, 1
mov r11, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
ja 0x14011a61c
int3
movabs rsi, 0x8000000000000001
lea rax, [r15 + rsi]
cmp rax, 2
jae 0x14011bdb5
cmp r14, r15
je 0x14011c073
mov rax, r15
shr rax, 0x3f
not rax
add rsi, rax
jmp 0x14011ae61
xor eax, eax
cmp r14, r15
setns al
movabs rcx, 0x7fffffffffffffff
add rcx, rax
mov rsi, r14
sub rsi, r15
cmovo rsi, rcx
jmp 0x14011ae61
cmp r9, r8
je 0x14011b5d3
movabs r10, 0x8000000000000001
add r9, r10
cmp r9, 1
ja 0x14011b5d3
int3
mov r9, qword [rsp + 0x38]
mov r13, qword [rsp + 0x38]
cmp qword [rsp + 0x28], r13
mov r13, qword [rsp + 0x48]
je 0x14011a815
mov r9, qword [rsp + 0x28]
movabs r10, 0x8000000000000001
add r10, r9
mov r9, qword [rsp + 0x38]
cmp r10, 1
mov r10d, dword [rsp + 0x40]
ja 0x14011a815
int3
mov rdx, r15
cmp qword [rsp + 0x28], r15
je 0x14011b589
mov rdx, qword [rsp + 0x28]
movabs r8, 0x8000000000000001
add r8, rdx
mov rdx, r15
cmp r8, 1
ja 0x14011b589
int3
mov r9, r13
cmp r8, rdx
jne 0x14011be89
mov r13, r9
mov r11, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x40]
jmp 0x14011aabe
movabs r10, 0x8000000000000001
add r8, r10
cmp r8, 1
mov r13, r9
mov r11, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
ja 0x14011aac3
int3
mov rcx, qword [0x14023f400]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14011afa8
mov rcx, r9
cmp qword [rsp + 0x28], r9
je 0x14011aa75
mov rcx, qword [rsp + 0x28]
movabs rdx, 0x8000000000000001
add rdx, rcx
mov rcx, r9
cmp rdx, 1
ja 0x14011aa75
int3
cmp r10, rdx
je 0x14011b115
movabs r11, 0x8000000000000001
add r10, r11
cmp r10, 1
mov r11d, ebp
ja 0x14011b118
int3
cmp r10, r9
je 0x14011b165
movabs r11, 0x8000000000000001
add r10, r11
cmp r10, 1
mov r11d, ebp
ja 0x14011b168
int3
cmp rdx, rcx
je 0x14011b262
movabs r8, 0x8000000000000001
add rdx, r8
cmp rdx, 1
mov r8, qword [rsp + 0x30]
ja 0x14011b267
int3
mov ebx, r11d
call fcn.1400c5e10
mov r11d, ebx
mov rax, qword [rdi + 0x10]
mov rbx, qword [rdi + 0x18]
jmp 0x14011b3da
mov rax, r8
cmp r13, r8
je 0x14011b219
movabs rax, 0x8000000000000001
lea rdx, [rax + r13]
mov rax, r8
cmp rdx, 1
ja 0x14011b219
int3
mov rax, qword [rsp + 0x128]
mov qword [rcx], rax
jmp 0x14011baee
mov rcx, qword [0x14023f400]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14011bb68
mov rdx, qword [rsp + 0x68]
jmp 0x14011bab3
cmp r9, rax
je 0x14011ba0e
lea rdx, [r9 + r14]
mov r8, r9
cmp rdx, 1
ja 0x14011ba11
int3
mov rdx, qword [rsp + 0xe8]
lea rax, [rdx + r14]
cmp rax, 2
jae 0x14011c04c
cmp r9, rdx
je 0x14011c076
shr rdx, 0x3f
not rdx
add rdx, r14
mov rax, r9
mov r8, rdx
jmp 0x14011ba11
xor eax, eax
cmp r9, rdx
setns al
movabs r10, 0x7fffffffffffffff
add r10, rax
mov r8, r9
sub r8, rdx
cmovo r8, r10
mov rax, r9
jmp 0x14011ba11
int3
int3