Function at 0x14007a255
Capabilities:
Create thread
Get socket status

Disassembly:
test rcx, rcx
je 0x14007a852
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x580]
sub rsp, 0x680
mov rax, qword [0x1402ccee0]
xor rax, rsp
mov qword [rbp + 0x570], rax
xor r14d, r14d
mov rbx, rcx
mov qword [rcx + 0x52c], r14
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbx + 8], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8d, dword [rbx + 8]
xor edx, edx
mov ecx, 0x1fffff
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov qword [rbx + 0x18], rax
lea r15d, [r14 + 1]
mov rax, qword [0x1402cfcc0]
mov edx, r15d
test rax, rax
cmove rax, rbx
xor r9d, r9d
xor r8d, r8d
mov qword [0x1402cfcc0], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [rbx + 0x548], rax
cmp dword [rbx + 0x540], r14d
jne 0x14007a31b
mov qword [rsp + 0x28], r14
lea r8, [0x140079f88]
mov r9, rbx
mov dword [rsp + 0x20], r14d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 0x538], rax
mov dword [rbp + 0x360], r14d
or r12, 0xffffffffffffffff
mov dword [rsp + 0x40], r14d
mov dword [rbp + 0x150], r14d
mov dword [rbx + 4], r15d
jmp 0x14007a629
cmp dword [rbx + 0x528], 2
mov r8d, r14d
mov dword [rbp + 0x360], r14d
mov dword [rsp + 0x40], r14d
mov dword [rbp + 0x150], r14d
mov qword [rsp + 0x38], 0x15180
jne 0x14007a36a
mov dword [rbx + 0x528], r14d
mov rax, qword [rbx + 0x510]
mov rcx, qword [rax + 0x18]
mov qword [rbx + 0x558], rcx
mov dword [rbx + 0x550], 0x5265c00
test rcx, rcx
je 0x14007a431
mov r10, qword [rbx + 0x558]
test r10, r10
je 0x14007a3a0
mov r10, qword [r10]
jmp 0x14007a3a3
mov r10, r14
test r10, r10
je 0x14007a42c
cmp qword [r10], r14
je 0x14007a3f0
mov eax, dword [rbx + 0x550]
lea r9, [rsp + 0x40]
mov dword [rsp + 0x30], eax
lea r8, [rbp + 0x150]
lea rax, [rsp + 0x30]
mov rcx, r10
lea rdx, [rbp + 0x360]
mov qword [rsp + 0x20], rax
call qword [r10]
mov eax, dword [rsp + 0x30]
cmp eax, dword [rbx + 0x550]
jge 0x14007a3f0
mov dword [rbx + 0x550], eax
mov rcx, qword [rbx + 0x558]
call fcn.14007db4c
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x14007a411
cmp ecx, dword [rbx + 0x550]
jge 0x14007a411
mov dword [rbx + 0x550], ecx
mov rax, qword [rbx + 0x558]
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x558], rcx
test rcx, rcx
jne 0x14007a38f
mov r8d, dword [rsp + 0x40]
mov ecx, dword [rbx + 0x550]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x3e8
mov dword [rsp + 0x38], edx
sub ecx, eax
imul eax, ecx, 0x3e8
mov ecx, r14d
mov dword [rsp + 0x3c], eax
test r8d, r8d
je 0x14007a47c
mov rdx, qword [rbx + 0x4f0]
cmp qword [rsp + rcx*8 + 0x48], rdx
je 0x14007a47c
add ecx, r15d
cmp ecx, r8d
jb 0x14007a46d
cmp ecx, r8d
jne 0x14007a498
cmp r8d, 0x40
jae 0x14007a498
mov rax, qword [rbx + 0x4f0]
mov qword [rsp + rcx*8 + 0x48], rax
add dword [rsp + 0x40], r15d
mov rcx, qword [0x1402cfcd0]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x14007a503
mov rax, qword [rbx + 0x518]
mov rdi, qword [rax + 0x18]
mov qword [rbx + 0x558], rdi
test rdi, rdi
je 0x14007a4c6
mov rdi, qword [rdi]
jmp 0x14007a4c9
mov rdi, r14
mov rcx, qword [rbx + 0x510]
mov rdx, rdi
call fcn.14007dc58
mov rcx, qword [rbx + 0x558]
call fcn.14007dbec
test rdi, rdi
je 0x14007a503
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14007a4f7
mov rcx, rdi
call rax
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.1401ad038
mov rax, qword [rbx + 0x518]
cmp dword [rax + 8], r14d
jg 0x14007a4aa
mov rcx, qword [0x1402cfcd0]
xor r8d, r8d
mov edx, r15d
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
add dword [rbx + 0x52c], r15d
cmp dword [rbp + 0x360], r14d
jne 0x14007a550
cmp dword [rbp + 0x150], r14d
jne 0x14007a550
mov ecx, dword [rbx + 0x550]
mov edx, r15d
call qword [sym.imp.KERNEL32.dll_SleepEx]
mov esi, r12d
jmp 0x14007a57a
lea rax, [rsp + 0x38]
mov ecx, 0x40
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x150]
lea rdx, [rbp + 0x360]
call qword [sym.imp.WS2_32.dll_select]
mov esi, eax
add dword [rbx + 0x530], r15d
cmp esi, r12d
jne 0x14007a599
mov dword [rbp + 0x360], r14d
mov dword [rbp + 0x150], r14d
mov dword [rsp + 0x40], r14d
mov rcx, qword [rbx + 0x510]
mov rdx, qword [rcx + 0x18]
mov qword [rbx + 0x558], rdx
test rdx, rdx
je 0x14007a629
mov rdi, qword [rbx + 0x558]
test rdi, rdi
je 0x14007a5c1
mov rdi, qword [rdi]
jmp 0x14007a5c4
mov rdi, r14
test rdi, rdi
je 0x14007a629
mov rax, qword [rdi + 8]
test rax, rax
je 0x14007a5f1
lea rcx, [rsp + 0x40]
mov edx, esi
mov qword [rsp + 0x20], rcx
lea r9, [rbp + 0x150]
mov rcx, rdi
lea r8, [rbp + 0x360]
call rax
mov rcx, qword [rbx + 0x558]
call fcn.14007db4c
mov r8, qword [rax]
test r8, r8
je 0x14007a612
mov rdx, qword [rbx + 0x558]
mov rcx, rdi
call r8
mov rax, qword [rbx + 0x558]
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x558], rcx
test rcx, rcx
jne 0x14007a5b0
cmp dword [rbx], r14d
je 0x14007a33b
cmp qword [rbx + 0x538], r14
je 0x14007a648
mov rcx, qword [rbx + 0x548]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rdi, qword [rbx + 0x508]
test rdi, rdi
je 0x14007a68f
mov rdi, qword [rdi + 0x18]
jmp 0x14007a677
mov rsi, qword [rdi]
test rsi, rsi
je 0x14007a673
mov rdx, qword [rsi + 8]
mov rcx, rbx
call qword [rsi]
mov rcx, rsi
call fcn.1401ad038
mov rdi, qword [rdi + 0x10]
test rdi, rdi
jne 0x14007a65a
mov rcx, qword [rbx + 0x508]
call fcn.14007dd40
mov qword [rbx + 0x508], r14
mov rax, qword [rbx + 0x510]
mov rax, qword [rax + 0x18]
mov qword [rbx + 0x558], rax
test rax, rax
je 0x14007a6b1
mov rax, qword [rax + 0x10]
mov qword [rbx + 0x558], rax
mov dword [rbx], r15d
cmp qword [rbx + 0x558], r14
je 0x14007a708
mov rdi, qword [rbx + 0x558]
test rdi, rdi
je 0x14007a6ce
mov rdi, qword [rdi]
jmp 0x14007a6d1
mov rdi, r14
test rdi, rdi
je 0x14007a708
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14007a6e4
mov rcx, rdi
call rax
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.1401ad038
mov rcx, qword [rbx + 0x558]
call fcn.14007dbec
mov qword [rbx + 0x558], rax
test rax, rax
jne 0x14007a6bd
mov rax, qword [0x1402cfcc0]
cmp rax, rbx
cmove rax, r14
mov qword [0x1402cfcc0], rax
mov rax, qword [rbx + 0x510]
mov rdi, qword [rax + 0x18]
mov qword [rbx + 0x558], rdi
test rdi, rdi
je 0x14007a755
mov rdi, qword [rdi]
test rdi, rdi
je 0x14007a755
mov rcx, rdi
call qword [rdi + reloc.WS2_32.dll_recv]
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.1401ad038
mov qword [rbx + 0x4f8], r14
mov rcx, qword [rbx + 0x510]
call fcn.14007dd40
mov rax, qword [rbx + 0x518]
mov rcx, qword [rax + 0x18]
jmp 0x14007a7ac
mov rdi, qword [rbx + 0x558]
test rdi, rdi
je 0x14007a77f
mov rdi, qword [rdi]
jmp 0x14007a782
mov rdi, r14
test rdi, rdi
je 0x14007a7b8
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14007a795
mov rcx, rdi
call rax
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.1401ad038
mov rax, qword [rbx + 0x558]
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x558], rcx
test rcx, rcx
jne 0x14007a76e
mov rcx, qword [rbx + 0x518]
call fcn.14007dd40
mov rcx, qword [rbx + 0x520]
test rcx, rcx
je 0x14007a7da
xor r8d, r8d
xor edx, edx
call fcn.14007df64
mov rcx, qword [rbx + 0x4f0]
cmp rcx, r12
je 0x14007a7f3
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx + 0x4f0], r12
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [0x1402cfcbc]
cmp eax, r15d
jne 0x14007a817
mov rcx, qword [0x1402cfcd0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x1402cfcbc]
sub eax, r15d
mov rcx, rbx
mov dword [0x1402cfcbc], eax
call fcn.1401ad038
mov rcx, qword [rbp + 0x570]
xor rcx, rsp
call fcn.1401a5d00
lea r11, [rsp + 0x680]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret