Function at 0x180116ca0
Capabilities:
Create thread

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov rax, qword [0x1802b7c00]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r13, r9
mov qword [rsp + 0x60], r9
mov r12, r8
mov qword [rsp + 0x70], r8
mov r15, rdx
mov qword [rsp + 0x68], rdx
mov r14, rcx
mov qword [rsp + 0x78], rdx
xor ebx, ebx
lea r8d, [rbx + 8]
lea rdx, str.no_error
mov rcx, r12
call fcn.1800492a0
movzx ecx, byte [r14 + 0x110]
nop
test cl, cl
je 0x180116d33
mov qword [r15], rbx
mov qword [r15 + 8], rbx
mov rax, r15
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1801fc6e0
add rsp, 0x108
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 0x18011728d
mov eax, dword [rdx + 8]
test eax, eax
je 0x18011728d
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x180116d68
test eax, eax
je 0x18011728d
jmp 0x180116d54
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 0x180116d96
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 - 0x30]
call fcn.18002b330
nop
mov ecx, 0x20
call fcn.1801fc700
mov rsi, rax
mov qword [rsp + 0x78], rax
test rax, rax
je 0x180116e7a
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.1801fc700
mov rbx, rax
mov qword [rbp - 0x80], rax
test rax, rax
je 0x180116e40
mov dword [rax], edi
lea rcx, [rax + 8]
mov qword [rbp - 0x78], rcx
lea rdx, [rbp - 0x30]
call fcn.18002b330
xor eax, eax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x180116e2f
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, [0x1801172d0]
mov qword [rbx + 0x40], rax
jmp 0x180116e42
xor ebx, ebx
mov qword [rbp - 0x70], rbx
lea rdi, [rsi + 0x18]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0
mov r9, rbx
lea r8, [0x180116600]
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 0x18011729e
jmp 0x180116e7d
mov rsi, rbx
lea rbx, [rsi + 0x10]
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], rsi
cmp dword [rbx + 8], 0
je 0x180117293
movups xmm0, xmmword [rbx]
movaps xmmword [rbp - 0x50], xmm0
lea rcx, [rbp - 0x50]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x180117293
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbx], xmm0
movzx eax, byte [r14 + 0x110]
nop
test al, al
jne 0x180117044
nop word [rax + rax]
mov rbx, qword [r14 + 0x38]
lea rcx, [rsp + 0x58]
call fcn.1801018a0
mov rdi, qword [rsp + 0x58]
test rbx, rbx
jle 0x180116f13
imul rdx, rbx, 0xf4240
imul rax, rbx, 0xf4240
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rax
cmp rdi, rcx
jge 0x180116f10
add rdi, rdx
jmp 0x180116f13
mov rdi, r8
movabs r15, 0x4e94914f0000
movabs r12, 0x431bde82d7b634db
movabs r13, 0xb2f4fc0794908cf3
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rbx, 0x989680
jne 0x180116f50
imul rax, rcx, 0x64
jmp 0x180116fbf
cmp rbx, 0x16e3600
jne 0x180116fa4
mov rax, r13
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r13
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, r8
jmp 0x180116fbf
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jge 0x18011700d
mov rcx, rdi
sub rcx, rax
cmp rcx, r15
jl 0x180116fde
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x180116f31
mov rax, r12
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x180117001
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x180116f31
mov r13, qword [rsp + 0x60]
mov rcx, qword [r13 + 0x38]
test rcx, rcx
mov r15, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
je 0x1801172af
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x18011708f
movzx eax, byte [r14 + 0x110]
nop
test al, al
je 0x180116ed0
mov rcx, qword [r13 + 0x38]
test rcx, rcx
je 0x1801172af
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x18011708f
lea rcx, [r14 + 0xc0]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x180117282
mov eax, dword [r14 + 0x10c]
cmp eax, 0x7fffffff
jne 0x180117186
dec eax
mov dword [r14 + 0x10c], eax
jmp 0x1801172be
mov r8d, socket
lea rdx, str.cancellation_requested
mov rcx, r12
call fcn.1800492a0
xor eax, eax
mov qword [r15 + 8], rax
mov qword [r15], rax
test rsi, rsi
lea edi, [rax - 1]
je 0x1801170df
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x1801170df
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, edi
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x1801170df
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 0xf
jbe 0x18011711b
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180117115
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18011727b
call fcn.1801fcb84
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x18011713d
mov eax, edi
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x18011713d
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180116d10
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x180116d10
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 0x180116d10
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x180116d10
lea rdi, [r14 + 0xa0]
lea rcx, [r14 + 0xc0]
call sub.MSVCP140.dll__Mtx_unlock
cmp r12, rdi
je 0x1801171b7
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x1801171ab
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
mov rcx, r12
call fcn.1800492a0
lea rcx, [r14 + 0x50]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x180117282
mov eax, dword [r14 + 0x9c]
cmp eax, 0x7fffffff
je 0x1801172b5
xor eax, eax
mov qword [r15], rax
mov qword [r15 + 8], rax
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x1801171f0
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 sub.MSVCP140.dll__Mtx_unlock
nop
mov edi, 0xffffffff
test rsi, rsi
je 0x18011723d
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x18011723d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, edi
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x18011723d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 0xf
jbe 0x18011711b
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180117115
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180117115
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.1800fc860
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