Function at 0x140051700
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov rax, qword [0x1402dc040]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r14, rcx
xor r15d, r15d
mov dword [rbp - 9], 0xe1070042
mov dword [rbp - 5], 0xc1301d37
mov dword [rbp - 1], 0x3c1bdcdf
mov dword [rbp + 3], 0xa49fffce
mov dword [rbp + 7], 0xc9afce79
mov dword [rbp + 0xb], 0xa77b7ba1
mov word [rbp + 0xf], 0xcedb
mov qword [rbp - 0x29], r15
mov rax, qword [rbp - 0x29]
nop word [rax + rax]
mov rax, qword [rbp - 0x29]
mov rcx, qword [rbp - 0x29]
movzx edx, byte [rbp + rcx - 9]
sub dl, byte [rbp + rax + 4]
mov byte [rbp - 0x39], dl
movzx ecx, byte [rbp - 0x39]
mov rax, qword [rbp - 0x29]
mov byte [rbp + rax + 0x17], cl
mov rax, qword [rbp - 0x29]
inc rax
mov qword [rbp - 0x29], rax
mov rax, qword [rbp - 0x29]
cmp rax, 0xd
jb 0x140051770
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov r8d, ntohs
lea rdx, [rbp + 0x17]
lea rcx, [rbp - 0x29]
call fcn.14004a000
nop
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0xf
cmova rax, qword [rbp - 0x29]
mov qword [rbp + 0x17], rax
mov rax, qword [rbp - 0x19]
mov qword [rbp + 0x1f], rax
movaps xmm0, xmmword [rbp + 0x17]
movdqa xmmword [rbp + 0x17], xmm0
lea rdx, [rbp + 0x17]
call fcn.140066430
nop
lea rcx, [rbp - 0x29]
call fcn.1400633d0
xorps xmm1, xmm1
movdqu xmmword [rbp - 9], xmm1
mov qword [rbp + 7], r15
mov rcx, r14
call fcn.140051e50
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea r12, vtable.std::_Ref_count_obj2_class_std::thread_.0
mov qword [rax], r12
lea rdi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rdi
call fcn.140077690
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rdi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x140051884
mov qword [rdx], rdi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x140051895
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
mov edi, 0xffffffff
test rcx, rcx
je 0x1400518cd
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1400518cd
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400518cd
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rsi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.140077720
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rsi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x140051938
mov qword [rdx], rsi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x140051949
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x14005197c
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14005197c
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14005197c
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rsi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.1400777b0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rsi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x1400519e7
mov qword [rdx], rsi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x1400519f8
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x140051a2b
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140051a2b
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140051a2b
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rsi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.140077840
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rsi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x140051a96
mov qword [rdx], rsi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x140051aa7
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x140051ada
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140051ada
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140051ada
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rsi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.1400778d0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rsi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x140051b45
mov qword [rdx], rsi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x140051b56
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x140051b89
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140051b89
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140051b89
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rsi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.140077960
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rsi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x140051bf4
mov qword [rdx], rsi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x140051c05
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x140051c38
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140051c38
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140051c38
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp - 0x29], r14
mov ecx, 0x20
call fcn.14016e120
mov rbx, rax
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rsi, [rax + 0x10]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.1400779f0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x17], rsi
mov qword [rbp + 0x1f], rbx
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp + 7]
je 0x140051ca3
mov qword [rdx], rsi
mov qword [rdx + 8], rbx
mov rcx, r15
mov qword [rbp + 0x1f], rcx
add qword [rbp - 1], 0x10
jmp 0x140051cb4
lea r8, [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.14006f930
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x140051ce5
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140051ce5
mov rbx, qword [rbp + 0x1f]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x140051ce5
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, qword [rbp - 9]
mov rsi, qword [rbp - 1]
cmp rdi, rsi
je 0x140051d34
mov rbx, qword [rdi]
cmp dword [rbx + 8], 0
je 0x140051d2b
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbx + 8], eax
je 0x140051dee
movups xmm0, xmmword [rbx]
movaps xmmword [rbp + 0x17], xmm0
xor edx, edx
lea rcx, [rbp + 0x17]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x140051de2
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
add rdi, 0x10
cmp rdi, rsi
jne 0x140051cf2
mov ecx, 8
call fcn.14016e120
mov qword [rax], r14
mov qword [rbp + 0x17], rax
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r15d
mov r9, rax
lea r8, [0x140074d20]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x29], rax
test rax, rax
je 0x140051e33
cmp dword [rbp - 0x21], 0
je 0x140051e27
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp + 0x17], xmm0
lea rcx, [rbp + 0x17]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x140051e27
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x140051dff
mov rdx, qword [rbp - 1]
call fcn.140066bd0
mov rdx, qword [rbp + 7]
mov rcx, qword [rbp - 9]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x140051dfa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140051dfa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov ecx, 2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
call fcn.14016e474
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14016dfe0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 0x21], r15d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3