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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1e8]
sub rsp, 0x2e8
mov rax, qword [rcx + 0x148]
mov r14, rcx
mov qword [rbp + 0x28], rax
mov rcx, qword [rax + 0x10]
movsxd rsi, dword [r14 + 0x150]
mov rdi, qword [r14 + 0x140]
mov qword [rbp + 0x30], rcx
lea rbx, [rsi + rsi*8]
shl rbx, 6
lea rcx, [rbx + 8]
call fcn.140058a4c
mov qword [rax], rbx
lock add qword [rdi], rbx
lea rbx, [rax + 8]
xor edx, edx
lea r8, [rsi + rsi*2]
mov rcx, rbx
shl r8, 3
call fcn.14004e520
xor r10d, r10d
mov qword [r14 + 0x160], rbx
mov r13d, r10d
cmp dword [r14 + 0x150], r10d
jle 0x1400173e0
mov r15d, r10d
mov qword [rbp + 0x240], r10
mov r8d, r10d
nop dword [rax]
mov rcx, qword [r14 + 0x138]
mov eax, r10d
add rcx, 0x10
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
neg eax
sbb rax, rax
and rdx, rax
mov eax, r10d
add r8, rdx
movsxd rdx, dword [r8 + 0x1c]
sub eax, dword [r8 + 0x1c]
lea rcx, [r8 + 0x1c]
movsxd r12, dword [r8 + 0x1c]
lea r9, [r8 + 0x1c]
add rdx, rcx
neg eax
sbb rax, rax
add r12, r9
and rdx, rax
movsxd rax, dword [r8 + 0x18]
lea rcx, [rdx + rax*4]
mov eax, r10d
sub eax, dword [r9]
neg eax
mov qword [rsp + 0x40], rcx
sbb rax, rax
and r12, rax
mov qword [rbp + 0x230], r12
cmp r12, rcx
je 0x1400173b7
mov rcx, qword [r14 + 0x160]
mov r9d, r10d
movsxd rbx, dword [r12]
add rcx, r15
mov r10, qword [rcx + 8]
test r10, r10
je 0x140017288
mov r8, qword [rcx]
nop
cmp dword [r8], ebx
je 0x14001739e
inc r9d
add r8, 4
movsxd rax, r9d
cmp rax, r10
jne 0x140017270
mov rdx, qword [r14 + 0x140]
mov r8d, 1
call fcn.1400107f0
xor r10d, r10d
mov dword [rax], ebx
mov eax, r10d
mov rcx, qword [r14 + 0x138]
add rcx, 0x10
sub eax, dword [rcx]
movsxd r8, dword [rcx]
add r8, rcx
neg eax
sbb rax, rax
and r8, rax
mov eax, r10d
imul rcx, rbx, 0xb0
add r8, rcx
sub eax, dword [r8 + 0x24]
lea rcx, [r8 + 0x24]
movsxd rdx, dword [rcx]
lea r9, [r8 + 0x24]
movsxd rdi, dword [r9]
add rdx, rcx
neg eax
sbb rax, rax
add rdi, r9
and rdx, rax
movsxd rax, dword [r8 + 0x20]
lea rsi, [rdx + rax*4]
mov eax, r10d
sub eax, dword [r9]
neg eax
sbb rax, rax
and rdi, rax
cmp rdi, rsi
je 0x1400173a1
xor r12d, r12d
nop dword [rax]
mov rcx, qword [r14 + 0x160]
mov r9d, r12d
movsxd rbx, dword [rdi]
add rcx, r15
mov r10, qword [rcx + 8]
test r10, r10
je 0x140017343
mov rax, qword [rcx]
nop dword [rax]
cmp dword [rax], ebx
je 0x14001738a
inc r9d
add rax, 4
movsxd r8, r9d
cmp r8, r10
jne 0x140017330
mov rdx, qword [r14 + 0x140]
mov r8d, 1
call fcn.1400107f0
mov r8d, r13d
mov dword [rax], ebx
mov eax, r12d
mov rcx, qword [r14 + 0x138]
add rcx, 0x10
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
neg eax
sbb rax, rax
imul rcx, rbx, 0xb0
and rdx, rax
add rdx, rcx
mov rcx, r14
call fcn.1400161e0
add rdi, 4
cmp rdi, rsi
jne 0x140017310
mov r12, qword [rbp + 0x230]
xor r10d, r10d
add r12, 4
mov qword [rbp + 0x230], r12
cmp r12, qword [rsp + 0x40]
jne 0x140017251
mov r8, qword [rbp + 0x240]
inc r13d
add r8, 0xb0
add r15, 0x18
mov qword [rbp + 0x240], r8
cmp r13d, dword [r14 + 0x150]
jl 0x1400171e0
movsxd rsi, dword [r14 + 0x150]
mov rdi, qword [r14 + 0x140]
lea rbx, [rsi + rsi*8]
shl rbx, 6
lea rcx, [rbx + 8]
call fcn.140058a4c
mov qword [rax], rbx
lock add qword [rdi], rbx
lea rbx, [rax + 8]
xor edx, edx
lea r8, [rsi + rsi*2]
mov rcx, rbx
shl r8, 3
call fcn.14004e520
xor r12d, r12d
mov qword [r14 + 0x168], rbx
mov ebx, r12d
cmp dword [r14 + 0x150], r12d
jle 0x1400174c6
mov r15d, r12d
nop dword [rax]
mov rdx, qword [r14 + 0x160]
mov rax, qword [rdx + r15]
mov rcx, qword [rdx + r15 + 8]
mov rdi, rax
lea rsi, [rax + rcx*4]
cmp rax, rsi
je 0x1400174b3
nop dword [rax]
movsxd rax, dword [rdi]
mov r9d, r12d
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x168]
mov r10, qword [rax + rcx*8 + 8]
lea rcx, [rax + rcx*8]
test r10, r10
je 0x140017496
mov r8, qword [rcx]
cmp dword [r8], ebx
je 0x1400174aa
inc r9d
add r8, 4
movsxd rax, r9d
cmp rax, r10
jne 0x140017482
mov rdx, qword [r14 + 0x140]
mov r8d, 1
call fcn.1400107f0
mov dword [rax], ebx
add rdi, 4
cmp rdi, rsi
jne 0x140017460
inc ebx
add r15, 0x18
cmp ebx, dword [r14 + 0x150]
jl 0x140017440
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov r8d, 4
mov dword [rax], 0xeaeaf2a7
mov rcx, qword [r14 + 0x58]
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov r8d, 4
mov dword [rax], ebx
mov rcx, qword [r14 + 0x58]
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0xd0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x70]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0xd0], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0xe0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x78]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0xe0], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0xf0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x80]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0xf0], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x100]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x88]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x100], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x110]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x90]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x110], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x120]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x98]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x120], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x130]
mov dword [rax], ebx
mov rcx, qword [r14 + 0xa0]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x130], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x190]
mov dword [rax], ebx
mov rcx, qword [r14 + 0xa8]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x190], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov dword [rax], ebx
mov rcx, qword [r14 + 0xb8]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
mov rcx, qword [r14 + 0x58]
lea rdx, [rbp + 0x140]
movdqa xmmword [rbp + 0x140], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x150]
mov dword [rax], ebx
mov rcx, qword [r14 + 0xb0]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x150], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rbp + 0x160]
mov dword [rax], ebx
mov rcx, qword [r14 + 0xc0]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rbp + 0x160], xmm0
call fcn.140007980
mov r8, qword [r14 + 0x140]
lea rcx, [r14 + 0xd0]
mov rdx, qword [r14 + 0x138]
call fcn.140015350
mov rbx, qword [r14 + 0x140]
mov ecx, 0x1008
call fcn.140058a4c
mov qword [rax], 0x1000
lock add qword [rbx], 0x1000
mov rbx, qword [r14 + 0x140]
add rax, 8
mov qword [rsp + 0x78], r12
mov r12d, 0x400
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], r12
mov qword [rbp - 0x80], r12
lea ecx, [r12 + 8]
call fcn.140058a4c
mov qword [rax], r12
lock add qword [rbx], r12
mov rbx, qword [r14 + 0x140]
lea ecx, [r12 + 8]
add rax, 8
mov qword [rsp + 0x30], rax
call fcn.140058a4c
mov qword [rax], r12
lock add qword [rbx], r12
mov rbx, qword [r14 + 0x140]
add rax, 8
mov ecx, 0x1008
mov qword [rsp + 0x38], rax
mov r13d, r12d
mov qword [rsp + 0x48], r12
call fcn.140058a4c
mov qword [rax], 0x1000
lock add qword [rbx], 0x1000
add rax, 8
xor ecx, ecx
mov qword [rsp + 0x20], rax
cmp dword [r14 + 0x150], ecx
jle 0x140017ab3
mov r12d, ecx
mov r13d, ecx
nop dword [rax]
mov rdi, qword [r14 + 0x70]
mov r8d, 4
mov rsi, qword [r14 + 0x160]
mov rdx, qword [rdi + 0x10]
lea rcx, [rdi + 0x18]
mov ebx, dword [rsi + r12 + 8]
call fcn.140007f10
mov rcx, rdi
mov dword [rax], ebx
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx]
mov dword [rbp - 0x70], eax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x170]
mov qword [rbp - 0x68], rax
movaps xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp + 0x170], xmm0
call fcn.140007980
mov rax, qword [rsi + r12]
mov rcx, qword [rsi + r12 + 8]
mov rdi, rax
lea r15, [rax + rcx*4]
cmp rax, r15
je 0x140017a04
nop word [rax + rax]
mov rcx, qword [r14 + 0x60]
mov r8d, 4
mov ebx, dword [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
add rdi, 4
mov dword [rax], ebx
cmp rdi, r15
jne 0x1400179e0
mov rdi, qword [r14 + 0x78]
mov r8d, 4
mov rsi, qword [r14 + 0x168]
mov rdx, qword [rdi + 0x10]
lea rcx, [rdi + 0x18]
mov ebx, dword [rsi + r12 + 8]
call fcn.140007f10
mov rcx, rdi
mov dword [rax], ebx
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx]
mov dword [rbp - 0x60], eax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x180]
mov qword [rbp - 0x58], rax
movaps xmm0, xmmword [rbp - 0x60]
movdqa xmmword [rbp + 0x180], xmm0
call fcn.140007980
mov rax, qword [rsi + r12]
mov rcx, qword [rsi + r12 + 8]
mov rdi, rax
lea r15, [rax + rcx*4]
cmp rax, r15
je 0x140017a94
nop word [rax + rax]
mov rcx, qword [r14 + 0x60]
mov r8d, 4
mov ebx, dword [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
add rdi, 4
mov dword [rax], ebx
cmp rdi, r15
jne 0x140017a70
inc r13d
add r12, 0x18
cmp r13d, dword [r14 + 0x150]
jl 0x140017970
mov r13, qword [rsp + 0x48]
mov r12d, 0x400
lea rcx, [rbp]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1400182ed
mov rax, qword [rbp]
xor edx, edx
sub rax, qword [0x140099f88]
movsxd rsi, dword [r14 + 0x150]
mov rdi, qword [r14 + 0x140]
imul rax, rax, 0xf4240
lea rbx, [rsi*4]
div qword [0x140099f80]
lea rcx, [rbx + 8]
mov r15, rax
add r15, qword [0x140099f90]
call fcn.140058a4c
mov qword [rax], rbx
lock add qword [rdi], rbx
xor ebx, ebx
mov qword [rsp + 0x68], rsi
lea rcx, [rax + 8]
mov qword [rsp + 0x60], rbx
mov edx, ebx
mov qword [rsp + 0x58], rcx
cmp dword [r14 + 0x150], ebx
jle 0x140017b5b
mov eax, ebx
nop dword [rax]
nop word [rax + rax]
mov dword [rax + rcx], 0xffffffff
lea rax, [rax + 4]
mov rcx, qword [rsp + 0x58]
inc edx
cmp edx, dword [r14 + 0x150]
jl 0x140017b40
mov edi, ebx
cmp dword [r14 + 0x150], ebx
jle 0x140017c22
lea rsi, [0x14008a270]
lea rax, [rsp + 0x58]
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x48], rax
lea rdx, [rbp + 0x248]
movups xmm0, xmmword [rbp + 0x48]
lea rax, [rbp + 0x90]
mov qword [rbp + 0x90], rsi
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x90]
movsd xmm1, qword [rbp + 0x58]
lea rax, [rbp + 0x90]
movsd qword [rbp + 0xa8], xmm1
mov qword [rbp + 0xc8], rax
movups xmmword [rbp + 0x98], xmm0
mov dword [rbp + 0x248], edi
call fcn.140018bd0
mov rcx, qword [r14 + 0x80]
mov r8d, 4
mov ebx, eax
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov dword [rax], ebx
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x140017c0c
mov rax, qword [rcx]
lea rdx, [rbp + 0x90]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
inc edi
cmp edi, dword [r14 + 0x150]
jl 0x140017b71
mov rcx, qword [rsp + 0x58]
xor ebx, ebx
test rcx, rcx
je 0x140017c51
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r14 + 0x140]
neg rdx
lock add qword [rax], rdx
call fcn.140058710
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbx
lea rcx, [rbp + 8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1400182fa
mov rax, qword [rbp + 8]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
sub rax, r15
add rax, qword [0x140099f90]
lock add qword [0x140099918], rax
cmp dword [r14 + 0x150], 0
mov dword [rbp + 0x240], ebx
jle 0x1400181b3
lea r15, [r14 + 0xd0]
mov qword [rsp + 0x50], rbx
xor ecx, ecx
mov qword [rsp + 0x78], rcx
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1400182e0
mov rax, qword [rbp + 0x10]
xor edx, edx
sub rax, qword [0x140099f88]
xor r10d, r10d
mov rdi, qword [r14 + 0x140]
mov ecx, r10d
imul rax, rax, 0xf4240
div qword [0x140099f80]
mov rdx, qword [r14 + 0x138]
add rax, qword [0x140099f90]
add rdx, 0x10
mov qword [rbp - 0x60], rax
sub ecx, dword [rdx]
movsxd r8, dword [rdx]
add r8, rdx
neg ecx
sbb rcx, rcx
and r8, rcx
movsxd rbx, dword [r8 + rbx + 0x28]
mov dword [rbp + 0x230], ebx
mov qword [rbp - 0x70], rbx
cmp rbx, r12
jbe 0x140017d96
lea rcx, [r12 + r12]
test r12, r12
jne 0x140017d39
mov ecx, 8
mov rax, qword [rsp + 0x30]
cmp rcx, rbx
mov r12, rbx
cmovae r12, rcx
mov qword [rsp + 0x40], r12
lea rdx, [r12 + 8]
test rax, rax
jne 0x140017d61
mov rcx, rdx
call fcn.140058a4c
jmp 0x140017d81
lea rsi, [rax - 8]
mov rax, qword [rax - 8]
neg rax
lock add qword [rdi], rax
mov rcx, rsi
call fcn.14005d638
test rax, rax
je 0x140018307
mov qword [rax], r12
lock add qword [rdi], r12
lea rdx, [rax + 8]
xor r10d, r10d
mov qword [rsp + 0x30], rdx
jmp 0x140017d9b
mov rdx, qword [rsp + 0x30]
mov rcx, qword [r14 + 0x138]
mov eax, r10d
add rcx, 0x10
mov edi, r10d
sub eax, dword [rcx]
movsxd rsi, dword [rcx]
add rsi, rcx
neg eax
sbb rax, rax
and rsi, rax
add rsi, qword [rsp + 0x50]
test ebx, ebx
je 0x140017e84
lea r13, [rsi + 0x2c]
mov r15, rdx
mov r12, r10
nop dword [rax]
nop word [rax + rax]
movsxd rbx, dword [r13]
lea rcx, [r14 + 0xd0]
add rbx, r13
mov eax, r10d
sub eax, dword [r13]
mov rdx, rsi
neg eax
sbb rax, rax
and rbx, rax
add rbx, r12
movsxd r9, dword [rbx]
add r9, rbx
cmp dword [rbx], 0
cmove r9, r10
call fcn.1400158f0
mov byte [r15], al
lea r9, [rbp + 0x1c0]
movsxd r8, dword [rbx]
mov ecx, 0
mov edx, dword [rbx + 4]
add r8, rbx
cmp dword [rbx], 0
cmove r8, rcx
lea rcx, [r14 + 0xd0]
call fcn.1400156c0
test al, al
jne 0x140017e5d
mov rdx, qword [r14 + 0x140]
lea rcx, [rsp + 0x70]
mov r8d, 1
call fcn.1400107f0
mov dword [rax], edi
inc edi
add r12, 8
inc r15
mov r10d, 0
cmp edi, dword [rbp + 0x230]
jne 0x140017de0
mov r13, qword [rsp + 0x48]
lea r15, [r14 + 0xd0]
mov rcx, qword [r14 + 0x138]
mov eax, r10d
mov rbx, qword [r14 + 0x140]
add rcx, 0x10
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
neg eax
sbb rax, rax
and rdx, rax
mov rax, qword [rsp + 0x50]
movsxd rdi, dword [rdx + rax + 0x48]
mov dword [rbp + 0x230], edi
mov rax, rdi
cmp rdi, r13
jbe 0x140017f38
lea rcx, [r13*2]
test r13, r13
jne 0x140017ed3
mov ecx, 8
cmp rcx, rax
mov r13, rax
mov rax, qword [rsp + 0x38]
cmovae r13, rcx
mov qword [rsp + 0x48], r13
lea rdx, [r13 + 8]
test rax, rax
jne 0x140017efa
mov rcx, rdx
call fcn.140058a4c
jmp 0x140017f20
lea rdi, [rax - 8]
mov rax, qword [rax - 8]
neg rax
lock add qword [rbx], rax
mov rcx, rdi
call fcn.14005d638
test rax, rax
je 0x14001831a
mov edi, dword [rbp + 0x230]
mov rcx, r13
mov qword [rax], r13
lock add qword [rbx], rcx
lea r12, [rax + 8]
xor r10d, r10d
mov qword [rsp + 0x38], r12
jmp 0x140017f3d
mov r12, qword [rsp + 0x38]
movsxd rax, edi
mov rbx, r10
test edi, edi
je 0x140017f97
lea rdi, [rsi + 0x4c]
mov r13, rax
nop
movsxd rcx, dword [rdi]
mov eax, r10d
sub eax, dword [rdi]
add rcx, rdi
neg eax
mov rdx, rsi
sbb rax, rax
and rcx, rax
movsxd r9, dword [rcx + rbx*8]
lea rax, [rcx + rbx*8]
add r9, rax
mov rcx, r15
cmp dword [rax], 0
cmove r9, r10
call fcn.1400158f0
mov byte [r12 + rbx], al
mov r10d, 0
inc rbx
cmp rbx, r13
jne 0x140017f50
mov r13, qword [rsp + 0x48]
lea rcx, [rbp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x14001832d
mov rax, qword [rbp + 0x20]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
sub rax, qword [rbp - 0x60]
add rax, qword [0x140099f90]
lock add qword [0x140099910], rax
mov rdi, qword [r14 + 0x98]
mov r8d, 4
mov rdx, qword [rdi + 0x10]
lea rcx, [rdi + 0x18]
call fcn.140007f10
mov rbx, qword [rsp + 0x78]
mov rcx, rdi
mov dword [rax], ebx
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx]
mov dword [rbp + 0x80], eax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x1d0]
mov qword [rbp + 0x88], rax
movaps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x1d0], xmm0
call fcn.140007980
mov rax, qword [rsp + 0x70]
mov rdi, rax
lea rsi, [rax + rbx*4]
cmp rax, rsi
je 0x140018064
nop
mov rcx, qword [r14 + 0x60]
mov r8d, 4
mov ebx, dword [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
add rdi, 4
mov dword [rax], ebx
cmp rdi, rsi
jne 0x140018040
mov rcx, qword [r14 + 0x88]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov rbx, qword [rbp - 0x70]
lea rdx, [rbp + 0x1a0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x60]
mov eax, dword [rcx]
mov dword [rbp + 0x60], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x88]
mov qword [rbp + 0x68], rax
movaps xmm0, xmmword [rbp + 0x60]
movdqa xmmword [rbp + 0x1a0], xmm0
call fcn.140007980
mov rax, qword [rsp + 0x30]
mov rdi, rax
lea rsi, [rax + rbx]
cmp rax, rsi
je 0x1400180f4
nop word [rax + rax]
mov rcx, qword [r14 + 0x60]
mov r8d, 1
movzx ebx, byte [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
inc rdi
mov byte [rax], bl
cmp rdi, rsi
jne 0x1400180d0
mov rcx, qword [r14 + 0x90]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
movsxd rbx, dword [rbp + 0x230]
lea rdx, [rbp + 0x1b0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x60]
mov eax, dword [rcx]
mov dword [rbp + 0x70], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x90]
mov qword [rbp + 0x78], rax
movaps xmm0, xmmword [rbp + 0x70]
movdqa xmmword [rbp + 0x1b0], xmm0
call fcn.140007980
lea rsi, [rbx + r12]
mov rdi, r12
cmp r12, rsi
je 0x140018177
mov rcx, qword [r14 + 0x60]
mov r8d, 1
movzx ebx, byte [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
inc rdi
mov byte [rax], bl
cmp rdi, rsi
jne 0x140018153
mov edi, dword [rbp + 0x240]
mov rcx, r14
mov edx, edi
call fcn.140016710
mov rbx, qword [rsp + 0x50]
inc edi
add rbx, 0xb0
mov dword [rbp + 0x240], edi
mov qword [rsp + 0x50], rbx
cmp edi, dword [r14 + 0x150]
jge 0x1400181b8
mov r12, qword [rsp + 0x40]
jmp 0x140017cb0
mov r12, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400181dd
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r14 + 0x140]
neg rdx
lock add qword [rax], rdx
call fcn.140058710
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x140018202
mov rdx, qword [rax - 8]
lea rcx, [rax - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock add qword [rax], rdx
call fcn.140058710
test r12, r12
je 0x140018224
mov rdx, qword [r12 - 8]
lea rcx, [r12 - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock add qword [rax], rdx
call fcn.140058710
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x140018249
mov rdx, qword [rax - 8]
lea rcx, [rax - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock add qword [rax], rdx
call fcn.140058710
lea rcx, [r14 + 0xd0]
call fcn.140015ed0
lea rcx, [r14 + 0x100]
call fcn.140015ed0
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov rdx, qword [rbp + 0x238]
mov dword [rax], 0xeaeaf2a7
mov rcx, qword [r14 + 0x20]
call fcn.140007bb0
mov r8, qword [rbp + 0x28]
movzx edx, al
mov r9, qword [rbp + 0x30]
mov rcx, qword [r8 + 8]
mov qword [r8 + 0x10], r9
cmp qword [rcx + 0x20], r9
jbe 0x1400182bd
nop word [rax + rax]
mov rcx, qword [rcx]
mov qword [r8 + 8], rcx
cmp qword [rcx + 0x20], r9
ja 0x1400182b0
mov rax, qword [r8 + 8]
sub r9, qword [rax + 0x20]
mov qword [rax + 0x18], r9
movzx eax, dl
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
mov r8, rsi
lea rcx, str.out_of_memory_reallocating__d_bytes_at__p
mov edx, r12d
call fcn.1400139e0
int3
mov r8, rdi
lea rcx, str.out_of_memory_reallocating__d_bytes_at__p
mov edx, r13d
call fcn.1400139e0
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3