Function at 0x14015a9e0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14049e608]
xor rax, rsp
mov qword [rbp + 0x60], rax
movzx ebx, r9b
mov r12, rdx
mov rdi, rcx
mov qword [rsp + 0x68], rcx
movzx eax, byte [0x140732916]
mov byte [rsp + 0x40], al
lea rcx, [rbp - 0x48]
call fcn.14015b670
nop
mov r15, 0xffffffffffffffff
cmp qword [rbp - 0x48], 0
je 0x14015ac04
xor r14d, r14d
test bl, bl
je 0x14015ac6b
mov rsi, qword [rdi + 8]
mov rbx, qword [rdi]
mov rcx, rsi
sub rcx, rbx
movabs r9, 0x2aaaaaaaaaaaaaab
mov rax, r9
imul rcx
mov r8, rdx
sar r8, 2
mov rcx, r8
shr rcx, 0x3f
add r8, rcx
mov rcx, qword [0x140737450]
sub rcx, qword [0x140737440]
mov rax, r9
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r8, rdx
jbe 0x14015aad2
movabs rax, 0xaaaaaaaaaaaaaaa
cmp r8, rax
ja 0x14015aef8
mov rdx, r8
call fcn.14015b3f0
mov rbx, qword [rdi]
mov rsi, qword [rdi + 8]
cmp rbx, rsi
je 0x14015ac6b
mov edi, dword [rbx]
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x58], r14d
mov rax, qword [rbp - 0x48]
mov rcx, qword [rax]
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rsp + 0x60]
mov edx, 0x9c402084
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14015abdb
mov dword [rbp - 0x38], edi
mov r8, qword [rsp + 0x78]
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x28], r15
test edi, edi
je 0x14015abf6
cmp dword [0x140732900], r14d
jbe 0x14015ab90
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
not rcx
and rcx, r8
and rdx, qword [rbx + 0x10]
or rcx, rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r8
mov r9d, dword [rbx]
lea r8, str.e_43_1me_1_37m_msr_____e_0m
lea rdx, str._s_e_1_36m0x_08xe_0me_0_36m:0x_016llxe_0me_1_36m____0x_016llxe_0m
mov ecx, 6
call fcn.1400265c0
mov rdx, qword [0x140737448]
cmp qword [0x140737450], rdx
je 0x14015abc2
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rdx], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rdx + 0x10], xmm1
add qword [0x140737448], 0x18
add rbx, 0x18
jmp 0x14015aad2
lea r8, [rbp - 0x38]
lea rcx, [0x140737440]
call fcn.140152470
add rbx, 0x18
jmp 0x14015aad2
mov r9d, edi
lea r8, str.e_43_1me_1_37m_msr_____e_0m
lea rdx, str._s_e_1_33mcannot_read_MSR_0x_08xe_0m
mov ecx, 4
call fcn.1400265c0
mov rax, qword [0x140737440]
mov qword [0x140737448], rax
xor dil, dil
mov rbx, qword [rbp - 0x40]
test rbx, rbx
je 0x14015ac3a
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14015ac3a
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x14015ac3a
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + reloc.WS2_32.dll_htonl]
movzx eax, dil
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1403195b0
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], r14
mov ecx, 0x20
call fcn.140003d40
mov qword [rbp - 0x18], rax
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rsp + 0x48], rax
mov rdi, qword [r12]
mov r14, qword [r12 + 8]
cmp rdi, r14
sete r13b
mov rsi, qword [0x140737750]
cmp byte [rsp + 0x40], 0
je 0x14015ad6a
test rsi, rsi
jne 0x14015acea
mov ecx, 0x110
call fcn.1403195d4
mov qword [rsp + 0x70], rax
mov rcx, rax
call fcn.140082070
mov rsi, rax
mov qword [0x140737750], rax
mov rdi, qword [r12]
mov r14, qword [r12 + 8]
cmp rdi, r14
je 0x14015ad6a
movzx ebx, byte [rsp + 0x40]
mov rdx, qword [rdi]
mov dword [rsp + 0x70], edx
test edx, edx
js 0x14015ad48
mov rax, qword [rsi + 0x68]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
mov rcx, qword [rsi + 0x60]
cmp rcx, rax
je 0x14015ad48
cmp dword [rcx], edx
je 0x14015ad21
add rcx, 4
cmp rcx, rax
jne 0x14015ad14
cmp rcx, rax
je 0x14015ad48
mov byte [rsp + 0x20], bl
lea r9, [rsp + 0x70]
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x48]
call fcn.14015b4c0
add rdi, 0x10
cmp rdi, r14
jne 0x14015acf4
jmp 0x14015ad63
mov r13b, 1
lea r8, str.e_43_1me_1_37m_msr_____e_0m
lea rdx, str._s_e_1_33mcache_QoS_can_only_be_enabled_when_all_mining_threads_have_affinity_sete_0m
mov ecx, 4
call fcn.1400265c0
mov rsi, qword [0x140737750]
lea rax, [rbp - 0x48]
mov qword [rbp - 0x70], rax
mov rax, qword [rsp + 0x68]
mov qword [rbp - 0x68], rax
movzx eax, byte [rsp + 0x40]
mov byte [rbp - 0x60], al
lea rax, [rsp + 0x48]
mov qword [rbp - 0x58], rax
mov byte [rbp - 0x50], r13b
lea rax, vtable.std::_Func_impl_no_alloc_class__lambda_f03a332018168dd8942073de201a8953___bool__int_.0
mov qword [rbp + 0x20], rax
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rbp + 0x28], xmm0
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [rbp + 0x38], xmm1
movsd xmm0, qword [rbp - 0x50]
movsd qword [rbp + 0x48], xmm0
lea rax, [rbp + 0x20]
mov qword [rbp + 0x58], rax
test rsi, rsi
jne 0x14015ade3
mov ecx, 0x110
call fcn.1403195d4
mov qword [rsp + 0x68], rax
mov rcx, rax
call fcn.140082070
mov rsi, rax
mov qword [0x140737750], rax
lea rax, [rsi + 0x60]
mov byte [rsp + 0x40], 0
lea rcx, [rbp + 0x20]
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x68], rax
lea rax, [rsp + 0x40]
mov qword [rbp - 0x60], rax
mov ecx, 0x18
call fcn.1403195d4
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rax], xmm0
movsd xmm1, qword [rbp - 0x60]
movsd qword [rax + 0x10], xmm1
mov qword [rsp + 0x68], rax
lea rdx, [rbp - 0x78]
mov qword [rsp + 0x28], rdx
xor ebx, ebx
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x14015a6b0]
xor edx, edx
xor ecx, ecx
call fcn.140342370
mov qword [rbp - 0x80], rax
test rax, rax
je 0x14015aefe
cmp dword [rbp - 0x78], ebx
je 0x14015af0c
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rbp - 0x78], eax
je 0x14015af17
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp], xmm0
xor edx, edx
lea rcx, [rbp]
call fcn.140317d94
test eax, eax
jne 0x14015aeed
movzx edi, byte [rsp + 0x40]
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x14015aea1
mov rax, qword [rcx]
lea rdx, [rbp + 0x20]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x58], rbx
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rcx + 8]
cmp byte [rbx + 0x19], 0
jne 0x14015aede
mov r8, qword [rbx + 0x10]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x48]
call fcn.1400864f0
mov rcx, rbx
mov rbx, qword [rbx]
mov edx, 0x20
call fcn.140319610
cmp byte [rbx + 0x19], 0
je 0x14015aeb0
mov rcx, qword [rsp + 0x48]
mov edx, 0x20
call fcn.140319610
jmp 0x14015ac07
mov ecx, 2
call fcn.1403175f4
nop
call fcn.140013fa0
nop
mov dword [rbp - 0x78], ebx
mov ecx, 6
call fcn.1403175f4
nop
mov ecx, 1
call fcn.1403175f4
int3
mov ecx, 5
call fcn.1403175f4
int3