Function at 0x18001cc60
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0xc0
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x108], rbx
mov rbp, rcx
mov rdx, qword [rcx]
cmp dword [rdx - 0x10], 0
jne 0x18001ccb5
add rdx, 0xffffffffffffffe8
or esi, 0xffffffff
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x18001ccab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, 1
jmp 0x18001cf41
lea rcx, [0x18005d078]
mov rax, qword [0x18005d078]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rcx, [0x18005d078]
mov rax, qword [0x18005d078]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
xor r13d, r13d
mov qword [rsp + 0x58], r13
mov r12d, 1
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x4c], r13d
mov rcx, qword [rbp]
sub rcx, 0x18
call fcn.180001790
add rax, 0x18
mov qword [rsp + 0xf8], rax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0xf8]
call fcn.18001c620
test eax, eax
jne 0x18001cda6
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or esi, 0xffffffff
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001cd61
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001cd81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x18001cf3e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x18001cf3e
or edx, 0xffffffff
mov rcx, qword [0x18005fea0]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r8, rbp
lea rdx, [rsp + 0x100]
lea rcx, [0x18005fea8]
call fcn.18001d500
mov rax, qword [rax]
or esi, 0xffffffff
cmp rax, qword [0x18005feb0]
je 0x18001cde4
mov r12d, r13d
jmp 0x18001ced4
lea r8, [rsp + 0x30]
mov rdx, rbp
lea rcx, [rsp + 0x80]
call fcn.18001e0f0
nop
mov rdx, rax
lea rcx, [0x18005fea8]
call fcn.18001e560
mov r8, rax
lea rdx, [rsp + 0x70]
lea rcx, [0x18005fea8]
call fcn.18001e150
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001ce40
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001ce62
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001ce84
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rbp]
movsxd rbx, dword [rax - 0x10]
lea eax, [rbx + 1]
movsxd rcx, eax
call fcn.18002f604
mov rdi, rax
mov r8, rbx
mov byte [rbx + rax], 0
mov rdx, qword [rbp]
mov rcx, rax
call fcn.18002fb80
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], r13d
mov r9, rdi
lea r8, [0x18001c250]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x18005fea0]
call qword [sym.imp.KERNEL32.dll_SetEvent]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001cf01
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18001cf21
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x18001cf3e
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.WS2_32.dll_htonl + 8]
mov eax, r12d
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret