Function at 0x14001b840
Capabilities:
Create thread

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov rax, qword [0x14009f320]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r13, r9
mov r12, r8
mov qword [rsp + 0x60], r8
mov r15, rdx
mov qword [rsp + 0x58], rdx
mov r14, rcx
mov qword [rsp + 0x68], rdx
xor ebx, ebx
lea r8d, [rbx + 8]
lea rdx, str.no_error
mov rcx, r12
call fcn.140002b00
movzx ecx, byte [r14 + 0x110]
nop
test cl, cl
je 0x14001b8de
mov qword [r15], rbx
mov qword [r15 + 8], rbx
mov rax, r15
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14006ab10
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x14001be22
mov eax, dword [rdx + 8]
test eax, eax
je 0x14001be22
nop
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x14001b914
test eax, eax
je 0x14001be22
jmp 0x14001b900
mov rax, qword [r14]
mov qword [rsp + 0x30], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x38], rax
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x40], xmm0
test rax, rax
je 0x14001b942
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lock inc dword [rax + 0xc]
mov edi, dword [r14 + 0x30]
lea rdx, [r14 + 0x10]
lea rcx, [rbp - 0x40]
call fcn.1400041b0
nop
mov ecx, 0x20
call fcn.14006ab30
mov rsi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x14001ba28
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_std::thread_.0
mov qword [rsi], rax
mov ecx, 0x48
call fcn.14006ab30
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14001b9ee
mov dword [rax], edi
lea rcx, [rax + 8]
mov qword [rsp + 0x78], rcx
lea rdx, [rbp - 0x40]
call fcn.1400041b0
xor eax, eax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14001b9dd
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rcx
lock inc dword [rcx + 0xc]
mov qword [rbx + 0x38], r14
lea rax, [0x14001be60]
mov qword [rbx + 0x40], rax
jmp 0x14001b9f0
xor ebx, ebx
mov qword [rbp - 0x80], rbx
lea rdi, [rsi + 0x18]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0
mov r9, rbx
lea r8, [0x14001b050]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsi + 0x10], rax
test rax, rax
je 0x14001be33
jmp 0x14001ba2b
mov rsi, rbx
lea rbx, [rsi + 0x10]
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], rsi
cmp dword [rbx + 8], 0
je 0x14001be28
movups xmm0, xmmword [rbx]
movaps xmmword [rbp - 0x60], xmm0
lea rcx, [rbp - 0x60]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x14001be28
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbx], xmm0
movzx eax, byte [r14 + 0x110]
nop
test al, al
jne 0x14001bbd9
movsd xmm6, qword [0x140070978]
nop dword [rax]
mov rbx, qword [r14 + 0x38]
call sub.MSVCP140.dll__Query_perf_frequency
mov rdi, rax
call sub.MSVCP140.dll__Query_perf_counter
cmp rdi, 0x989680
jne 0x14001baa0
imul rdi, rax, 0x64
jmp 0x14001babc
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
lea rdi, [rax + rcx]
test rbx, rbx
jle 0x14001bae5
imul rcx, rbx, 0xf4240
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, rcx
cmp rdi, rax
jge 0x14001bae2
add rdi, rcx
jmp 0x14001bae5
mov rdi, rdx
movabs r15, 0x311cdad160000
movabs r12, 0x112e0be826d694b3
nop dword [rax]
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
cmp rbx, 0x989680
jne 0x14001bb1c
imul rbx, rax, 0x64
jmp 0x14001bb38
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
cmp rbx, rdi
jge 0x14001bba7
call sub.MSVCP140.dll__Xtime_get_ticks
imul rdx, rax, 0x64
mov rax, rdi
sub rax, rbx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
comisd xmm0, xmm6
seta r8b
test r8b, r8b
lea rcx, [rdx + r15]
jne 0x14001bb69
lea rcx, [rax + rdx]
add rax, rdx
add rdx, r15
test r8b, r8b
cmove rdx, rax
mov rax, r12
imul rdx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rbp - 0x20], rdx
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov dword [rbp - 0x18], ecx
lea rcx, [rbp - 0x20]
call sub.MSVCP140.dll__Thrd_sleep
jmp 0x14001bb00
mov rcx, qword [r13 + 0x38]
test rcx, rcx
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
je 0x14001be44
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x14001bc24
movzx eax, byte [r14 + 0x110]
nop
test al, al
je 0x14001ba80
mov rcx, qword [r13 + 0x38]
test rcx, rcx
je 0x14001be44
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x14001bc24
lea rcx, [r14 + 0xc0]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x14001be17
mov eax, dword [r14 + 0x10c]
cmp eax, 0x7fffffff
jne 0x14001bd1b
dec eax
mov dword [r14 + 0x10c], eax
jmp 0x14001be53
mov r8d, socket
lea rdx, str.cancellation_requested
mov rcx, r12
call fcn.140002b00
xor eax, eax
mov qword [r15 + 8], rax
mov qword [r15], rax
test rsi, rsi
lea edi, [rax - 1]
je 0x14001bc74
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14001bc74
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, edi
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14001bc74
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14001bcb0
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bcaa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001be10
call fcn.14006adc4
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14001bcd2
mov eax, edi
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x14001bcd2
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14001b8b3
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14001b8b3
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14001b8b3
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x14001b8b3
lea rdi, [r14 + 0xa0]
lea rcx, [r14 + 0xc0]
call fcn.14006aa04
cmp r12, rdi
je 0x14001bd4c
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x14001bd40
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
mov rcx, r12
call fcn.140002b00
lea rcx, [r14 + 0x50]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x14001be17
mov eax, dword [r14 + 0x9c]
cmp eax, 0x7fffffff
je 0x14001be4a
xor eax, eax
mov qword [r15], rax
mov qword [r15 + 8], rax
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x14001bd85
lock inc dword [rax + 8]
mov rax, qword [r14 + 0x40]
mov qword [r15], rax
mov rax, qword [r14 + 0x48]
mov qword [r15 + 8], rax
lea rcx, [r14 + 0x50]
call fcn.14006aa04
nop
mov edi, 0xffffffff
test rsi, rsi
je 0x14001bdd2
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14001bdd2
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, edi
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14001bdd2
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14001bcb0
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bcaa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001bcaa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov ecx, 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
call fcn.14001b3a0
nop
mov ecx, 1
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov dword [rdi], 0
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
call sub.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_
int3
dec eax
mov dword [r14 + 0x9c], eax
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3