Function at 0x14003f850
Capabilities:
Execute anti-debugging instructions
Terminate process

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0xb0
mov rax, qword [0x140068008]
xor rax, rsp
mov qword [rsp + 0x70], rax
xor ebp, ebp
lea rcx, str.___smack_1_____n
mov ebx, ebp
mov qword [rsp + 0x30], rbp
call fcn.140001370
mov ecx, 0x558
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
jne 0x14003f8bc
lea ecx, [rbp + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, str.smack
lea rdx, str._s:_out_of_memory_error_n
call fcn.140001010
lea ecx, [rbp + 1]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
xor edx, edx
mov r8d, 0x558
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
or dword [r14 + 8], 1
mov ecx, 0xb
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r14], rax
mov rcx, rax
test rax, rax
jne 0x14003f912
lea ecx, [rax + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, str.smack
lea rdx, str._s:_out_of_memory_error_n
call fcn.140001010
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
movsd xmm0, qword [str.benchmark1]
movsd qword [rax], xmm0
movzx eax, word [0x140060728]
mov word [rcx + 8], ax
movzx eax, byte [0x14006072a]
mov byte [rcx + 0xa], al
mov ecx, 0x100000
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x14003f973
lea ecx, [rax + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, str.smack
lea rdx, str._s:_out_of_memory_error_n
call fcn.140001010
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
mov qword [rsp + 0xd0], rsi
mov rcx, rax
mov qword [rsp + 0xd8], rdi
mov edx, 0x100000
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0xa0], r15
nop dword [rax]
nop word [rax + rax]
imul ebx, ebx, 0x343fd
lea rcx, [rcx + 1]
add ebx, 0x269ec3
mov eax, ebx
shr eax, 0x10
and al, 0x7f
mov byte [rcx - 1], al
sub rdx, 1
jne 0x14003f9b0
mov rdi, rbp
lea esi, [rdx + 0x14]
nop word [rax + rax]
imul eax, ebx, 0x343fd
add eax, 0x269ec3
imul ebx, eax, 0x343fd
mov r8d, eax
shr r8d, 0x10
mov eax, 0xaaaaaaab
and r8d, 0x7fff
mul r8d
add ebx, 0x269ec3
shr edx, 1
mov ecx, ebx
shr ecx, 0x10
and ecx, 3
lea eax, [rdx + rdx*2]
sub ecx, eax
add ecx, 4
add r8d, ecx
je 0x14003fa50
lea rcx, [rsp + 0x58]
mov edx, r8d
nop dword [rax]
imul ebx, ebx, 0x343fd
lea rcx, [rcx + 1]
add ebx, 0x269ec3
mov eax, ebx
shr eax, 0x10
or al, 0x80
mov byte [rcx - 1], al
sub rdx, 1
jne 0x14003fa30
mov r9, rdi
mov dword [rsp + 0x20], ebp
lea rdx, [rsp + 0x58]
mov rcx, r14
call fcn.14003e620
inc rdi
sub rsi, 1
jne 0x14003f9e0
mov rcx, r14
call fcn.14003f1f0
call fcn.140034de0
mov qword [rsp + 0x48], rax
rdtsc
mov rbp, qword [r14 + 0x550]
mov r12d, dword [r14 + 0x54c]
mov r13, qword [r14 + 0x30]
mov r15d, dword [r14 + 0x38]
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x40], 0xa
mov qword [rsp + 0x50], rax
xor r11d, r11d
xor ebx, ebx
nop word [rax + rax]
mov r9d, r11d
mov ebx, ebx
and r9d, 0xffffff
shr r11d, 0x18
mov rsi, 0xffffffffffffffff
test r11d, r11d
jne 0x14003fb8c
mov rax, qword [rsp + 0x38]
lea r8, [rax + rbx]
lea r10, [rax + 0x100000]
cmp r12d, 7
je 0x14003fb31
mov rdi, r8
cmp r8, r10
jae 0x14003fb2c
nop
movzx eax, byte [r8]
mov ecx, r12d
shl r9d, cl
movzx edx, byte [rax + r14 + 0x444]
mov eax, r9d
add rdx, rax
movzx r9d, word [rbp + rdx*2]
cmp r9d, r15d
jae 0x14003fb2c
inc r8
cmp r8, r10
jb 0x14003fb00
sub r8, rdi
jmp 0x14003fb6d
mov rdx, r8
cmp r8, r10
jae 0x14003fb6a
nop dword [rax]
movzx eax, byte [r8]
shl r9d, 7
movzx ecx, byte [rax + r14 + 0x444]
mov eax, r9d
add rcx, rax
movzx r9d, word [rbp + rcx*2]
cmp r9d, r15d
jae 0x14003fb6a
inc r8
cmp r8, r10
jb 0x14003fb40
sub r8, rdx
mov eax, r9d
add rbx, r8
add rax, rax
mov ecx, dword [r13 + rax*8 + 8]
test ecx, ecx
je 0x14003fb87
inc rbx
mov r11d, ecx
jmp 0x14003fb8c
test r11d, r11d
je 0x14003fb9e
dec r11d
mov eax, r9d
add rax, rax
mov rax, qword [r13 + rax*8]
mov rsi, qword [rax + r11*8]
mov rdi, qword [rsp + 0x30]
shl r11d, 0x18
add rdi, rsi
or r11d, r9d
mov qword [rsp + 0x30], rdi
cmp ebx, 0x100000
jb 0x14003fac0
xor r11d, r11d
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
mov r9d, r11d
mov ebx, ebx
and r9d, 0xffffff
shr r11d, 0x18
mov rsi, 0xffffffffffffffff
test r11d, r11d
jne 0x14003fc9c
mov rax, qword [rsp + 0x38]
lea r8, [rax + rbx]
lea r10, [rax + 0x100000]
cmp r12d, 7
je 0x14003fc46
mov rdi, r8
cmp r8, r10
jae 0x14003fc3c
nop
movzx eax, byte [r8]
mov ecx, r12d
shl r9d, cl
movzx edx, byte [rax + r14 + 0x444]
mov eax, r9d
add rdx, rax
movzx r9d, word [rbp + rdx*2]
cmp r9d, r15d
jae 0x14003fc3c
inc r8
cmp r8, r10
jb 0x14003fc10
sub r8, rdi
mov rdi, qword [rsp + 0x30]
jmp 0x14003fc7d
mov rdx, r8
cmp r8, r10
jae 0x14003fc7a
nop
movzx eax, byte [r8]
shl r9d, 7
movzx ecx, byte [rax + r14 + 0x444]
mov eax, r9d
add rcx, rax
movzx r9d, word [rbp + rcx*2]
cmp r9d, r15d
jae 0x14003fc7a
inc r8
cmp r8, r10
jb 0x14003fc50
sub r8, rdx
mov eax, r9d
add rbx, r8
add rax, rax
mov ecx, dword [r13 + rax*8 + 8]
test ecx, ecx
je 0x14003fc97
inc rbx
mov r11d, ecx
jmp 0x14003fc9c
test r11d, r11d
je 0x14003fcae
dec r11d
mov eax, r9d
add rax, rax
mov rax, qword [r13 + rax*8]
mov rsi, qword [rax + r11*8]
shl r11d, 0x18
add rdi, rsi
or r11d, r9d
mov qword [rsp + 0x30], rdi
cmp ebx, 0x100000
jb 0x14003fbd0
xor r11d, r11d
xor ebx, ebx
nop
mov r9d, r11d
mov ebx, ebx
and r9d, 0xffffff
shr r11d, 0x18
mov rsi, 0xffffffffffffffff
test r11d, r11d
jne 0x14003fd9c
mov rax, qword [rsp + 0x38]
lea r8, [rbx + rax]
lea r10, [rax + 0x100000]
cmp r12d, 7
je 0x14003fd46
mov rdi, r8
cmp r8, r10
jae 0x14003fd3c
nop
movzx eax, byte [r8]
mov ecx, r12d
shl r9d, cl
movzx edx, byte [rax + r14 + 0x444]
mov eax, r9d
add rdx, rax
movzx r9d, word [rbp + rdx*2]
cmp r9d, r15d
jae 0x14003fd3c
inc r8
cmp r8, r10
jb 0x14003fd10
sub r8, rdi
mov rdi, qword [rsp + 0x30]
jmp 0x14003fd7d
mov rdx, r8
cmp r8, r10
jae 0x14003fd7a
nop
movzx eax, byte [r8]
shl r9d, 7
movzx ecx, byte [rax + r14 + 0x444]
mov eax, r9d
add rcx, rax
movzx r9d, word [rbp + rcx*2]
cmp r9d, r15d
jae 0x14003fd7a
inc r8
cmp r8, r10
jb 0x14003fd50
sub r8, rdx
mov eax, r9d
add rbx, r8
add rax, rax
mov ecx, dword [r13 + rax*8 + 8]
test ecx, ecx
je 0x14003fd97
inc rbx
mov r11d, ecx
jmp 0x14003fd9c
test r11d, r11d
je 0x14003fdae
dec r11d
mov eax, r9d
add rax, rax
mov rax, qword [r13 + rax*8]
mov rsi, qword [rax + r11*8]
shl r11d, 0x18
add rdi, rsi
or r11d, r9d
mov qword [rsp + 0x30], rdi
cmp ebx, 0x100000
jb 0x14003fcd0
sub qword [rsp + 0x40], 1
jne 0x14003fab0
mov r15, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xd0]
rdtsc
shl rdx, 0x20
or rax, rdx
mov rbx, rax
call fcn.140034de0
test rdi, rdi
mov rcx, rax
mov rdi, qword [rsp + 0xd8]
je 0x14003fefc
sub rcx, qword [rsp + 0x48]
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
xorps xmm7, xmm7
js 0x14003fe3b
cvtsi2sd xmm7, rcx
jmp 0x14003fe50
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm7, rax
addsd xmm7, xmm7
divsd xmm7, qword [0x140062950]
lea rcx, str.bits_second___5.3f_million_n
movsd xmm1, qword [0x140062948]
divsd xmm1, xmm7
divsd xmm1, qword [0x140062930]
movq rdx, xmm1
call fcn.140001370
sub rbx, qword [rsp + 0x50]
xorps xmm6, xmm6
js 0x14003fe8e
cvtsi2sd xmm6, rbx
jmp 0x14003fea3
mov rax, rbx
and ebx, 1
shr rax, 1
or rax, rbx
cvtsi2sd xmm6, rax
addsd xmm6, xmm6
movsd xmm0, qword [0x140062940]
lea rcx, str.clocks_byte___5.3f_n
movsd xmm1, qword [0x1400628c0]
divsd xmm0, xmm6
divsd xmm1, xmm0
movq rdx, xmm1
call fcn.140001370
divsd xmm6, xmm7
lea rcx, str.clockrate___5.3f_GHz_n
divsd xmm6, qword [0x140062950]
movaps xmm1, xmm6
movq rdx, xmm6
call fcn.140001370
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14004da00
add rsp, 0xb0
pop r14
pop rbp
pop rbx
ret