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

Disassembly:
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xb0
mov r13d, ecx
lea rbx, [0x1400b3ae0]
mov ecx, dword [0x1400b3c50]
mov edi, 0xa
mov esi, ecx
shl rsi, 2
mov rdx, qword [rbx]
mov r8d, 0x1388
call fcn.140008810
lea rbx, [rbx + 8]
sub rdi, 1
je 0x140019b10
mov ecx, dword [0x1400b3c50]
jmp 0x140019af0
mov edx, esi
lea rcx, str._n3._Memory_copy_to_GPU__blocks_of__d_bytes__n
call fcn.140001020
xor r12d, r12d
mov r14d, r12d
nop dword [rax]
nop dword [rax + rax]
mov edi, r12d
lea rbx, [0x1400b3b30]
nop word [rax + rax]
mov rax, qword [rbx - 0x50]
xor r9d, r9d
mov rdx, qword [rbx]
xor r8d, r8d
mov rcx, qword [0x1400b04b0]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.OpenCL.dll_clEnqueueWriteBuffer]
mov ebp, eax
test eax, eax
jne 0x14001a530
inc edi
add rbx, 8
cmp edi, 0xa
jb 0x140019b40
mov rcx, qword [0x1400b04b0]
call qword [sym.imp.OpenCL.dll_clFinish]
inc r14d
cmp r14d, 2
jb 0x140019b30
cmp dword [0x1400b0488], r12d
mov qword [rsp + 0xa8], r15
movaps xmmword [rsp + 0x60], xmm9
jne 0x140019bcc
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], 1
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rsp + 0xf8]
xor ebp, ebp
movsd xmm9, qword [0x140025c98]
cqo
idiv rcx
movaps xmm1, xmm9
mov r14d, ebp
mov r15, rax
cvtsi2sd xmm0, rcx
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
mulsd xmm1, xmm0
cvttsd2si r12d, xmm1
test r13d, r13d
je 0x140019c9e
nop word [rax + rax]
mov edi, ebp
lea rbx, [0x1400b3b30]
nop dword [rax]
mov rax, qword [rbx - 0x50]
xor r9d, r9d
mov rdx, qword [rbx]
xor r8d, r8d
mov rcx, qword [0x1400b04b8]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.OpenCL.dll_clEnqueueWriteBuffer]
mov ebp, eax
test eax, eax
jne 0x140019d3a
inc edi
add rbx, 8
mov ebp, eax
cmp edi, 0xa
jb 0x140019c40
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
inc r14d
cmp r14d, r13d
jb 0x140019c30
cmp dword [0x1400b0488], 0
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x70], xmm8
jne 0x140019cd4
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], 1
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
movaps xmm2, xmm9
mov rax, qword [rsp + 0xf8]
xorps xmm0, xmm0
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, r15d
cdqe
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, r12d
sub rdx, rax
mulsd xmm2, xmm1
cvttsd2si ecx, xmm2
xorps xmm2, xmm2
movsxd rax, ecx
add rdx, rax
js 0x140019d95
cvtsi2sd xmm2, rdx
jmp 0x140019daa
mov ecx, ebp
call fcn.140016860
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140021214]
mov rbx, rax
call fcn.140001350
mov rcx, rax
mov edx, ebp
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140021210]
call fcn.140001350
mov rcx, rax
mov rdx, rbx
call fcn.140001350
mov rcx, rax
lea rdx, str._:_Copying_h_ktab_clEnqueueWriteBuffer__n
call fcn.140001350
mov eax, 0x3b9aca01
jmp 0x14001a160
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm2, rax
addsd xmm2, xmm2
lea eax, [r14 + r14*4]
xorps xmm3, xmm3
lea edx, [rax + rax]
imul rdx, rsi
test rdx, rdx
js 0x140019dc4
cvtsi2sd xmm3, rdx
jmp 0x140019ddc
mov rax, rdx
mov rcx, rdx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm3, rcx
addsd xmm3, xmm3
divsd xmm3, xmm2
lea rcx, str._n__Standard_copy__standard_queue:_n_8d_MB_in__6.1f_ms___6.1f_MB_s___real__n
shr rdx, 0x14
mulsd xmm2, qword [0x140025c28]
movq r9, xmm3
movq r8, xmm2
call fcn.140001020
cmp dword [rsp + 0xf0], 0
xorps xmm8, xmm8
xorps xmm7, xmm7
xorps xmm6, xmm6
mov r15, 0xffffffffffffffff
mov r13d, ebp
jbe 0x14001a0c5
cmp dword [0x1400b0488], 0
jne 0x140019e44
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], 1
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
lea rdi, [0x1400b3b30]
mov rax, qword [rsp + 0xf8]
xorps xmm0, xmm0
cqo
movaps xmm2, xmm9
idiv rcx
cvtsi2sd xmm0, rcx
mov r14, rax
mov ebx, ebp
xorps xmm1, xmm1
divsd xmm2, xmm0
cvtsi2sd xmm1, rdx
mulsd xmm2, xmm1
cvttsd2si r12d, xmm2
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rdi]
lea rax, [0x1400b3a40]
mov ecx, ebx
xor r9d, r9d
xor r8d, r8d
lea rax, [rax + rcx*8]
mov rcx, qword [0x1400b04b0]
mov qword [rsp + 0x40], rax
mov rax, qword [rdi - 0x50]
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.OpenCL.dll_clEnqueueWriteBuffer]
mov ebp, eax
test eax, eax
jne 0x14001a494
inc ebx
add rdi, 8
mov ebp, eax
cmp ebx, 0xa
jb 0x140019ea0
mov rcx, qword [0x1400b04b0]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], ebp
jne 0x140019f22
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], 1
lea rcx, [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rsp + 0x100]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, r14d
cdqe
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, r12d
sub rdx, rax
xorps xmm0, xmm0
mulsd xmm2, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x140019f88
cvtsi2sd xmm0, rdx
jmp 0x140019f9d
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
xor r12d, r12d
addsd xmm7, xmm0
mov r14d, r12d
lea rdi, [0x1400b3a40]
nop
mov rcx, qword [rdi]
lea r9, [rsp + 0x50]
mov edx, 0x1282
mov qword [rsp + 0x20], r12
mov r8d, 8
call qword [sym.imp.OpenCL.dll_clGetEventProfilingInfo]
mov ebp, eax
test eax, eax
jne 0x14001a180
mov rcx, qword [rdi]
lea r9, [rsp + 0x108]
mov edx, 0x1283
mov qword [rsp + 0x20], r12
lea r8d, [rax + 8]
call qword [sym.imp.OpenCL.dll_clGetEventProfilingInfo]
mov ebp, eax
test eax, eax
jne 0x14001a0f4
mov rcx, qword [rdi]
call qword [sym.imp.OpenCL.dll_clReleaseEvent]
mov ebp, eax
test eax, eax
je 0x14001a061
mov ecx, eax
call fcn.140016860
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, [0x140021214]
mov rbx, rax
call fcn.140001350
mov rcx, rax
mov edx, ebp
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140021210]
call fcn.140001350
mov rcx, rax
mov rdx, rbx
call fcn.140001350
mov rcx, rax
lea rdx, str._:_Release_in_event_object.__clReleaseEvent__n
call fcn.140001350
mov rdx, qword [rsp + 0x108]
xorps xmm0, xmm0
sub rdx, qword [rsp + 0x50]
js 0x14001a07a
cvtsi2sd xmm0, rdx
jmp 0x14001a092
mov rax, rdx
mov rcx, rdx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
cmp r15, rdx
addsd xmm6, xmm0
cmovb rdx, r15
inc r14d
add rdi, 8
mov r15, rdx
cmp r14d, 0xa
jb 0x140019fb0
inc r13d
mov rbp, r12
cmp r13d, dword [rsp + 0xf0]
jb 0x140019e24
lea eax, [r13*4]
xorps xmm3, xmm3
add eax, r13d
lea ecx, [rax + rax]
imul rcx, rsi
mov rbx, rcx
shr rbx, 0x14
test rcx, rcx
js 0x14001a1d1
cvtsi2sd xmm3, rcx
jmp 0x14001a1e6
mov ecx, ebp
call fcn.140016860
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, [0x140021214]
mov rbx, rax
call fcn.140001350
mov rcx, rax
mov edx, ebp
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140021210]
call fcn.140001350
mov rcx, rax
mov rdx, rbx
call fcn.140001350
mov rcx, rax
lea rdx, str._:_in_clGetEventProfilingInfo._endTime__n
call fcn.140001350
mov eax, 0x3b9aca01
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov r15, qword [rsp + 0xa8]
movaps xmm9, xmmword [rsp + 0x60]
add rsp, 0xb0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, ebp
call fcn.140016860
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, [0x140021214]
mov rbx, rax
call fcn.140001350
mov rcx, rax
mov edx, ebp
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140021210]
call fcn.140001350
mov rcx, rax
mov rdx, rbx
call fcn.140001350
mov rcx, rax
lea rdx, str._:_in_clGetEventProfilingInfo._startTime__n
jmp 0x14001a140
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm3, rax
addsd xmm3, xmm3
divsd xmm3, xmm7
lea rcx, str._n__Standard_copy__profiled_queue:_n_8d_MB_in__6.1f_ms___6.1f_MB_s___real__n
mov edx, ebx
mulsd xmm7, qword [0x140025c28]
movq r9, xmm3
movaps xmm2, xmm7
movq r8, xmm7
call fcn.140001020
imul ecx, r13d, 0x2710
xorps xmm3, xmm3
imul rcx, rsi
test rcx, rcx
js 0x14001a227
cvtsi2sd xmm3, rcx
jmp 0x14001a23c
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm3, rax
addsd xmm3, xmm3
movsd xmm7, qword [0x140025c18]
lea rcx, str._8d_MB_in__6.1f_ms___6.1f_MB_s___profiled_data__n
divsd xmm3, xmm6
mov edx, ebx
mulsd xmm6, xmm7
movq r9, xmm3
movaps xmm2, xmm6
movq r8, xmm6
call fcn.140001020
xorps xmm2, xmm2
test r15, r15
js 0x14001a276
cvtsi2sd xmm2, r15
jmp 0x14001a28c
mov rax, r15
and r15d, 1
shr rax, 1
or rax, r15
cvtsi2sd xmm2, rax
addsd xmm2, xmm2
imul rcx, rsi, 0x3e8
xorps xmm3, xmm3
test rcx, rcx
js 0x14001a2a2
cvtsi2sd xmm3, rcx
jmp 0x14001a2b7
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm3, rax
addsd xmm3, xmm3
divsd xmm3, xmm2
lea rcx, str._8d_MB_in__6.1f_ms___6.1f_MB_s___profiled_data__peak__n
mov rdx, rsi
shr rdx, 0x14
mulsd xmm2, xmm7
movq r9, xmm3
movq r8, xmm2
call fcn.140001020
mov r13d, dword [rsp + 0xf0]
mov r14d, ebp
test r13d, r13d
je 0x14001a47a
cmp dword [0x1400b0488], 0
jne 0x14001a310
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], 1
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
lea rdi, [0x1400b3b30]
mov rax, qword [rsp + 0xf8]
xorps xmm0, xmm0
cqo
movaps xmm2, xmm9
idiv rcx
cvtsi2sd xmm0, rcx
mov r15, rax
mov ebx, ebp
xorps xmm1, xmm1
divsd xmm2, xmm0
cvtsi2sd xmm1, rdx
mulsd xmm2, xmm1
cvttsd2si r12d, xmm2
nop
mov rcx, qword [rdi - 0x50]
xor r9d, r9d
mov rdx, qword [rdi]
xor r8d, r8d
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x28], rcx
mov rcx, qword [0x1400b04b0]
mov qword [rsp + 0x20], rsi
test bl, 1
jne 0x14001a398
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clEnqueueWriteBuffer]
mov ebp, eax
test eax, eax
jne 0x14001a494
inc ebx
add rdi, 8
mov ebp, eax
cmp ebx, 0xa
jb 0x14001a360
mov rcx, qword [0x1400b04b0]
call qword [sym.imp.OpenCL.dll_clFinish]
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], ebp
jne 0x14001a3ee
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], 1
lea rcx, [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rsp + 0x100]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, r15d
cdqe
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, r12d
sub rdx, rax
xorps xmm0, xmm0
mulsd xmm2, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x14001a454
cvtsi2sd xmm0, rdx
jmp 0x14001a469
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
inc r14d
addsd xmm8, xmm0
cmp r14d, r13d
jb 0x14001a2f0
lea eax, [r14 + r14*4]
xorps xmm3, xmm3
lea edx, [rax + rax]
imul rdx, rsi
test rdx, rdx
js 0x14001a4e5
cvtsi2sd xmm3, rdx
jmp 0x14001a4fd
mov ecx, ebp
call fcn.140016860
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140021214]
mov rbx, rax
call fcn.140001350
mov rcx, rax
mov edx, ebp
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140021210]
call fcn.140001350
mov rcx, rax
mov rdx, rbx
call fcn.140001350
mov rcx, rax
lea rdx, str._:_Copying_h_ktab_clEnqueueWriteBuffer__n
jmp 0x14001a140
mov rax, rdx
mov rcx, rdx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm3, rcx
addsd xmm3, xmm3
divsd xmm3, xmm8
lea rcx, str._n__Standard_copy__two_queues:_n_8d_MB_in__6.1f_ms___6.1f_MB_s___real__n
shr rdx, 0x14
mulsd xmm8, qword [0x140025c28]
movq r9, xmm3
movaps xmm2, xmm8
movq r8, xmm2
call fcn.140001020
xor eax, eax
jmp 0x14001a14a
mov ecx, ebp
call fcn.140016860
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140021214]
mov rbx, rax
call fcn.140001350
mov rcx, rax
mov edx, ebp
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140021210]
call fcn.140001350
mov rcx, rax
mov rdx, rbx
call fcn.140001350
mov rcx, rax
lea rdx, str._:_Copying_h_ktab_clEnqueueWriteBuffer__n
call fcn.140001350
mov eax, 0x3b9aca01
jmp 0x14001a16e