Function at 0x1400173b0
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 - 0x1f8]
sub rsp, 0x2f8
mov rax, qword [rcx + 0x148]
mov r14, rcx
movsxd rsi, dword [rcx + 0x150]
mov rdi, qword [rcx + 0x140]
mov qword [rbp + 0x68], rax
mov rax, qword [rax + 0x10]
lea rbx, [rsi + rsi*8]
mov qword [rbp + 0x60], rax
shl rbx, 6
lea rcx, [rbx + 8]
call fcn.140057c1c
mov qword [rax], rbx
lock xadd qword [rdi], rbx
lea rbx, [rax + 8]
xor edx, edx
lea r8, [rsi + rsi*2]
mov rcx, rbx
shl r8, 3
call fcn.14004f130
xor r11d, r11d
mov qword [r14 + 0x160], rbx
mov r13d, r11d
cmp dword [r14 + 0x150], r11d
jle 0x140017648
mov r15d, r11d
mov qword [rbp + 0x240], r11
mov r8d, r11d
nop word [rax + rax]
mov rax, qword [r14 + 0x138]
add rax, 0x10
movsxd rcx, dword [rax]
lea rdx, [rax + rcx]
mov eax, r11d
sub eax, ecx
neg eax
sbb rax, rax
and rdx, rax
mov eax, r11d
add r8, rdx
movsxd rcx, dword [r8 + 0x1c]
lea r9, [r8 + 0x1c]
movsxd r10, dword [r9]
sub eax, ecx
neg eax
sbb rax, rax
lea rdx, [r9 + rcx]
and rdx, rax
lea r12, [r9 + r10]
movsxd rax, dword [r8 + 0x18]
lea rcx, [rdx + rax*4]
mov eax, r11d
sub eax, r10d
mov qword [rbp + 0x250], rcx
neg eax
sbb rax, rax
and r12, rax
cmp r12, rcx
je 0x14001761f
nop dword [rax + rax]
mov rcx, qword [r14 + 0x160]
mov r9d, r11d
movsxd rbx, dword [r12]
add rcx, r15
mov r10, qword [rcx + 8]
test r10, r10
je 0x1400174f8
mov r8, qword [rcx]
nop dword [rax]
cmp dword [r8], ebx
je 0x14001760e
inc r9d
add r8, 4
movsxd rax, r9d
cmp rax, r10
jne 0x1400174e0
mov rdx, qword [r14 + 0x140]
mov r8d, 1
call fcn.140010840
xor r11d, r11d
mov dword [rax], ebx
mov rax, qword [r14 + 0x138]
add rax, 0x10
movsxd rcx, dword [rax]
lea r8, [rax + rcx]
mov eax, r11d
sub eax, ecx
neg eax
sbb rax, rax
and r8, rax
mov eax, r11d
imul rcx, rbx, 0xb0
add r8, rcx
movsxd rcx, dword [r8 + 0x24]
movsxd r10, dword [r8 + 0x24]
lea r9, [r8 + 0x24]
sub eax, ecx
neg eax
lea rdx, [r9 + rcx]
sbb rax, rax
lea rdi, [r9 + r10]
and rdx, rax
movsxd rax, dword [r8 + 0x20]
lea rsi, [rdx + rax*4]
mov eax, r11d
sub eax, r10d
neg eax
sbb rax, rax
and rdi, rax
cmp rdi, rsi
je 0x14001760e
nop dword [rax + rax]
mov rcx, qword [r14 + 0x160]
mov r9d, r11d
movsxd rbx, dword [rdi]
add rcx, r15
mov r10, qword [rcx + 8]
test r10, r10
je 0x1400175b3
mov rax, qword [rcx]
nop dword [rax]
cmp dword [rax], ebx
je 0x140017601
inc r9d
add rax, 4
movsxd r8, r9d
cmp r8, r10
jne 0x1400175a0
mov rdx, qword [r14 + 0x140]
mov r8d, 1
call fcn.140010840
xor r8d, r8d
mov dword [rax], ebx
mov rax, qword [r14 + 0x138]
add rax, 0x10
movsxd rcx, dword [rax]
lea rdx, [rax + rcx]
mov eax, r8d
sub eax, ecx
mov r8d, r13d
neg eax
sbb rax, rax
imul rcx, rbx, 0xb0
and rdx, rax
add rdx, rcx
mov rcx, r14
call fcn.1400162c0
xor r11d, r11d
add rdi, 4
cmp rdi, rsi
jne 0x140017580
add r12, 4
cmp r12, qword [rbp + 0x250]
jne 0x1400174c0
mov r8, qword [rbp + 0x240]
inc r13d
add r8, 0xb0
add r15, 0x18
mov qword [rbp + 0x240], r8
cmp r13d, dword [r14 + 0x150]
jl 0x140017450
movsxd rsi, dword [r14 + 0x150]
mov rdi, qword [r14 + 0x140]
lea rbx, [rsi + rsi*8]
shl rbx, 6
lea rcx, [rbx + 8]
call fcn.140057c1c
mov qword [rax], rbx
lock xadd qword [rdi], rbx
lea rbx, [rax + 8]
xor edx, edx
lea r8, [rsi + rsi*2]
mov rcx, rbx
shl r8, 3
call fcn.14004f130
xor edx, edx
mov qword [r14 + 0x168], rbx
mov ebx, edx
cmp dword [r14 + 0x150], edx
jle 0x140017728
mov r15d, edx
mov rax, qword [r14 + 0x160]
mov rdi, qword [r15 + rax]
mov rax, qword [r15 + rax + 8]
lea rsi, [rdi + rax*4]
cmp rdi, rsi
je 0x140017715
nop dword [rax]
movsxd rax, dword [rdi]
mov r9d, edx
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 0x1400176f6
mov r8, qword [rcx]
cmp dword [r8], ebx
je 0x14001770c
inc r9d
add r8, 4
movsxd rax, r9d
cmp rax, r10
jne 0x1400176e2
mov rdx, qword [r14 + 0x140]
mov r8d, 1
call fcn.140010840
xor edx, edx
mov dword [rax], ebx
add rdi, 4
cmp rdi, rsi
jne 0x1400176c0
inc ebx
add r15, 0x18
cmp ebx, dword [r14 + 0x150]
jl 0x1400176a0
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
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.140007ed0
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.140007ed0
lea rdx, [rbp + 0xf0]
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 + 0xf0], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x100]
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 + 0x100], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x110]
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 + 0x110], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x120]
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 + 0x120], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x130]
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 + 0x130], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x190]
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 + 0x190], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x140]
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 + 0x140], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x150]
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 + 0x150], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
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 + 0x160]
movdqa xmmword [rbp + 0x160], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x170]
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 + 0x170], xmm0
call fcn.140007950
mov rcx, qword [r14 + 0x58]
mov r8d, 4
mov ebx, dword [r14 + 0x150]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
lea rdx, [rbp + 0x180]
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 + 0x180], xmm0
call fcn.140007950
mov r8, qword [r14 + 0x140]
lea r13, [r14 + 0xd0]
mov rdx, qword [r14 + 0x138]
mov rcx, r13
call fcn.1400154d0
mov rbx, qword [r14 + 0x140]
mov ecx, 0x1008
call fcn.140057c1c
mov edi, 0x1000
mov ecx, edi
mov qword [rax], rdi
lock xadd qword [rbx], rcx
mov rbx, qword [r14 + 0x140]
lea r12, [rax + 8]
mov r15d, 0x400
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r15
lea ecx, [r15 + 8]
call fcn.140057c1c
mov edx, r15d
mov qword [rax], r15
lock xadd qword [rbx], rdx
mov rbx, qword [r14 + 0x140]
lea ecx, [r15 + 8]
add rax, 8
mov qword [rbp - 0x78], r15
mov qword [rsp + 0x38], rax
call fcn.140057c1c
mov edx, r15d
mov qword [rax], r15
lock xadd qword [rbx], rdx
mov rbx, qword [r14 + 0x140]
lea ecx, [rdi + 8]
add rax, 8
mov qword [rbp - 0x68], r15
mov qword [rsp + 0x30], rax
call fcn.140057c1c
mov qword [rax], rdi
lock xadd qword [rbx], rdi
add rax, 8
xor ecx, ecx
mov qword [rsp + 0x20], rax
cmp dword [r14 + 0x150], ecx
jle 0x140017d04
mov r13d, ecx
mov r12d, ecx
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 + r13 + 8]
call fcn.140007ed0
mov rcx, rdi
mov dword [rax], ebx
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx]
mov dword [rbp - 0x20], eax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x1e0]
mov qword [rbp - 0x18], rax
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp + 0x1e0], xmm0
call fcn.140007950
mov rdi, qword [rsi + r13]
mov rax, qword [rsi + r13 + 8]
lea rsi, [rdi + rax*4]
cmp rdi, rsi
je 0x140017c54
nop dword [rax]
mov rcx, qword [r14 + 0x60]
mov r8d, 4
mov ebx, dword [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
add rdi, 4
mov dword [rax], ebx
cmp rdi, rsi
jne 0x140017c30
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 + r13 + 8]
call fcn.140007ed0
mov rcx, rdi
mov dword [rax], ebx
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx]
mov dword [rbp - 0x30], eax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x1a0]
mov qword [rbp - 0x28], rax
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp + 0x1a0], xmm0
call fcn.140007950
mov rdi, qword [rsi + r13]
mov rax, qword [rsi + r13 + 8]
lea rsi, [rdi + rax*4]
cmp rdi, rsi
je 0x140017ce4
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.140007ed0
add rdi, 4
mov dword [rax], ebx
cmp rdi, rsi
jne 0x140017cc0
inc r12d
add r13, 0x18
cmp r12d, dword [r14 + 0x150]
jl 0x140017bc6
mov r12, qword [rsp + 0x58]
lea r13, [r14 + 0xd0]
lea rcx, [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1400186ea
mov rax, qword [rbp + 0x28]
xor edx, edx
sub rax, qword [0x140098f18]
movsxd rsi, dword [r14 + 0x150]
mov rdi, qword [r14 + 0x140]
imul rax, rax, 0xf4240
lea rbx, [rsi*4]
div qword [0x140098f10]
lea rcx, [rbx + 8]
add rax, qword [0x140098f20]
mov qword [rbp + 0x240], rax
call fcn.140057c1c
mov qword [rax], rbx
lock xadd qword [rdi], rbx
xor ebx, ebx
mov qword [rbp - 0x80], rsi
lea rcx, [rax + 8]
mov qword [rsp + 0x78], rbx
mov edx, ebx
mov qword [rsp + 0x70], rcx
cmp dword [r14 + 0x150], ebx
jle 0x140017dab
mov eax, ebx
nop word [rax + rax]
mov dword [rax + rcx], 0xffffffff
lea rax, [rax + 4]
mov rcx, qword [rsp + 0x70]
inc edx
cmp edx, dword [r14 + 0x150]
jl 0x140017d90
mov edi, ebx
cmp dword [r14 + 0x150], ebx
jle 0x140017e72
lea rsi, [0x140089ee0]
lea rax, [rsp + 0x70]
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x50], rax
lea rdx, [rbp + 0x258]
movups xmm0, xmmword [rbp - 0x50]
lea rax, [rbp + 0xa0]
mov qword [rbp + 0xa0], rsi
mov qword [rbp - 0x40], rax
lea rcx, [rbp + 0xa0]
movsd xmm1, qword [rbp - 0x40]
lea rax, [rbp + 0xa0]
movsd qword [rbp + 0xb8], xmm1
mov qword [rbp + 0xd8], rax
movups xmmword [rbp + 0xa8], xmm0
mov dword [rbp + 0x258], edi
call fcn.140019000
mov rcx, qword [r14 + 0x80]
mov r8d, 4
mov ebx, eax
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
mov dword [rax], ebx
mov rcx, qword [rbp + 0xd8]
test rcx, rcx
je 0x140017e5c
mov rax, qword [rcx]
lea rdx, [rbp + 0xa0]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
inc edi
cmp edi, dword [r14 + 0x150]
jl 0x140017dc1
mov rcx, qword [rsp + 0x70]
xor ebx, ebx
test rcx, rcx
je 0x140017ea1
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r14 + 0x140]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x80], rbx
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1400186f7
mov rax, qword [rbp + 0x30]
xor edx, edx
sub rax, qword [0x140098f18]
imul rax, rax, 0xf4240
div qword [0x140098f10]
sub rax, qword [rbp + 0x240]
add rax, qword [0x140098f20]
lock xadd qword [0x1400988a8], rax
cmp dword [r14 + 0x150], 0
mov dword [rbp + 0x250], ebx
jle 0x1400186d3
mov qword [rsp + 0x40], rbx
nop
xor ecx, ecx
mov edi, ecx
mov qword [rbp - 0x60], rcx
lea rcx, [rbp + 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1400186dd
mov rax, qword [rbp + 0x38]
xor edx, edx
sub rax, qword [0x140098f18]
xor r10d, r10d
mov rcx, qword [r14 + 0x138]
mov rsi, qword [r14 + 0x140]
add rcx, 0x10
imul rax, rax, 0xf4240
div qword [0x140098f10]
movsxd rdx, dword [rcx]
add rax, qword [0x140098f20]
mov qword [rbp - 0x30], rax
lea r8, [rcx + rdx]
mov ecx, r10d
sub ecx, edx
neg ecx
sbb rcx, rcx
and r8, rcx
movsxd rax, dword [r8 + rbx + 0x28]
mov rbx, qword [rbp - 0x78]
mov rcx, rax
mov dword [rbp + 0x240], eax
mov qword [rbp - 0x20], rax
cmp rax, rbx
jbe 0x140017ff8
lea rax, [rbx + rbx]
test rbx, rbx
jne 0x140017f92
mov eax, 8
cmp rax, rcx
mov rbx, rcx
cmovae rbx, rax
mov rax, qword [rsp + 0x38]
mov qword [rbp - 0x78], rbx
lea rdx, [rbx + 8]
test rax, rax
jne 0x140017fbb
mov rcx, rdx
call fcn.140057c1c
mov rcx, rax
jmp 0x140017fdf
lea r13, [rax - 8]
mov rax, qword [rax - 8]
neg rax
lock xadd qword [rsi], rax
mov rcx, r13
call fcn.14005c684
mov rcx, rax
test rax, rax
je 0x140018704
mov qword [rax], rbx
mov rax, rbx
lock xadd qword [rsi], rax
lea rdx, [rcx + 8]
xor r10d, r10d
mov qword [rsp + 0x38], rdx
jmp 0x140017ffd
mov rdx, qword [rsp + 0x38]
mov rax, qword [r14 + 0x138]
mov r13d, r10d
add rax, 0x10
movsxd rcx, dword [rax]
lea rsi, [rax + rcx]
mov eax, r10d
sub eax, ecx
neg eax
sbb rax, rax
and rsi, rax
add rsi, qword [rsp + 0x40]
mov qword [rsp + 0x68], rsi
cmp dword [rbp + 0x240], edi
je 0x14001817d
mov qword [rsp + 0x50], rdx
lea rax, [rsi + 0x2c]
mov rdx, r10
mov qword [rbp - 0x70], rdx
nop word [rax + rax]
movsxd rcx, dword [rax]
lea rbx, [rax + rcx]
mov eax, r10d
sub eax, ecx
lea rcx, [r14 + 0xd0]
neg eax
sbb rax, rax
and rbx, rax
add rbx, rdx
mov rdx, rsi
movsxd rax, dword [rbx]
test eax, eax
lea r9, [rbx + rax]
cmove r9, r10
call fcn.140015a70
mov rcx, qword [rsp + 0x50]
lea r9, [rbp + 0xe0]
mov byte [rcx], al
mov ecx, 0
movsxd rax, dword [rbx]
mov edx, dword [rbx + 4]
test eax, eax
lea r8, [rbx + rax]
cmove r8, rcx
lea rcx, [r14 + 0xd0]
call fcn.140015840
test al, al
jne 0x140018152
mov rsi, qword [r14 + 0x140]
mov rcx, rdi
inc rdi
mov qword [rsp + 0x48], rcx
mov qword [rbp - 0x60], rdi
mov rax, r12
cmp rdi, r15
jbe 0x140018149
lea rax, [r15 + r15]
test r15, r15
jne 0x1400180e6
mov eax, 8
cmp rax, rdi
mov r15, rdi
cmovae r15, rax
mov qword [rsp + 0x60], r15
lea rbx, [r15*4]
lea rdx, [rbx + 8]
test r12, r12
jne 0x140018110
mov rcx, rdx
call fcn.140057c1c
jmp 0x140018130
mov rax, qword [r12 - 8]
neg rax
lock xadd qword [rsi], rax
lea rcx, [r12 - 8]
call fcn.14005c684
test rax, rax
je 0x140018716
lea r12, [rax + 8]
mov qword [rax], rbx
mov qword [rsp + 0x58], r12
lock xadd qword [rsi], rbx
mov rcx, qword [rsp + 0x48]
mov rax, r12
mov rsi, qword [rsp + 0x68]
mov dword [rax + rcx*4], r13d
mov rdx, qword [rbp - 0x70]
lea rax, [rsi + 0x2c]
inc qword [rsp + 0x50]
add rdx, 8
inc r13d
mov qword [rbp - 0x70], rdx
mov r10d, 0
cmp r13d, dword [rbp + 0x240]
jne 0x140018050
mov rax, qword [r14 + 0x138]
add rax, 0x10
movsxd rcx, dword [rax]
lea rdx, [rax + rcx]
mov eax, r10d
sub eax, ecx
mov rcx, qword [r14 + 0x140]
neg eax
mov qword [rsp + 0x68], rcx
sbb rax, rax
and rdx, rax
mov rax, qword [rsp + 0x40]
movsxd r13, dword [rdx + rax + 0x48]
mov rax, qword [rbp - 0x68]
mov qword [rbp + 0x240], r13
cmp r13, rax
jbe 0x14001823f
test rax, rax
je 0x1400181cc
add rax, rax
jmp 0x1400181d1
mov eax, 8
cmp rax, r13
mov rbx, r13
cmovae rbx, rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x68], rbx
lea rdx, [rbx + 8]
test rax, rax
jne 0x1400181fa
mov rcx, rdx
call fcn.140057c1c
mov rcx, rax
jmp 0x140018223
lea r8, [rax - 8]
mov rax, qword [rax - 8]
neg rax
mov qword [rsp + 0x48], r8
lock xadd qword [rcx], rax
mov rcx, r8
call fcn.14005c684
mov rcx, rax
test rax, rax
je 0x14001872a
mov rdx, qword [rsp + 0x68]
mov qword [rax], rbx
mov rax, rbx
lock xadd qword [rdx], rax
lea rax, [rcx + 8]
xor r10d, r10d
mov qword [rsp + 0x30], rax
test r13, r13
mov rbx, r10
lea r13, [r14 + 0xd0]
je 0x1400182b1
mov r15, qword [rbp + 0x240]
lea r12, [rsi + 0x4c]
mov rdi, qword [rsp + 0x30]
nop
movsxd rcx, dword [r12]
mov eax, r10d
sub eax, ecx
neg eax
sbb rax, rax
lea rdx, [r12 + rcx]
and rdx, rax
movsxd rcx, dword [rdx + rbx*8]
lea rax, [rdx + rbx*8]
test ecx, ecx
mov rdx, rsi
lea r9, [rax + rcx]
mov rcx, r13
cmove r9, r10
call fcn.140015a70
mov byte [rdi + rbx], al
mov r10d, 0
inc rbx
cmp rbx, r15
jne 0x140018260
mov r15, qword [rsp + 0x60]
mov rdi, qword [rbp - 0x60]
mov r12, qword [rsp + 0x58]
lea rcx, [rbp + 0x40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x14001873e
mov rax, qword [rbp + 0x40]
xor edx, edx
sub rax, qword [0x140098f18]
imul rax, rax, 0xf4240
div qword [0x140098f10]
sub rax, qword [rbp - 0x30]
add rax, qword [0x140098f20]
lock xadd qword [0x1400988a0], rax
mov rbx, qword [r14 + 0x98]
mov r8d, 4
mov rdx, qword [rbx + 0x10]
lea rcx, [rbx + 0x18]
call fcn.140007ed0
mov rcx, rbx
mov dword [rax], edi
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx]
mov dword [rbp + 0x90], eax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x1b0]
mov qword [rbp + 0x98], rax
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rbp + 0x1b0], xmm0
call fcn.140007950
lea rsi, [r12 + rdi*4]
mov rdi, r12
cmp r12, rsi
je 0x140018374
nop
mov rcx, qword [r14 + 0x60]
mov r8d, 4
mov ebx, dword [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
add rdi, 4
mov dword [rax], ebx
cmp rdi, rsi
jne 0x140018350
mov rcx, qword [r14 + 0x88]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
mov rbx, qword [rbp - 0x20]
lea rdx, [rbp + 0x1c0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x60]
mov eax, dword [rcx]
mov dword [rbp + 0x80], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x88]
mov qword [rbp + 0x88], rax
movaps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x1c0], xmm0
call fcn.140007950
mov rax, qword [rsp + 0x38]
mov rdi, rax
lea rsi, [rax + rbx]
cmp rax, rsi
je 0x140018404
nop
mov rcx, qword [r14 + 0x60]
mov r8d, 1
movzx ebx, byte [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
inc rdi
mov byte [rax], bl
cmp rdi, rsi
jne 0x1400183e0
mov rcx, qword [r14 + 0x90]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
mov rbx, qword [rbp + 0x240]
lea rdx, [rbp + 0x1d0]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x60]
mov eax, dword [rcx]
mov dword [rbp - 0x50], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x90]
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp + 0x1d0], xmm0
call fcn.140007950
mov rsi, qword [rsp + 0x30]
mov rdi, rsi
lea rax, [rsi + rbx]
cmp rsi, rax
je 0x140018499
mov r15, rax
nop dword [rax + rax]
mov rcx, qword [r14 + 0x60]
mov r8d, 1
movzx ebx, byte [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
inc rdi
mov byte [rax], bl
cmp rdi, r15
jne 0x140018470
mov r15, qword [rsp + 0x60]
mov edi, dword [rbp + 0x250]
mov rcx, r14
mov edx, edi
call fcn.1400167f0
mov rbx, qword [rsp + 0x40]
inc edi
add rbx, 0xb0
mov dword [rbp + 0x250], edi
mov qword [rsp + 0x40], rbx
cmp edi, dword [r14 + 0x150]
jl 0x140017f00
xor ebx, ebx
test r12, r12
je 0x1400184f4
mov rdx, qword [r12 - 8]
lea rcx, [r12 - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14001851a
mov rdx, qword [rax - 8]
lea rcx, [rax - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
test rsi, rsi
je 0x14001853b
mov rdx, qword [rsi - 8]
lea rcx, [rsi - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x140018561
mov rdx, qword [rax - 8]
lea rcx, [rax - 8]
mov rax, qword [r14 + 0x140]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rcx, qword [r13]
test rcx, rcx
je 0x140018583
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r13 + 0x20]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x1400185a5
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r13 + 0x20]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rcx, qword [r13 + 0x28]
test rcx, rcx
je 0x1400185c7
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r13 + 0x20]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov qword [r13], rbx
mov qword [r13 + 8], rbx
mov qword [r13 + 0x10], 0
mov dword [r13 + 0x18], ebx
mov qword [r13 + 0x28], rbx
mov rcx, qword [r13 + 0x30]
test rcx, rcx
je 0x140018601
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r13 + 0x50]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rcx, qword [r13 + 0x38]
test rcx, rcx
je 0x140018623
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r13 + 0x50]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov rcx, qword [r13 + 0x58]
test rcx, rcx
je 0x140018645
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [r13 + 0x50]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
mov qword [r13 + 0x30], rbx
mov r8d, 4
mov qword [r13 + 0x38], rbx
mov qword [r13 + 0x40], 0
mov dword [r13 + 0x48], ebx
mov qword [r13 + 0x58], rbx
mov rcx, qword [r14 + 0x58]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007ed0
mov rdx, qword [rbp + 0x248]
mov dword [rax], 0xeaeaf2a7
mov rcx, qword [r14 + 0x20]
call fcn.140007b80
mov r8, qword [rbp + 0x60]
movzx edx, al
mov rax, qword [rbp + 0x68]
mov rcx, qword [rax + 8]
mov qword [rax + 0x10], r8
cmp qword [rcx + 0x20], r8
jbe 0x1400186b0
mov rcx, qword [rcx]
mov qword [rax + 8], rcx
cmp qword [rcx + 0x20], r8
ja 0x1400186a3
mov rax, qword [rax + 8]
sub r8, qword [rax + 0x20]
mov qword [rax + 0x18], r8
movzx eax, dl
add rsp, 0x2f8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rsi, qword [rsp + 0x30]
jmp 0x1400184d1
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3
mov r8, r13
lea rcx, str.out_of_memory_reallocating__d_bytes_at__p
mov edx, ebx
call fcn.140013b50
int3
lea r8, [r12 - 8]
mov edx, ebx
lea rcx, str.out_of_memory_reallocating__d_bytes_at__p
call fcn.140013b50
int3
mov r8, qword [rsp + 0x48]
lea rcx, str.out_of_memory_reallocating__d_bytes_at__p
mov edx, ebx
call fcn.140013b50
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3