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

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x40
movups xmmword [rsp + 0x30], xmm6
mov rax, qword [rcx + 0x348]
mov rbx, rcx
lea r12, [rsp + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test rax, rax
je 0x4d5921
mov eax, dword [rcx]
mov rsi, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea r12, [rsp + 0x28]
test eax, eax
je 0x4d5990
cmp qword [0x00868630], 0
je 0x4d5ba8
mov rcx, r12
call rsi
imul rax, qword [rsp + 0x28], 0x3b9aca00
cqo
idiv qword [0x00868630]
movabs rdx, 0x431bde82d7b634db
mul rdx
mov rax, rdx
shr rax, 0x12
mov qword [rbx + 0x348], rax
mfence
mov qword [rbx + 0x350], 0
mfence
movups xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rcx + 0x350]
imul rdi, rdi, 0x3e8
cmp qword [0x00868630], 0
je 0x4d5be8
lea r12, [rsp + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea r13, [rbx + 0x360]
mov rcx, r12
call rsi
imul rax, qword [rsp + 0x28], 0x3b9aca00
cqo
idiv qword [0x00868630]
mov r8, qword [rbx + 0x348]
movabs rdx, 0x431bde82d7b634db
mul rdx
mov rax, rdx
xor edx, edx
shr rax, 0x12
lea rcx, [rax + 1]
mov rax, rdi
lea rdi, [rbx + 0x378]
sub rcx, r8
div rcx
mov rcx, r12
mov qword [rbx + 0x358], rax
mfence
mov eax, dword [0x008686a0]
mov qword [rsp + 0x28], rax
call method.void_boost::this_thread::sleep_for_long_long__boost.ratio_1ll__1000ll____boost::chrono::duration_long_long__boost::ratio_1ll__1000ll____const_
mov rcx, r13
call method.boost::detail::basic_recursive_mutex_impl_boost::detail::basic_timed_mutex_.lock__
mov ecx, 0x18
mov r14, qword [rbx + 0x358]
call sym.operator_new_unsigned_long_long_
mov qword [rax + 0x10], r14
mov rcx, rax
mov rdx, rdi
call method.std::__detail::_List_node_base._M_hook_std::__detail::_List_node_base_
mov rdx, qword [rbx + 0x388]
lea rax, [rdx + 1]
mov qword [rbx + 0x388], rax
cmp rax, 0x13
ja 0x4d5bc0
cmp byte [rbx + 0x390], 0
je 0x4d5b76
mov rax, qword [rbx + 0x378]
cmp rdi, rax
je 0x4d5c80
xor edx, edx
nop word [rax + rax]
add edx, dword [rax + 0x10]
mov rax, qword [rax]
cmp rdi, rax
jne 0x4d5a90
movsxd rdx, edx
test rdx, rdx
js 0x4d5c60
pxor xmm6, xmm6
cvtsi2ss xmm6, rdx
mov rax, qword [rbx + 0x388]
test rax, rax
js 0x4d5c38
pxor xmm0, xmm0
cvtsi2ss xmm0, rax
mov r14, qword [0x0099eb20]
lea rdx, str.hashrate:
mov r8d, 0xa
divss xmm6, xmm0
mov rcx, r14
mov edi, dword [r14 + 0x20]
mov r15, qword [r14 + 0x10]
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [r14]
pxor xmm1, xmm1
mov rcx, r14
cvtss2sd xmm1, xmm6
mov rdx, qword [rax - 0x18]
mov qword [r14 + rdx + 8], 4
mov rdx, qword [rax - 0x18]
add rdx, r14
mov eax, dword [rdx + 0x18]
and eax, 0xfffffefb
or eax, 4
mov dword [rdx + 0x18], eax
call method.std::ostream_std::ostream._M_insert_double__double_
mov rcx, rax
mov edx, edi
call method.std::ostream.operator___int_
mov rcx, rax
mov rdx, r15
call method.std::ostream_std::ostream._M_insert_long_long__long_long_
mov r14, rax
mov rax, qword [rax]
mov rax, qword [rax - 0x18]
mov r15, qword [r14 + rax + 0xf0]
test r15, r15
je 0x4d5c89
cmp byte [r15 + 0x38], 0
je 0x4d5c00
movsx edx, byte [r15 + 0x43]
mov rcx, r14
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
mov eax, dword [rbx + 0x360]
sub eax, 1
mov dword [rbx + 0x360], eax
jne 0x4d5921
xchg dword [rbx + 0x364], eax
lea rcx, [rbx + 0x368]
call method.boost::detail::basic_timed_mutex.unlock__
jmp 0x4d5921
lea rcx, [0x00868630]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
jmp 0x4d592f
mov r14, qword [rbx + 0x378]
mov qword [rbx + 0x388], rdx
mov rcx, r14
call method.std::__detail::_List_node_base._M_unhook__
mov rcx, r14
call sym.operator_delete_void_
jmp 0x4d5a68
lea rcx, [0x00868630]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
jmp 0x4d59ac
mov rcx, r15
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [r15]
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov edx, 0xa
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x4d5b66
mov rcx, r15
call rax
movsx edx, al
jmp 0x4d5b66
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2ss xmm0, rdx
addss xmm0, xmm0
jmp 0x4d5ac9
mov rax, rdx
and edx, 1
pxor xmm6, xmm6
shr rax, 1
or rax, rdx
cvtsi2ss xmm6, rax
addss xmm6, xmm6
jmp 0x4d5ab0
pxor xmm6, xmm6
jmp 0x4d5ab0
call method.std.__throw_bad_cast__
mov r12, rax
mov rcx, r13
call method.boost::detail::basic_recursive_mutex_impl_boost::detail::basic_timed_mutex_.unlock__
mov rcx, r12
call sym._Unwind_Resume
nop
nop word cs:[rax + rax]
nop dword [rax]