Function at 0x140018760
Capabilities:
Check for time delay via queryperformancecounter
Terminate process

Disassembly:
mov rax, rsp
mov dword [rax + 8], ecx
push rbp
push rbx
push rdi
push r12
push r13
push r14
lea rbp, [rax - 0x608]
sub rsp, 0x6d8
mov r14d, ecx
mov edx, ecx
movaps xmmword [rax - 0x68], xmm7
lea rcx, str._n4._GPU_sieve___d_iterations_each_n
movaps xmmword [rax - 0x88], xmm9
movabs r12, 0x24cb016ea
mov dword [0x1400b3bf8], 0x3f49b2f
call fcn.140001020
cmp dword [0x1400b0488], 0
mov r13d, 1
jne 0x1400187d1
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movsd xmm9, qword [0x140025c98]
cqo
idiv rcx
cvtsi2sd xmm0, rcx
xor ecx, ecx
mov rbx, rax
movaps xmm1, xmm9
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
mulsd xmm1, xmm0
cvttsd2si edi, xmm1
call fcn.1400152c0
cmp dword [0x1400b0488], 0
jne 0x140018841
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, ebx
cdqe
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, edi
sub rdx, rax
mulsd xmm2, xmm1
xorps xmm1, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x1400188a4
cvtsi2sd xmm1, rdx
jmp 0x1400188b9
mov rax, rdx
and edx, r13d
shr rax, 1
or rax, rdx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
movsd xmm7, qword [0x140025c28]
lea rcx, str._n_gpusieve_init:__f_ms__CPU_work__n
mov qword [rsp + 0x6d0], rsi
mov qword [rsp + 0x6c8], r15
mulsd xmm1, xmm7
movaps xmmword [rsp + 0x6b0], xmm6
movaps xmmword [rsp + 0x670], xmm10
movaps xmmword [rsp + 0x660], xmm11
movq rdx, xmm1
call fcn.140001020
cmp dword [0x1400b3c64], 0
jne 0x140019aab
cmp dword [0x1400b0488], 0
jne 0x14001892a
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
mov rdi, rax
cvtsi2sd xmm1, rdx
divsd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si esi, xmm2
test r14d, r14d
je 0x1400189b3
mov rbx, r14
lea rcx, [0x1400b3a40]
mov dword [0x1400b3bf8], 0x8b1c65
call fcn.14000be70
lea rcx, [0x1400b3a40]
mov dword [0x1400b3bf8], 0x3f49b2f
call fcn.14000be70
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFlush]
sub rbx, r13
jne 0x140018975
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], 0
jne 0x1400189dd
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
movsd xmm11, qword [0x140025c38]
cqo
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, edi
cdqe
xorps xmm1, xmm1
xorps xmm10, xmm10
imul rcx, rax, 0xf4240
cvtsi2sd xmm1, rdx
movsxd rax, esi
divsd xmm2, xmm0
sub rcx, rax
movaps xmm6, xmm11
mulsd xmm2, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm10, r14
cvttsd2si edx, xmm2
divsd xmm6, xmm10
movsxd rax, edx
add rcx, rax
js 0x140018a5b
cvtsi2sd xmm1, rcx
jmp 0x140018a70
mov rax, rcx
and ecx, r13d
shr rax, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mulsd xmm1, qword [0x140025c20]
lea rcx, str._gpusieve_init_exponent:__f_ms__CalcModularInverses__n
mulsd xmm1, xmm6
movq rdx, xmm1
call fcn.140001020
cmp dword [0x1400b3c64], 0
jne 0x140019aab
cmp dword [0x1400b0488], 0
jne 0x140018ab7
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
mov rdi, rax
cvtsi2sd xmm1, rdx
divsd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si esi, xmm2
test r14d, r14d
je 0x140018b33
mov rbx, r14
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [0x1400b0490]
mov r9, r12
inc ecx
mov edx, 0x100
call fcn.140014f20
mov eax, dword [0x1400b3c24]
add r12, rax
sub rbx, r13
jne 0x140018b10
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], 0
jne 0x140018b5d
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, edi
cdqe
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, esi
sub rdx, rax
mulsd xmm2, xmm1
xorps xmm1, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x140018bc0
cvtsi2sd xmm1, rdx
jmp 0x140018bd5
mov rax, rdx
and edx, r13d
shr rax, 1
or rax, rdx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mulsd xmm1, xmm7
lea rcx, str._gpusieve_init_class:__f_ms__CalcBitToClear__n
mulsd xmm1, xmm6
movq rdx, xmm1
call fcn.140001020
cmp dword [0x1400b3c64], 0
jne 0x140019aab
cmp dword [0x1400b0488], 0
jne 0x140018c18
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
mov rdi, rax
cvtsi2sd xmm1, rdx
divsd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si esi, xmm2
test r14d, r14d
je 0x140018c8b
mov rbx, r14
mov edx, dword [0x1400b3c24]
lea rcx, [0x1400b3a40]
shl rdx, 8
call fcn.14000a2b0
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFlush]
sub rbx, r13
jne 0x140018c63
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], 0
jne 0x140018cb5
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, edi
cdqe
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, esi
sub rdx, rax
mulsd xmm2, xmm1
xorps xmm1, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x140018d18
cvtsi2sd xmm1, rdx
jmp 0x140018d2d
mov rax, rdx
and edx, r13d
shr rax, 1
or rax, rdx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mulsd xmm1, xmm7
lea rcx, str._gpusieve:__f_ms__SegSieve__n
mulsd xmm1, xmm6
movq rdx, xmm1
call fcn.140001020
cmp dword [0x1400b3c64], 0
jne 0x140019aab
mov ecx, dword [0x1400b3c08]
cmp ecx, 0x36
jae 0x140018d65
mov eax, 0xc8
jmp 0x140018de1
cmp ecx, 0x136
jae 0x140018d74
mov eax, 0x64
jmp 0x140018de1
cmp ecx, 0x736
jae 0x140018d83
mov eax, 0x4c
jmp 0x140018de1
cmp ecx, 0x5536
jae 0x140018d92
mov eax, 0x3c
jmp 0x140018de1
cmp ecx, 0x8535
jae 0x140018da1
mov eax, 0x30
jmp 0x140018de1
cmp ecx, 0xf935
jae 0x140018db0
mov eax, 0x2e
jmp 0x140018de1
cmp ecx, 0x1c235
jae 0x140018dbf
mov eax, 0x2c
jmp 0x140018de1
cmp ecx, 0x3a635
jae 0x140018dce
mov eax, 0x2a
jmp 0x140018de1
cmp ecx, 0x86635
mov eax, 0x26
mov edx, 0x28
cmovb eax, edx
mov edi, dword [0x1400b3c28]
mov ebx, 0xa
imul rdi, rax
movabs rax, 0x47ae147ae147ae15
mul rdi
mov eax, 0x400
sub rdi, rdx
shr rdi, 1
add rdi, rdx
mov edx, dword [0x1400b3bf8]
shr rdi, 6
cmp rdx, rax
jbe 0x140018e2a
nop word [rax + rax]
inc ebx
rol rax, 1
cmp rax, rdx
jb 0x140018e20
add ebx, 0xfffffffa
mov eax, edx
mov ecx, ebx
shr eax, cl
cmp eax, 0x45
jae 0x140018e4d
nop dword [rax + rax]
dec ebx
mov eax, edx
mov ecx, ebx
shr eax, cl
cmp eax, 0x45
jb 0x140018e40
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm0
cmp eax, 0x4b
jae 0x140018e70
lea ecx, [rax - 0x3c]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x58], eax
jmp 0x140018efd
cmp eax, 0x5a
jae 0x140018e83
lea ecx, [rax - 0x4b]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x5c], eax
jmp 0x140018efd
cmp eax, 0x69
jae 0x140018e96
lea ecx, [rax - 0x5a]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x60], eax
jmp 0x140018efd
cmp eax, 0x78
jae 0x140018ea9
lea ecx, [rax - 0x69]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x64], eax
jmp 0x140018efd
cmp eax, 0x87
jae 0x140018ebe
lea ecx, [rax - 0x78]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x68], eax
jmp 0x140018efd
cmp eax, 0x96
jae 0x140018ed6
lea ecx, [rax - 0x87]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x6c], eax
jmp 0x140018efd
cmp eax, 0xa5
jae 0x140018eee
lea ecx, [rax - 0x96]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x70], eax
jmp 0x140018efd
lea ecx, [rax - 0xa5]
mov eax, r13d
shl eax, cl
mov dword [rsp + 0x74], eax
cmp dword [0x1400b0488], 0
jne 0x140018f1a
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
mov r14, rax
mov eax, dword [rbp + 0x610]
cvtsi2sd xmm1, rdx
divsd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si r15d, xmm2
test eax, eax
je 0x140019016
mov r8d, dword [0x1400b3c24]
mov esi, eax
nop word [rax + rax]
movups xmm0, xmmword [rsp + 0x58]
xor edx, edx
mov eax, r12d
movups xmm1, xmmword [rsp + 0x68]
and eax, 0x7fff
mov dword [rsp + 0x28], ebx
mov dword [rbp - 0x80], eax
lea r9, [rbp - 0x80]
mov rax, r12
movaps xmmword [rbp + 0x40], xmm0
shr rax, 0xf
mov rcx, r12
shr rcx, 0x1e
and eax, 0x7fff
and ecx, 0x7fff
mov dword [rbp - 0x7c], eax
mov dword [rbp - 0x78], ecx
mov eax, r8d
div dword [0x1400b3c28]
mov rcx, r12
movaps xmmword [rbp + 0x50], xmm1
shr rcx, 0x2d
mov edx, eax
and ecx, 0x7fff
lea rax, [rbp + 0x40]
mov dword [rbp - 0x74], ecx
mov r8d, edi
mov rcx, r12
mov qword [rsp + 0x20], rax
shr rcx, 0x3c
mov dword [rbp - 0x70], ecx
mov rcx, qword [0x14002a8b8]
call fcn.14000f9d0
mov r8d, dword [0x1400b3c24]
add r12, r8
sub rsi, r13
jne 0x140018f80
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], 0
jne 0x140019040
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp + 0x618]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp + 0x618]
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, r15d
sub rdx, rax
xorps xmm0, xmm0
mulsd xmm2, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x1400190a4
cvtsi2sd xmm0, rdx
jmp 0x1400190b9
mov rax, rdx
and edx, r13d
shr rax, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
mov eax, dword [0x1400b3c24]
lea rcx, str._tf:__f_ms___f_M_s__raw_rate__cl_barrett15_69_gs__n_n
xorps xmm2, xmm2
mulsd xmm6, xmm0
cvtsi2sd xmm2, rax
mulsd xmm6, xmm7
mulsd xmm2, xmm10
movaps xmm1, xmm6
movq rdx, xmm6
divsd xmm2, xmm0
movq r8, xmm2
call fcn.140001020
cmp dword [0x1400b3c64], 0
jne 0x140019aab
xor r15d, r15d
lea rdx, [0x14001ef24]
lea rcx, [0x1400b3f03]
mov ebx, r15d
mov edi, r15d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov r14, rax
test rax, rax
jne 0x14001915b
cmp dword [0x1400b0f54], ebx
jne 0x140019153
lea r8, [0x1400b3f03]
mov dword [0x1400b0f54], r13d
lea rdx, str.Cannot_load_INI_file___.55s_
lea rcx, [rbp - 0x40]
call fcn.140001790
lea rcx, [rbp - 0x40]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_perror]
mov edi, r13d
jmp 0x140019240
mov r8, r14
lea rcx, [rbp + 0xe0]
mov edx, 0x200
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
je 0x140019237
nop dword [rax]
test ebx, ebx
jne 0x140019237
lea r8d, [rbx + 0x11]
lea rdx, str.TestGPUSieveSizes
lea rcx, [rbp + 0xe0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x140019219
cmp byte [rbp + 0xf1], 0x3d
jne 0x140019219
lea rbx, [rbp + 0xf2]
mov edi, r15d
lea rsi, [rbp + 0x360]
nop
mov eax, edi
lea r8, [rbp + 0x2e0]
mov r9, rsi
lea rdx, str._u__512s
mov rcx, rbx
lea r8, [r8 + rax*4]
call fcn.1400017f0
test eax, eax
je 0x140019217
lea edx, [rdi + 1]
mov edi, edx
cmp eax, 2
jb 0x140019217
movzx eax, byte [rsi]
test al, al
je 0x140019217
mov rcx, rsi
mov rsi, rbx
cmp al, 0x2c
jne 0x140019208
lea rax, [rcx + 1]
mov rcx, rax
movzx eax, byte [rax]
cmp al, 0x20
lea rbx, [rcx + 1]
cmovne rbx, rcx
cmp edx, 0x1e
jb 0x1400191c0
mov ebx, edi
mov r8, r14
lea rcx, [rbp + 0xe0]
mov edx, 0x200
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
jne 0x140019180
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
lea rdx, [0x14001ef24]
mov ebx, r15d
lea rcx, [0x1400b3f03]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov r14, rax
test rax, rax
jne 0x140019297
cmp dword [0x1400b0f54], ebx
jne 0x14001928f
lea r8, [0x1400b3f03]
mov dword [0x1400b0f54], r13d
lea rdx, str.Cannot_load_INI_file___.55s_
lea rcx, [rbp - 0x40]
call fcn.140001790
lea rcx, [rbp - 0x40]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_perror]
mov r15d, r13d
jmp 0x14001937d
mov r8, r14
lea rcx, [rbp + 0xe0]
mov edx, 0x200
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
je 0x140019374
xor r13d, r13d
test ebx, ebx
jne 0x14001936e
lea r8d, [rbx + 0xf]
lea rdx, str.TestSievePrimes
lea rcx, [rbp + 0xe0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x140019350
cmp byte [rbp + 0xef], 0x3d
jne 0x140019350
lea rbx, [rbp + 0xf0]
mov r15d, r13d
lea rsi, [rbp + 0x360]
mov eax, r15d
lea r8, [rbp + 0x60]
mov r9, rsi
lea rdx, str._u__512s
mov rcx, rbx
lea r8, [r8 + rax*4]
call fcn.1400017f0
test eax, eax
je 0x14001934d
lea edx, [r15 + 1]
mov r15d, edx
cmp eax, 2
jb 0x14001934d
movzx eax, byte [rsi]
test al, al
je 0x14001934d
mov rcx, rsi
mov rsi, rbx
cmp al, 0x2c
jne 0x14001933e
lea rax, [rcx + 1]
mov rcx, rax
movzx eax, byte [rax]
cmp al, 0x20
lea rbx, [rcx + 1]
cmovne rbx, rcx
cmp edx, 0x1e
jb 0x1400192f6
mov ebx, r15d
mov r8, r14
lea rcx, [rbp + 0xe0]
mov edx, 0x200
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
jne 0x1400192b8
mov r13d, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
cmp edi, 1
jge 0x1400193f4
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, [0x1400b3f03]
lea rdx, str.__Could_not_read_TestGPUSieveSizes_from__s___not_testing_GPU_Sieve_n
call fcn.140001740
mov eax, 0xffffffff
movaps xmm11, xmmword [rsp + 0x660]
movaps xmm10, xmmword [rsp + 0x670]
movaps xmm6, xmmword [rsp + 0x6b0]
mov r15, qword [rsp + 0x6c8]
mov rsi, qword [rsp + 0x6d0]
movaps xmm7, xmmword [rsp + 0x6a0]
movaps xmm9, xmmword [rsp + 0x680]
add rsp, 0x6d8
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
cmp r15d, 1
jge 0x140019418
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, [0x1400b3f03]
lea rdx, str.__Could_not_read_TestSievePrimes_from__s___not_testing_GPU_Sieve_n
jmp 0x14001939e
mov eax, 0x1e
movaps xmmword [rsp + 0x690], xmm8
cmp r15d, eax
lea rcx, [rbp + 0xe8]
xorps xmm8, xmm8
mov r8d, 0xe8
cmovg r15d, eax
movsd qword [rbp + 0xe0], xmm8
xor edx, edx
call sub.VCRUNTIME140.dll_memset
xor edx, edx
movsd qword [rbp + 0x360], xmm8
mov r8d, 0xe8
lea rcx, [rbp + 0x368]
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
mov dword [0x1400b3c28], 0x2000
xor eax, eax
lea rcx, str.GPU_sieve_raw_rate__input_rate_M_s__nSievePrimes:
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp + 0x30], rax
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
call fcn.140001020
mov esi, r15d
test r15d, r15d
je 0x1400194e5
xor ebx, ebx
mov edx, dword [rbp + rbx*4 + 0x60]
cmp edx, 0x106a36
jae 0x1400194c8
cmp edx, 0x36
ja 0x1400194cd
mov edx, 0x36
jmp 0x1400194cd
mov edx, 0x106a36
lea rcx, str.__7u
mov dword [rbp + rbx*4 + 0x60], edx
call fcn.140001020
inc rbx
cmp rbx, rsi
jl 0x1400194b0
lea rcx, str._nGPUSieveSize
call fcn.140001020
xor ebx, ebx
movsxd rax, edi
mov qword [rbp - 0x50], rax
mov dword [rbp + 0x620], ebx
test edi, edi
jle 0x14001989c
mov edi, ebx
mov qword [rsp + 0x50], rbx
nop
mov edx, dword [rbp + rdi*4 + 0x2e0]
lea rcx, str._n_6d_MBit
call fcn.140001020
mov ecx, dword [rbp + rdi*4 + 0x2e0]
xorps xmm0, xmm0
shl ecx, 0x14
mov r14, rbx
mov dword [0x1400b3c24], ecx
mov dword [rbp + 0x618], ebx
cvtsi2sd xmm0, rcx
addsd xmm8, xmm0
test rsi, rsi
je 0x14001987b
mov dword [rbp + 0x628], r15d
nop dword [rax]
lea rcx, [0x1400b3a40]
call fcn.14000bc60
mov eax, dword [rbp + r14*4 + 0x60]
mov ecx, r13d
mov dword [0x1400b3c08], eax
call fcn.1400152c0
lea rcx, [0x1400b3a40]
call fcn.14000be70
cmp dword [0x1400b0488], 0
mov eax, dword [0x1400b3c08]
mov dword [rbp + r14*4 + 0x60], eax
jne 0x1400195b3
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp - 0x60]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
mov ecx, r15d
mov rdi, rax
sub ecx, dword [rbp + 0x618]
imul ecx, dword [rbp + 0x610]
divsd xmm2, xmm0
cvtsi2sd xmm1, rdx
mulsd xmm2, xmm1
cvttsd2si esi, xmm2
test ecx, ecx
je 0x140019654
mov ebx, ecx
nop word [rax + rax]
mov ecx, dword [0x1400b0490]
mov r9, r12
inc ecx
mov edx, 0x100
call fcn.140014f20
mov edx, dword [0x1400b3c24]
lea rcx, [0x1400b3a40]
shl rdx, 8
call fcn.14000a2b0
mov ecx, dword [0x1400b3bf4]
mov eax, dword [0x1400b3c24]
imul rcx, rax
add r12, rcx
sub rbx, 1
jne 0x140019610
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clFinish]
cmp dword [0x1400b0488], 0
jne 0x14001967e
lea rcx, [0x1400b40a0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x1400b0488], r13d
lea rcx, [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400b40a0]
xorps xmm0, xmm0
mov rax, qword [rbp - 0x58]
movaps xmm2, xmm9
cqo
xorps xmm1, xmm1
idiv rcx
cvtsi2sd xmm0, rcx
sub eax, edi
cdqe
xorps xmm6, xmm6
cvtsi2sd xmm1, rdx
imul rdx, rax, 0xf4240
divsd xmm2, xmm0
movsxd rax, esi
sub rdx, rax
mulsd xmm2, xmm1
cvttsd2si ecx, xmm2
movsxd rax, ecx
add rdx, rax
js 0x1400196db
cvtsi2sd xmm6, rdx
jmp 0x1400196f0
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm6, rax
addsd xmm6, xmm6
mov ecx, dword [0x1400b3c24]
xor r9d, r9d
mov rax, qword [0x1400b3bc0]
mov r8d, r13d
mov rdx, qword [0x1400b3bc8]
mov edi, ebx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
shr rcx, 3
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, qword [0x1400b04b8]
call qword [sym.imp.OpenCL.dll_clEnqueueReadBuffer]
mov esi, eax
test eax, eax
je 0x14001978e
mov ecx, eax
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, esi
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._:_clEnqueueReadBuffer_h_sieve_info_failed.__clEnqueueReadBuffer__n
call fcn.140001350
xor ebx, ebx
mov r10d, dword [0x1400b3c24]
mov eax, r10d
shr eax, 5
test eax, eax
je 0x1400197e6
mov r8, qword [0x1400b3bc0]
mov r9d, eax
nop dword [rax]
mov ecx, dword [r8]
mov edx, 0x10
nop dword [rax + rax]
test cl, 1
lea eax, [rdi + 1]
cmove eax, edi
shr ecx, 1
test cl, 1
lea edi, [rax + 1]
cmove edi, eax
shr ecx, 1
sub rdx, 1
jne 0x1400197c0
add r8, 4
sub r9, 1
jne 0x1400197b0
xorps xmm0, xmm0
mov eax, edi
mov edi, dword [rbp + 0x628]
xorps xmm1, xmm1
cvtsi2sd xmm1, r10
cvtsi2sd xmm0, rax
mulsd xmm1, xmm10
addsd xmm0, qword [rbp + r14*8 + 0x360]
movsd qword [rbp + r14*8 + 0x360], xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
divsd xmm1, xmm6
comisd xmm1, xmmword [rbp + r14*8 + 0xe0]
jbe 0x140019848
mov eax, dword [rbp + 0x620]
mov dword [rbp + r14*4 - 0x40], eax
movsd qword [rbp + r14*8 + 0xe0], xmm1
movq rdx, xmm1
lea rcx, str.__7.1f
call fcn.140001020
inc dword [rbp + 0x618]
dec edi
inc r14
mov esi, r15d
mov dword [rbp + 0x628], edi
cmp r14, rsi
jl 0x140019560
mov rdi, qword [rsp + 0x50]
cmp dword [0x1400b3c64], 0
jne 0x14001989c
inc dword [rbp + 0x620]
inc rdi
mov qword [rsp + 0x50], rdi
cmp rdi, qword [rbp - 0x50]
jl 0x140019510
lea rcx, str._n_nBest_GPUSieveSize_for_nSievePrimes:
call fcn.140001020
test rsi, rsi
je 0x140019a53
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rbp + rbx*4 + 0x60]
lea rcx, str.__7u
call fcn.140001020
inc rbx
cmp rbx, rsi
jl 0x1400198c0
lea rcx, str._nat_MiB:
call fcn.140001020
xor edi, edi
mov ebx, edi
nop dword [rax + rax]
movsxd rax, dword [rbp + rbx*4 - 0x40]
lea rcx, str.__7u
mov edx, dword [rbp + rax*4 + 0x2e0]
call fcn.140001020
inc rbx
cmp rbx, rsi
jl 0x1400198f0
lea rcx, str._nmax_M_s:
call fcn.140001020
mov rbx, rdi
nop
movsd xmm1, qword [rbp + rbx*8 + 0xe0]
lea rcx, str.__7.1f
movq rdx, xmm1
call fcn.140001020
inc rbx
cmp rbx, rsi
jl 0x140019920
lea rcx, str._nSurvivors:
call fcn.140001020
movsd xmm7, qword [0x140025c70]
movaps xmm6, xmm11
divsd xmm6, xmm8
mov rbx, rdi
nop dword [rax]
nop word [rax + rax]
movsd xmm1, qword [rbp + rbx*8 + 0x360]
lea rcx, str.__6.2f__
mulsd xmm1, xmm7
mulsd xmm1, xmm6
movq rdx, xmm1
call fcn.140001020
inc rbx
cmp rbx, rsi
jl 0x140019970
lea rcx, str._nremoval_rate_n__average:
call fcn.140001020
divsd xmm11, xmm8
nop dword [rax + rax]
movaps xmm1, xmm8
lea rcx, str.__7.1f
subsd xmm1, qword [rbp + rdi*8 + 0x360]
movaps xmm0, xmm11
mulsd xmm0, qword [rbp + rdi*8 + 0xe0]
mulsd xmm1, xmm0
movq rdx, xmm1
call fcn.140001020
inc rdi
cmp rdi, rsi
jl 0x1400199b0
lea rcx, str._n__incremental:___n_a
call fcn.140001020
cmp rsi, 1
jbe 0x140019a8f
nop dword [rax]
movsd xmm1, qword [rbp + r13*8 + 0x358]
lea rcx, str.__7.1f
subsd xmm1, qword [rbp + r13*8 + 0x360]
movaps xmm2, xmm8
movaps xmm0, xmm8
divsd xmm2, qword [rbp + r13*8 + 0xe0]
divsd xmm0, qword [rbp + r13*8 + 0xd8]
subsd xmm2, xmm0
divsd xmm1, xmm2
movq rdx, xmm1
call fcn.140001020
inc r13
cmp r13, rsi
jl 0x140019a00
jmp 0x140019a8f
lea rcx, str._nat_MiB:
call fcn.140001020
lea rcx, str._nmax_M_s:
call fcn.140001020
lea rcx, str._nSurvivors:
call fcn.140001020
lea rcx, str._nremoval_rate_n__average:
call fcn.140001020
lea rcx, str._n__incremental:___n_a
call fcn.140001020
lea rcx, [0x140021720]
call fcn.140001020
movaps xmm8, xmmword [rsp + 0x690]
xor eax, eax
jmp 0x1400193a8
mov ecx, r13d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3