Function at 0x140115ff0
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, 0x128
mov qword [rsp + 0x30], r8
mov r15, rdx
mov rdi, rcx
mov rax, qword [0x140260028]
xor rax, rsp
mov qword [rsp + 0x120], rax
movabs r12, 0xaaaaaaaaaaaaaaaa
mov r13, qword [rcx + 0x10]
mov rbp, qword [rcx + 0x18]
cmp r13, rbp
je 0x1401169d0
mov rax, qword [r13]
mov qword [rsp + 0x90], rax
mov rax, qword [r13 + 8]
mov qword [rsp + 0x88], rax
mov eax, dword [r13 + 0x14]
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x74], 0
mov rax, qword [r15 + 0x18]
mov esi, dword [rax + 8]
test esi, esi
jne 0x1401170d0
mov r11, qword [r15 + 0x110]
cmp r11, 0xffffffffffffffff
je 0x14011649a
mov esi, dword [rax + 8]
mov r14, r11
test esi, esi
jne 0x140117131
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x1401170b1
mov rcx, r14
shl rcx, 5
mov eax, dword [rax + rcx + 0x10]
movzx ecx, al
mov dword [rsp + 0x6c], ecx
and eax, 0xffffff00
mov dword [rsp + 0x70], eax
mov rax, qword [r15 + 0x18]
mov bl, byte [r9 + 0x18]
mov esi, dword [rax + 8]
test esi, esi
jne 0x1401170f8
test bl, bl
je 0x1401164ce
mov al, byte [r9 + 0x18]
cmp r14, 0xffffffffffffffff
je 0x1401165ad
test al, al
je 0x1401170ac
mov rax, qword [r9]
mov qword [rsp + 0x58], rax
mov r8, qword [r9 + 8]
mov eax, dword [r9 + 0x10]
mov dword [rsp + 0x54], eax
mov r10d, dword [r9 + 0x14]
mov rax, qword [r15 + 0x18]
mov esi, dword [rax + 8]
test esi, esi
mov qword [rsp + 0x38], r8
jne 0x14011717a
mov qword [rsp + 0x80], rbp
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x140117097
mov qword [rsp + 0x60], r13
mov rbx, r14
shl rbx, 5
mov rsi, qword [rax + rbx + 0x18]
mov rax, qword [rsi + 0x18]
mov ebp, dword [rax + 8]
test ebp, ebp
jne 0x1401172f1
mov qword [rsi + 0x110], 0xffffffffffffffff
mov r13, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rax, r12
sub rax, r13
sar rax, 5
cmp rax, r14
mov rbp, qword [rsp + 0x80]
jbe 0x140117097
mov qword [rsp + 0x40], rax
movabs rdx, 0x8000000000000001
lea rax, [rbx + r13]
cmp dword [r13 + rbx + 0x14], 0
jne 0x1401169fd
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rsi, rdx
add rdx, rax
cmp rdx, 2
mov rbx, qword [rsp + 0x58]
jb 0x140117280
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov rax, rcx
mov rcx, rbx
test r10d, r10d
jne 0x14011620e
lea rcx, [r8 + rsi]
cmp rcx, 2
jb 0x14011729c
lea rdx, [rbx + r8]
sar rdx, 0x3f
btc rdx, 0x3f
mov rcx, rbx
add rcx, r8
cmovo rcx, rdx
cmp rcx, rax
jle 0x14011655f
lea rcx, [r14*2 + 1]
cmp rcx, qword [rsp + 0x40]
mov qword [rsp + 0x28], r11
jae 0x14011706f
lea rdx, [r14 + r14]
lea rax, [rbx + r8]
sar rax, 0x3f
btc rax, 0x3f
mov r12, rbx
add r12, r8
cmovo r12, rax
mov rbp, rsi
lea rax, [rsi + r8]
add rax, 0xfffffffffffffffe
cmp rax, 0xfffffffffffffffe
setb al
test r10d, r10d
setne sil
cmovne r12, rbx
mov qword [rsp + 0xa8], r12
or sil, al
mov byte [rsp + 0x27], sil
mov rsi, qword [rsp + 0x40]
add rdx, 2
mov r13, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rax, r12
sub rax, r13
mov qword [rsp + 0x98], rax
sar rax, 5
cmp rdx, rsi
jae 0x140116356
cmp rax, rdx
jbe 0x140117097
mov rsi, r15
mov r15d, r10d
mov r10, rdx
shl r10, 5
lea r8, [r10 + r13]
cmp dword [r13 + r10 + 0x14], 0
jne 0x1401164c6
mov r11, qword [r8]
mov r8, qword [r8 + 8]
lea r10, [r8 + rbp]
cmp r10, 2
jb 0x14011720f
lea r10, [r11 + r8]
sar r10, 0x3f
btc r10, 0x3f
add r11, r8
cmovo r11, r10
mov r8, r11
mov r11, rcx
shl r11, 5
add r11, r13
cmp dword [r11 + 0x14], 0
jne 0x1401164be
mov r10, qword [r11]
mov rbx, qword [r11 + 8]
lea r11, [rbx + rbp]
cmp r11, 2
jb 0x14011722e
lea r11, [r10 + rbx]
sar r11, 0x3f
btc r11, 0x3f
add r10, rbx
cmovo r10, r11
mov rbx, r10
cmp rbx, r8
mov r11, qword [rsp + 0x28]
mov r10d, r15d
jg 0x140116346
mov rdx, rcx
mov rcx, rdx
mov r15, rsi
mov r8, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
cmp rax, rcx
jbe 0x140117097
mov qword [rsp + 0xa0], rcx
shl rcx, 5
lea rbx, [rcx + r13]
cmp dword [r13 + rcx + 0x14], 0
jne 0x1401164b6
mov rdx, qword [rbx]
mov rcx, qword [rbx + 8]
lea r8, [rcx + rbp]
cmp r8, 2
jb 0x14011724d
lea r8, [rdx + rcx]
sar r8, 0x3f
btc r8, 0x3f
add rdx, rcx
cmovo rdx, r8
mov rcx, rdx
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xa8]
cmp byte [rsp + 0x27], 0
je 0x1401172bb
cmp rdx, rcx
jle 0x140116662
cmp rax, r14
je 0x140116be8
jbe 0x140117097
mov rax, r14
shl rax, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r13 + rax + 0x10], xmm1
movups xmmword [r13 + rax], xmm0
mov r12, qword [rdi + 0x18]
mov rax, qword [rdi + 0x10]
sub r12, rax
sar r12, 5
cmp r12, r14
jbe 0x140117097
mov rbx, r14
shl rbx, 5
mov r12, qword [rax + rbx + 0x18]
mov rax, qword [r12 + 0x18]
mov r13d, dword [rax + 8]
test r13d, r13d
jne 0x1401173bf
mov qword [r12 + 0x110], r14
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x140117097
mov rax, qword [rax + rbx + 0x18]
mov rax, qword [rax + 0x18]
mov ebx, dword [rax + 8]
test ebx, ebx
jne 0x14011740b
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax]
lea rcx, [rax*2 + 1]
mov r14, rax
cmp rcx, rsi
mov rbx, qword [rsp + 0x58]
jb 0x14011627c
mov r13, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rsi, r12
sub rsi, r13
sar rsi, 5
mov r14, rax
jmp 0x14011666a
mov dword [rsp + 0x70], 0xaaaaaa00
mov dword [rsp + 0x6c], 0
mov r14, 0xffffffffffffffff
jmp 0x1401160c8
mov rcx, qword [rbx]
jmp 0x1401163ac
mov rbx, qword [r11]
jmp 0x140116336
mov r8, qword [r8]
jmp 0x1401162f5
cmp r14, 0xffffffffffffffff
je 0x140116716
mov rax, qword [r15 + 0x18]
mov esi, dword [rax + 8]
test esi, esi
jne 0x140117332
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x140117097
mov rcx, r14
shl rcx, 5
mov rsi, qword [rax + rcx + 0x18]
mov rax, qword [rsi + 0x18]
mov ebx, dword [rax + 8]
test ebx, ebx
jne 0x140117476
mov qword [rsi + 0x110], 0xffffffffffffffff
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rdx, rax
sub rdx, rcx
sar rdx, 5
dec rdx
cmp rdx, r14
jne 0x140116a15
cmp rcx, rax
je 0x140117097
add rax, 0xffffffffffffffe0
je 0x140117097
mov qword [rdi + 0x18], rax
jmp 0x140116716
lea rcx, [rdi + 8]
mov rax, r8
lea r8, [rsp + 0xf0]
mov qword [r8], rbx
mov qword [r8 + 8], rax
mov eax, dword [rsp + 0x54]
mov dword [r8 + 0x10], eax
mov dword [r8 + 0x14], r10d
mov qword [r8 + 0x18], r15
mov rdx, r14
mov rsi, r9
mov rbx, r11
call fcn.140117680
mov r11, rbx
mov r9, rsi
movabs r12, 0xaaaaaaaaaaaaaaaa
mov r13, qword [rsp + 0x60]
jmp 0x140116716
test al, al
je 0x1401170ac
mov rbx, r11
lea rcx, [rdi + 8]
mov rax, qword [r9 + 0x10]
lea r8, [rsp + 0xf0]
mov qword [r8 + 0x10], rax
movups xmm0, xmmword [r9]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x18], r15
mov rdx, qword [rdi + 0x18]
sub rdx, qword [rdi + 0x10]
sar rdx, 5
mov rsi, r9
call fcn.140117680
mov r9, rsi
mov r11, rbx
jmp 0x140116716
mov rax, qword [rdi + 0x20]
cmp r12, rax
jae 0x140116cf4
test r12, r12
je 0x140117097
mov qword [r12], rbx
mov qword [r12 + 8], r8
mov eax, dword [rsp + 0x54]
mov dword [r12 + 0x10], eax
mov dword [r12 + 0x14], r10d
mov qword [r12 + 0x18], r15
add r12, 0x20
mov r13, qword [rsp + 0x60]
mov qword [rdi + 0x18], r12
jmp 0x1401166a2
mov byte [rsp + 0xb0], 0
xor ecx, ecx
jmp 0x1401167c6
lea r8, [r12 - 0xaa]
mov edx, 0xaaaaaaaa
mov r10d, 0xaaaaaaaa
mov rsi, r12
jmp 0x140116734
mov rsi, rax
mov rbx, qword [rsp + 0x58]
cmp rsi, r14
je 0x1401165f7
jbe 0x140117097
mov rax, r14
shl rax, 5
mov qword [r13 + rax], rbx
mov qword [r13 + rax + 8], r8
mov ecx, dword [rsp + 0x54]
mov dword [r13 + rax + 0x10], ecx
mov dword [r13 + rax + 0x14], r10d
mov qword [r13 + rax + 0x18], r15
mov r12, qword [rdi + 0x18]
mov r13, qword [rsp + 0x60]
mov rax, qword [rdi + 0x10]
sub r12, rax
sar r12, 5
cmp r12, r14
jbe 0x140117097
mov rsi, r14
shl rsi, 5
mov rbx, qword [rax + rsi + 0x18]
mov rax, qword [rbx + 0x18]
mov ebp, dword [rax + 8]
test ebp, ebp
movabs r12, 0xaaaaaaaaaaaaaaaa
jne 0x140117367
mov qword [rbx + 0x110], r14
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x140117097
mov rax, qword [rax + rsi + 0x18]
mov rax, qword [rax + 0x18]
mov esi, dword [rax + 8]
test esi, esi
mov rbp, qword [rsp + 0x80]
jne 0x140117397
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
cmp rax, rcx
je 0x140116647
mov r8, qword [rax]
mov rsi, qword [rax + 8]
mov edx, dword [rax + 0x14]
xor r10d, r10d
cmp r11, 0xffffffffffffffff
je 0x14011674e
mov r11d, dword [rsp + 0x70]
or r11d, dword [rsp + 0x6c]
cmp r11d, 1
je 0x1401170c8
cmp byte [r9 + 0x18], 1
jne 0x140116760
cmp dword [r9 + 0x10], 1
je 0x1401170b6
cmp rax, rcx
sete r11b
cmp r13, rbp
sete bl
or bl, r11b
jne 0x140116976
cmp r10d, dword [rsp + 0x74]
jne 0x14011679b
cmp r8, qword [rsp + 0x90]
jne 0x14011679b
cmp rsi, qword [rsp + 0x88]
jne 0x14011679b
cmp edx, dword [rsp + 0x68]
je 0x140116951
cmp rax, rcx
je 0x140116638
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x14]
movups xmmword [rsp + 0xb0], xmm0
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0xc4], eax
mov cl, 1
mov byte [rsp + 0xc8], cl
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
lea rdx, [0x1401b7e70]
cmp rax, rdx
jne 0x1401169b8
mov rbx, qword [rdi + 0x38]
lea r13, [r12 - 0xaa]
mov r8d, 0xaaaaaaaa
test cl, cl
mov rdx, qword [rsp + 0x30]
je 0x14011698d
mov r14, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0xc0]
mov r12d, dword [rsp + 0xc4]
mov rsi, r14
cmp r12d, 1
je 0x1401171ba
mov al, byte [rdx + 8]
test al, al
jne 0x1401168c7
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
cmp rax, rcx
jne 0x14011705c
lea rdi, [rsp + 0xf0]
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 0x14011744f
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0xf0], rax
mov rdx, qword [rsp + 0x30]
mov r8d, 0xaaaaaaaa
mov al, byte [rdx + 8]
cmp al, 1
je 0x140117270
test rdx, rdx
je 0x140117097
mov rax, qword [rsp + 0xf0]
mov qword [rdx], rax
mov byte [rdx + 8], 1
mov al, 1
test al, al
je 0x140117097
cmp qword [rdx], rsi
jge 0x1401169a5
cmp qword [rbx + 0x250], 0
jne 0x140117166
mov al, 1
test r14, r14
je 0x1401169a5
mov rdi, qword [rbx + 0x30]
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xd8], r15
mov dword [rsp + 0xe0], ebp
mov dword [rsp + 0xe4], r12d
mov byte [rsp + 0xe8], al
mov dword [rsp + 0xe9], r8d
mov dword [rsp + 0xec], r8d
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
lea rcx, [0x140145a40]
cmp rax, rcx
jne 0x140116dd1
mov eax, dword [rdi + 0x1b0]
cmp eax, 4
je 0x140116f47
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.140149190
nop
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, rcx
setne dl
cmp r13, rbp
setne r8b
cmp r8b, dl
je 0x140116951
jmp 0x14011679b
xor eax, eax
mov r14, r13
mov r15, r12
mov ebp, 0xaaaaaaaa
mov r12d, 0xaaaaaaaa
jmp 0x1401168f1
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [0x1402529a0]
jmp 0x140116951
lea r8, [rsp + 0xb0]
mov rcx, rdi
mov rdx, qword [rsp + 0x30]
call qword [0x1402529a0]
jmp 0x140116951
lea rax, [r12 - 0xaa]
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x74], 0xaaaaaaaa
mov qword [rsp + 0x88], r12
mov dword [rsp + 0x68], 0xaaaaaaaa
jmp 0x140116063
mov rsi, rdx
mov rax, qword [rax]
mov rbx, qword [rsp + 0x58]
jmp 0x1401161e1
mov rdx, qword [rdx]
jmp 0x140116b12
cmp rax, rcx
je 0x140117097
mov qword [rsp + 0x80], rbp
shl rdx, 5
mov rsi, qword [rcx + rdx + 0x18]
mov rax, qword [rsi + 0x18]
mov ebx, dword [rax + 8]
test ebx, ebx
jne 0x1401174e4
mov qword [rsi + 0x110], 0xffffffffffffffff
mov rax, qword [rdi + 0x18]
mov rsi, rax
sub rsi, qword [rdi + 0x10]
je 0x140117097
mov rbp, r13
mov r13, r12
lea r15, [rdi + 8]
movups xmm0, xmmword [rax - 0x20]
movups xmm1, xmmword [rax - 0x10]
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
sar rsi, 5
dec rsi
lea rax, [r14*2 + 1]
cmp rax, rsi
mov qword [rsp + 0x28], r11
mov rbx, r9
jae 0x14011707c
lea rcx, [r14 + r14]
movabs r11, 0x8000000000000001
add rcx, 2
cmp rcx, rsi
jae 0x140116b5e
mov r8, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
sub rdx, r8
sar rdx, 5
cmp rdx, rcx
jbe 0x140117097
mov r9, rcx
shl r9, 5
lea rdx, [r8 + r9]
cmp dword [r8 + r9 + 0x14], 0
jne 0x140116a0d
mov r9, qword [rdx]
mov rdx, qword [rdx + 8]
lea r10, [rdx + r11]
cmp r10, 2
jb 0x1401174a6
lea r10, [r9 + rdx]
sar r10, 0x3f
btc r10, 0x3f
add r9, rdx
cmovo r9, r10
mov rdx, r9
mov r9, rax
shl r9, 5
add r8, r9
cmp dword [r8 + 0x14], 0
jne 0x140116be0
mov r9, qword [r8]
mov r8, qword [r8 + 8]
lea r10, [r8 + r11]
cmp r10, 2
jb 0x1401174c5
lea r10, [r9 + r8]
sar r10, 0x3f
btc r10, 0x3f
add r9, r8
cmovo r9, r10
mov r8, r9
cmp r8, rdx
jg 0x140116b5b
mov rcx, rax
mov rax, rcx
mov r12, rax
mov rcx, r15
mov rdx, rax
mov r8, r14
call fcn.140183570
lea rcx, [r12 + r12]
lea rax, [r12*2 + 1]
mov r14, r12
cmp rax, rsi
movabs r11, 0x8000000000000001
jb 0x140116aaa
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
lea r8, [rsp + 0xf0]
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
mov rcx, r15
mov rdx, r12
call fcn.140117680
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov r12, r13
mov r13, rbp
mov rbp, qword [rsp + 0x80]
mov r9, rbx
mov r11, qword [rsp + 0x28]
jmp 0x140116543
mov r8, qword [r8]
jmp 0x140116b53
mov rax, qword [rdi + 0x20]
cmp r12, rax
jae 0x140116c19
test r12, r12
je 0x140117097
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
add r12, 0x20
mov qword [rdi + 0x18], r12
jmp 0x1401163f5
movabs r8, 0x7ffffffffffffff
lea rdx, [r8 - 1]
cmp r14, rdx
ja 0x1401170be
mov rsi, rbp
mov qword [rsp + 0x78], r15
lea rdx, [r14 + 1]
sub rax, r13
mov rcx, rax
sar rcx, 4
cmp rcx, rdx
ja 0x140116c4e
mov rcx, rdx
mov qword [rsp + 0x48], r9
lea rdx, [rsi - 0x21]
cmp rax, rdx
cmovae rcx, r8
cmp rcx, r8
ja 0x1401170c3
mov r15d, r10d
shl rcx, 5
mov rbp, rcx
call fcn.140146648
mov r12, r14
shl r12, 5
add r12, rax
je 0x140117097
add rbp, rax
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
add r12, 0x20
mov rcx, rax
mov rdx, r13
mov r8, qword [rsp + 0x98]
mov rbx, rax
call fcn.14014ac10
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], r12
mov qword [rdi + 0x20], rbp
test r13, r13
jne 0x140116cea
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x28]
mov r10d, r15d
mov r15, qword [rsp + 0x78]
mov r8, qword [rsp + 0x38]
mov rbp, rsi
mov rsi, qword [rsp + 0x40]
jmp 0x140116c10
mov rcx, r13
call fcn.140146640
jmp 0x140116cc6
lea rdx, [rsi + 1]
mov rcx, rdx
shr rcx, 0x3b
jne 0x1401170be
mov r12, r15
movabs rcx, 0x7ffffffffffffff
sub rax, r13
add rbp, 0xffffffffffffffdf
mov rbx, rax
sar rbx, 4
cmp rbx, rdx
cmovbe rbx, rdx
cmp rax, rbp
cmovae rbx, rcx
test rbx, rbx
je 0x140117510
cmp rbx, rcx
ja 0x1401170c3
mov r15d, r10d
mov rbp, r9
mov rcx, rbx
shl rcx, 5
call fcn.140146648
mov r13, rax
shl rsi, 5
add rsi, r13
mov rax, qword [rsp + 0x38]
je 0x140117097
shl rbx, 5
add r13, rbx
mov rcx, qword [rsp + 0x58]
mov qword [rsi], rcx
mov qword [rsi + 8], rax
mov eax, dword [rsp + 0x54]
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x14], r15d
mov qword [rsi + 0x18], r12
lea r12, [rsi + 0x20]
mov rdx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
sub r8, rdx
sub rsi, r8
mov rcx, rsi
call fcn.14014ac10
mov rcx, qword [rdi + 0x10]
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], r12
mov qword [rdi + 0x20], r13
test rcx, rcx
jne 0x140116dca
mov r13, qword [rsp + 0x60]
mov r9, rbp
mov r11, qword [rsp + 0x28]
jmp 0x140116632
call fcn.140146640
jmp 0x140116db8
lea r8, [rsp + 0xd0]
mov rcx, rdi
jmp 0x1401169c8
mov rcx, qword [rsp + 0xd0]
cmp ebp, 1
je 0x140117616
mov r15, rcx
jmp 0x140116e2d
test ebp, ebp
jne 0x140116de1
mov rcx, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xd8]
lea rax, [r15 + rsi]
cmp rax, 2
jb 0x1401175d0
lea rax, [rcx + r15]
sar rax, 0x3f
btc rax, 0x3f
add r15, rcx
cmovo r15, rax
mov r14, rcx
mov qword [rsp + 0xf0], r14
mov rax, qword [0x1402626c8]
shr rax, 1
mov edx, 0x3e8
mul rdx
jo 0x14011755c
cmp rax, 0x3e81
jae 0x14011755c
add rsi, 0xfffffffffffffffe
cmp r14, rsi
je 0x14011752e
mov rax, qword [rsp + 0x30]
mov al, byte [rax + 8]
test al, al
jne 0x140116f08
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
cmp rax, rcx
jne 0x140117099
lea rbx, [rsp + 0xf0]
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 0x1401175ef
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x30]
mov al, byte [rax + 8]
cmp al, 1
je 0x1401175bb
cmp qword [rsp + 0x30], 0
je 0x140117097
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x30]
mov qword [rcx], rax
mov byte [rcx + 8], 1
mov al, 1
test al, al
je 0x140117097
movabs rax, 0x141dd76000
mov rcx, qword [rsp + 0x30]
add rax, qword [rcx]
movabs rsi, 0x7fffffffffffffff
cmovno rsi, rax
cmp rsi, r14
cmovge rsi, r14
mov ebp, dword [rsp + 0xe4]
mov al, byte [rsp + 0xe8]
jmp 0x140116f6c
movabs rsi, 0x8000000000000001
mov ebp, dword [rsp + 0xe4]
cmp byte [rsp + 0xe8], 1
je 0x140116df7
add rsi, 0xfffffffffffffffe
xor eax, eax
mov rdi, qword [rdi + 0x230]
mov qword [rsp + 0xf0], rsi
xor ecx, ecx
mov edx, 0
cmp ebp, 2
je 0x140116f8f
mov rdx, qword [rsp + 0xd8]
test al, 1
cmovne rcx, rdx
mov qword [rsp + 0xf8], rcx
mov rdx, qword [rsp + 0x30]
mov al, byte [rdx + 8]
test al, al
jne 0x140117030
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
cmp rax, rcx
jne 0x140117084
lea rbx, [rsp + 0x118]
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 0x140117535
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0x118], rax
mov rdx, qword [rsp + 0x30]
mov al, byte [rdx + 8]
cmp al, 1
je 0x14011751e
test rdx, rdx
je 0x140117097
mov rax, qword [rsp + 0x118]
mov qword [rdx], rax
mov byte [rdx + 8], 1
mov al, 1
test al, al
je 0x140117097
mov rax, qword [rdx]
lea rdx, [rsp + 0xf0]
mov qword [rdx + 0x10], rax
mov byte [rdx + 0x18], 0
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [0x1402529a0]
jmp 0x140116951
lea rcx, [rsp + 0xf0]
call qword [0x1402529a0]
jmp 0x140116897
mov rbp, rsi
mov rsi, qword [rsp + 0x40]
jmp 0x14011666a
mov r12, r14
jmp 0x140116b91
lea rcx, [rsp + 0x118]
call qword [0x1402529a0]
jmp 0x14011700a
ud2
lea rcx, [rsp + 0xf0]
call qword [0x1402529a0]
jmp 0x140116ed6
call fcn.1401828f0
call fcn.1401b7f20
inc dword [rdi + 0x28]
jmp 0x140116760
call fcn.140187c70
call fcn.140187a10
dec dword [rdi + 0x28]
jmp 0x14011674e
mov rbx, r9
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.1401443a0
cmp esi, dword [r14]
jne 0x140117669
mov rax, qword [r15 + 0x18]
mov r9, rbx
jmp 0x140116072
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x48], r9
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.1401443a0
cmp esi, dword [r14]
jne 0x14011766c
mov r14, qword [r15 + 0x110]
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x28]
jmp 0x1401160d7
mov qword [rsp + 0x28], r11
mov rbx, r9
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.1401443a0
cmp esi, dword [r14]
jne 0x14011766f
mov r14, qword [r15 + 0x110]
mov r9, rbx
mov r11, qword [rsp + 0x28]
jmp 0x140116091
xor eax, eax
mov r14, r13
movabs r15, 0xaaaaaaaaaaaaaaaa
jmp 0x140116995
mov dword [rsp + 0x40], r10d
mov r12, r11
mov rbx, r9
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.1401443a0
cmp esi, dword [r14]
jne 0x140117672
mov r14, qword [r15 + 0x110]
mov r9, rbx
mov r11, r12
mov r10d, dword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
jmp 0x140116121
movabs rsi, 0x8000000000000001
lea rax, [r15 + rsi]
cmp rax, 2
jb 0x1401171ef
xor eax, eax
cmp r14, r15
setns al
movabs rcx, 0x7fffffffffffffff
add rcx, rax
mov rsi, r14
sub rsi, r15
cmovo rsi, rcx
jmp 0x140117205
cmp r14, r15
je 0x140117675
mov rax, r15
shr rax, 0x3f
not rax
add rsi, rax
mov rdx, qword [rsp + 0x30]
jmp 0x14011682f
lea r10, [r11 + rbp]
cmp r10, 2
setae r10b
cmp r11, r8
sete r11b
or r11b, r10b
jne 0x1401162f5
int3
lea r11, [r10 + rbp]
cmp r11, 2
setae r11b
cmp r10, rbx
sete r10b
or r10b, r11b
jne 0x140116336
int3
lea r8, [rdx + rbp]
cmp r8, 2
setae r8b
cmp rdx, rcx
sete dl
or dl, r8b
mov r8, qword [rsp + 0x38]
jne 0x1401163ac
int3
mov rcx, qword [rsp + 0xf0]
mov qword [rdx], rcx
jmp 0x1401168c7
lea rdx, [rcx + rsi]
cmp rdx, 2
setae dl
cmp rcx, rax
sete cl
or cl, dl
jne 0x1401161e1
int3
lea rcx, [rbx + rsi]
cmp rcx, 2
setae cl
cmp rbx, r8
sete dl
or dl, cl
mov rcx, r8
jne 0x14011620e
int3
mov rsi, rbp
mov rbp, qword [rsp + 0x58]
lea rdx, [rsi + rbp]
cmp rdx, 2
setae dl
cmp rbp, r8
mov rbp, rsi
mov rsi, qword [rsp + 0x40]
sete r8b
or r8b, dl
mov r8, qword [rsp + 0x38]
mov rdx, r8
jne 0x1401163bf
int3
lea rcx, [rsp + 0xd0]
mov r13, r9
mov r12, r11
mov qword [rsp + 0x78], r15
mov r15d, r10d
call fcn.1401443a0
mov r8, qword [rsp + 0x38]
mov r10d, r15d
mov r15, qword [rsp + 0x78]
mov r11, r12
mov r9, r13
lea rax, [rsp + 0xd0]
cmp ebp, dword [rax]
je 0x140116161
int3
mov qword [rsp + 0x28], r11
mov rbx, r9
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.1401443a0
cmp esi, dword [r14]
jne 0x140117678
mov r14, qword [r15 + 0x110]
mov r9, rbx
mov r11, qword [rsp + 0x28]
jmp 0x1401164e7
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x48], r9
mov r15, r11
call fcn.1401443a0
mov r11, r15
mov r9, qword [rsp + 0x48]
lea rax, [rsp + 0xd0]
cmp ebp, dword [rax]
je 0x1401166db
int3
lea r14, [rsp + 0xd0]
mov rcx, r14
mov rbx, r9
mov r15, r11
call fcn.1401443a0
mov r11, r15
mov r9, rbx
cmp esi, dword [r14]
je 0x140116716
int3
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x48], r9
mov rsi, rbp
mov rbp, r15
mov r15d, r10d
call fcn.1401443a0
mov r8, qword [rsp + 0x38]
mov r10d, r15d
mov r15, rbp
mov rbp, rsi
mov rsi, qword [rsp + 0x40]
mov r11, qword [rsp + 0x28]
mov r9, qword [rsp + 0x48]
lea rax, [rsp + 0xd0]
cmp r13d, dword [rax]
je 0x140116427
int3
lea r14, [rsp + 0xd0]
mov rcx, r14
mov r12, r9
mov r13, r11
mov rsi, rbp
mov rbp, r15
mov r15d, r10d
call fcn.1401443a0
mov r8, qword [rsp + 0x38]
mov r10d, r15d
mov r15, rbp
mov rbp, rsi
mov rsi, qword [rsp + 0x40]
mov r11, r13
mov r9, r12
cmp ebx, dword [r14]
je 0x14011645b
int3
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14011688f
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x48], r9
mov r15, r11
call fcn.1401443a0
mov r11, r15
mov r9, qword [rsp + 0x48]
lea rax, [rsp + 0xf0]
cmp ebx, dword [rax]
je 0x14011651a
int3
lea r10, [r9 + r11]
cmp r10, 2
setae r10b
cmp r9, rdx
sete r9b
or r9b, r10b
jne 0x140116b12
int3
lea r10, [r9 + r11]
cmp r10, 2
setae r10b
cmp r9, r8
sete r9b
or r9b, r10b
jne 0x140116b53
int3
lea rcx, [rsp + 0xf0]
mov rbp, r9
mov r15, r11
call fcn.1401443a0
mov r11, r15
mov r9, rbp
lea rax, [rsp + 0xf0]
cmp ebx, dword [rax]
je 0x140116a3e
int3
mov r15d, r10d
mov rbp, r9
xor r13d, r13d
jmp 0x140116d55
mov rcx, qword [rsp + 0x118]
mov qword [rdx], rcx
jmp 0x140117030
mov al, 1
jmp 0x140116f6c
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140117002
mov rax, qword [0x1402626c8]
mov r14, rcx
test al, 1
je 0x140116e5c
lea rbx, [rsp + 0x118]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbx], rax
lea r14, [rsp + 0x110]
mov rcx, r14
call fcn.140144ea0
mov r9, qword [r14]
lea rcx, [rsp + 0xf0]
mov rdx, rbx
xor r8d, r8d
call fcn.1401444c0
mov rax, qword [rbx]
cmp rax, r15
cmovl r15, rax
mov r14, r15
jmp 0x140116e5c
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x30]
mov qword [rdx], rcx
jmp 0x140116f08
lea rax, [rcx + rsi]
cmp rax, 2
setae al
cmp rcx, r15
sete dl
or dl, al
mov r14, rcx
jne 0x140116e30
int3
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140116ece
mov rax, qword [rsp + 0xd8]
lea rdx, [rax + rsi]
cmp rdx, 2
jae 0x140117642
cmp rcx, rax
je 0x14011767b
shr rax, 0x3f
not rax
add rax, rsi
mov r15, rcx
mov r14, rax
jmp 0x140116e30
xor edx, edx
cmp rcx, rax
setns dl
movabs r8, 0x7fffffffffffffff
add r8, rdx
mov r14, rcx
sub r14, rax
cmovo r14, r8
mov r15, rcx
jmp 0x140116e30
int3
int3
int3
int3
int3
int3
int3