Function at 0x140078c91
Capabilities:
Get socket status

Disassembly:
test rcx, rcx
je 0x140079248
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 [0x140271510]
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]
lea r15d, [r14 + 1]
mov dword [rbp + 0x360], r14d
mov qword [rbx + 0x18], rax
mov rax, qword [0x140274e90]
test rax, rax
mov dword [rsp + 0x40], r14d
mov dword [rbp + 0x150], r14d
cmove rax, rbx
mov dword [rbx + 4], r15d
mov qword [0x140274e90], rax
or r12, 0xffffffffffffffff
jmp 0x14007901f
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 0x140078d60
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 0x140078e27
mov r10, qword [rbx + 0x558]
test r10, r10
je 0x140078d96
mov r10, qword [r10]
jmp 0x140078d99
mov r10, r14
test r10, r10
je 0x140078e22
cmp qword [r10], r14
je 0x140078de6
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 0x140078de6
mov dword [rbx + 0x550], eax
mov rcx, qword [rbx + 0x558]
call fcn.14007c544
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x140078e07
cmp ecx, dword [rbx + 0x550]
jge 0x140078e07
mov dword [rbx + 0x550], ecx
mov rax, qword [rbx + 0x558]
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x558], rcx
test rcx, rcx
jne 0x140078d85
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 0x140078e72
mov rdx, qword [rbx + 0x4f0]
cmp qword [rsp + rcx*8 + 0x48], rdx
je 0x140078e72
add ecx, r15d
cmp ecx, r8d
jb 0x140078e63
cmp ecx, r8d
jne 0x140078e8e
cmp r8d, 0x40
jae 0x140078e8e
mov rax, qword [rbx + 0x4f0]
mov qword [rsp + rcx*8 + 0x48], rax
add dword [rsp + 0x40], r15d
mov rcx, qword [0x140274ea0]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x140078ef9
mov rax, qword [rbx + 0x518]
mov rdi, qword [rax + 0x18]
mov qword [rbx + 0x558], rdi
test rdi, rdi
je 0x140078ebc
mov rdi, qword [rdi]
jmp 0x140078ebf
mov rdi, r14
mov rcx, qword [rbx + 0x510]
mov rdx, rdi
call fcn.14007c650
mov rcx, qword [rbx + 0x558]
call fcn.14007c5e4
test rdi, rdi
je 0x140078ef9
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x140078eed
mov rcx, rdi
call rax
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.140174cc8
mov rax, qword [rbx + 0x518]
cmp dword [rax + 8], r14d
jg 0x140078ea0
mov rcx, qword [0x140274ea0]
xor r8d, r8d
mov edx, r15d
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
add dword [rbx + 0x52c], r15d
cmp dword [rbp + 0x360], r14d
jne 0x140078f46
cmp dword [rbp + 0x150], r14d
jne 0x140078f46
mov ecx, dword [rbx + 0x550]
mov edx, r15d
call qword [sym.imp.KERNEL32.dll_SleepEx]
mov esi, r12d
jmp 0x140078f70
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 0x140078f8f
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 0x14007901f
mov rdi, qword [rbx + 0x558]
test rdi, rdi
je 0x140078fb7
mov rdi, qword [rdi]
jmp 0x140078fba
mov rdi, r14
test rdi, rdi
je 0x14007901f
mov rax, qword [rdi + 8]
test rax, rax
je 0x140078fe7
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.14007c544
mov r8, qword [rax]
test r8, r8
je 0x140079008
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 0x140078fa6
cmp dword [rbx], r14d
je 0x140078d31
cmp qword [rbx + 0x538], r14
je 0x14007903e
mov rcx, qword [rbx + 0x548]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rdi, qword [rbx + 0x508]
test rdi, rdi
je 0x140079085
mov rdi, qword [rdi + 0x18]
jmp 0x14007906d
mov rsi, qword [rdi]
test rsi, rsi
je 0x140079069
mov rdx, qword [rsi + 8]
mov rcx, rbx
call qword [rsi]
mov rcx, rsi
call fcn.140174cc8
mov rdi, qword [rdi + 0x10]
test rdi, rdi
jne 0x140079050
mov rcx, qword [rbx + 0x508]
call fcn.14007c738
mov qword [rbx + 0x508], r14
mov rax, qword [rbx + 0x510]
mov rax, qword [rax + 0x18]
mov qword [rbx + 0x558], rax
test rax, rax
je 0x1400790a7
mov rax, qword [rax + 0x10]
mov qword [rbx + 0x558], rax
mov dword [rbx], r15d
cmp qword [rbx + 0x558], r14
je 0x1400790fe
mov rdi, qword [rbx + 0x558]
test rdi, rdi
je 0x1400790c4
mov rdi, qword [rdi]
jmp 0x1400790c7
mov rdi, r14
test rdi, rdi
je 0x1400790fe
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x1400790da
mov rcx, rdi
call rax
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.140174cc8
mov rcx, qword [rbx + 0x558]
call fcn.14007c5e4
mov qword [rbx + 0x558], rax
test rax, rax
jne 0x1400790b3
mov rax, qword [0x140274e90]
cmp rax, rbx
cmove rax, r14
mov qword [0x140274e90], rax
mov rax, qword [rbx + 0x510]
mov rdi, qword [rax + 0x18]
mov qword [rbx + 0x558], rdi
test rdi, rdi
je 0x14007914b
mov rdi, qword [rdi]
test rdi, rdi
je 0x14007914b
mov rcx, rdi
call qword [rdi + reloc.WS2_32.dll_recv]
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.140174cc8
mov qword [rbx + 0x4f8], r14
mov rcx, qword [rbx + 0x510]
call fcn.14007c738
mov rax, qword [rbx + 0x518]
mov rcx, qword [rax + 0x18]
jmp 0x1400791a2
mov rdi, qword [rbx + 0x558]
test rdi, rdi
je 0x140079175
mov rdi, qword [rdi]
jmp 0x140079178
mov rdi, r14
test rdi, rdi
je 0x1400791ae
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14007918b
mov rcx, rdi
call rax
mov rcx, rdi
mov dword [rdi + 0x30], r12d
call fcn.140174cc8
mov rax, qword [rbx + 0x558]
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x558], rcx
test rcx, rcx
jne 0x140079164
mov rcx, qword [rbx + 0x518]
call fcn.14007c738
mov rcx, qword [rbx + 0x520]
test rcx, rcx
je 0x1400791d0
xor r8d, r8d
xor edx, edx
call fcn.14007c95c
mov rcx, qword [rbx + 0x4f0]
cmp rcx, r12
je 0x1400791e9
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx + 0x4f0], r12
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [0x140274e88]
cmp eax, r15d
jne 0x14007920d
mov rcx, qword [0x140274ea0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x140274e88]
sub eax, r15d
mov rcx, rbx
mov dword [0x140274e88], eax
call fcn.140174cc8
mov rcx, qword [rbp + 0x570]
xor rcx, rsp
call fcn.14016d990
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