Function at 0x14002ff10
Capabilities:
Get socket status

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rsi, r8
mov rdi, rcx
lea rbx, [rcx + 0x30]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, 1
mov byte [rsp + 0x58], al
cmp byte [rdi + 0x198], 0
jne 0x1400306a6
lea rbp, [rdi + 0x148]
mov qword [rsp + 0xe8], rbp
mov rax, qword [rbp]
xor edx, edx
mov dword [rax], edx
mov qword [rbp + 0x10], 0xffffffffffffffff
lea r15, [rdi + 0x160]
mov rax, qword [r15]
mov dword [rax], edx
mov qword [r15 + 0x10], 0xffffffffffffffff
lea rcx, [rdi + 0x178]
mov qword [rsp + 0x38], rcx
mov rax, qword [rcx]
mov dword [rax], edx
mov qword [rcx + 0x10], 0xffffffffffffffff
mov rbx, qword [rdi + 0x58]
mov ecx, edx
mov r8, qword [rbp]
mov edx, dword [r8]
test edx, edx
je 0x14002ffcf
nop
mov eax, ecx
cmp qword [r8 + rax*8 + 8], rbx
je 0x14002ffea
inc ecx
cmp ecx, edx
jb 0x14002ffc0
inc edx
mov rcx, rbp
call fcn.14002f7c0
mov rcx, qword [rbp]
mov eax, dword [rcx]
mov qword [rcx + rax*8 + 8], rbx
mov rax, qword [rbp]
inc dword [rax]
mov rbx, qword [rdi + 0x190]
test rbx, rbx
je 0x14003000c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
test al, al
je 0x140030018
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14002fff6
cmp qword [rdi + 0x78], 0
jne 0x140030018
xor r13b, r13b
jmp 0x14003001b
mov r13b, 1
mov rax, qword [rdi + 0x70]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1400300e9
mov rsi, qword [rsp + 0xd0]
nop dword [rax]
nop word [rax + rax]
lea rdi, [rbx]
mov rbx, qword [rbx]
mov r14, qword [rbp]
mov eax, dword [r14]
lea edx, [rax + 1]
mov ecx, dword [rbp + 8]
cmp edx, ecx
jbe 0x1400300c0
mov eax, ecx
shr eax, 1
add ecx, eax
cmp ecx, edx
cmovae edx, ecx
mov r12d, edx
lea rcx, [rdx*8 + 8]
call fcn.14016aa7c
mov r14, rax
mov rcx, qword [rbp]
mov edx, dword [rcx]
mov dword [rax], edx
xor edx, edx
mov r8, qword [rbp]
cmp dword [r8], edx
jbe 0x1400300ad
nop dword [rax + rax]
lea rcx, [rdx*8]
mov rax, qword [rcx + r8 + 8]
mov qword [r14 + rcx + 8], rax
inc edx
mov r8, qword [rbp]
cmp edx, dword [r8]
jb 0x140030090
mov rcx, r8
call fcn.1400a81c0
mov qword [rbp], r14
mov dword [rbp + 8], r12d
mov eax, dword [r14]
mov rcx, qword [rdi + 0x10]
mov qword [r14 + rax*8 + 8], rcx
mov rax, qword [rbp]
inc dword [rax]
cmp rbx, qword [rsi + 0x70]
jne 0x140030040
mov rsi, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xd0]
mov r12, qword [rdi + 0x158]
test r12, r12
mov eax, 0
cmove r12, rax
mov qword [rsp + 0x40], r12
test r13b, r13b
jne 0x14003010f
cmp qword [rdi + 0xb0], rax
je 0x140030112
mov r13b, 1
mov rax, qword [rdi + 0xa8]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1400301ea
mov rsi, qword [rsp + 0xd0]
xor ebp, ebp
nop
lea rdi, [rbx]
mov rbx, qword [rbx]
mov rax, qword [r15]
mov edx, dword [rax]
inc edx
mov ecx, dword [r15 + 8]
cmp edx, ecx
jbe 0x1400301ad
mov eax, ecx
shr eax, 1
add ecx, eax
cmp ecx, edx
cmovae edx, ecx
mov r12d, edx
lea rcx, [rdx*8 + 8]
call fcn.14016aa7c
mov r14, rax
mov rcx, qword [r15]
mov edx, dword [rcx]
mov dword [rax], edx
mov edx, ebp
mov r8, qword [r15]
cmp dword [r8], ebp
jbe 0x14003019e
nop dword [rax]
nop dword [rax + rax]
mov eax, edx
lea rcx, [rax*8]
mov rax, qword [r8 + rcx + 8]
mov qword [rcx + r14 + 8], rax
inc edx
mov r8, qword [r15]
cmp edx, dword [r8]
jb 0x140030180
mov rcx, r8
call fcn.1400a81c0
mov qword [r15], r14
mov dword [r15 + 8], r12d
mov rdx, qword [rdi + 0x10]
mov rcx, qword [r15]
mov eax, dword [rcx]
mov qword [rcx + rax*8 + 8], rdx
mov rax, qword [r15]
inc dword [rax]
cmp rbx, qword [rsi + 0xa8]
jne 0x140030130
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xe8]
mov r12, qword [rsp + 0x40]
mov rdi, qword [rsp + 0xd0]
mov rax, qword [rdi + 0x170]
cmp rax, r12
cmova r12, rax
mov qword [rsp + 0x40], r12
test r13b, r13b
jne 0x140030214
cmp qword [rdi + 0xe8], 0
mov byte [rsp + 0xe8], r13b
je 0x14003021c
mov byte [rsp + 0xe8], 1
lea r14, [rdi + 0xe0]
mov rax, qword [r14]
mov rbx, qword [rax]
mov r13, qword [rsp + 0x38]
cmp rbx, rax
je 0x1400302f8
xor esi, esi
nop dword [rax]
lea rdi, [rbx]
mov rbx, qword [rbx]
mov rax, qword [r13]
mov edx, dword [rax]
inc edx
mov ecx, dword [r13 + 8]
cmp edx, ecx
jbe 0x1400302c5
mov eax, ecx
shr eax, 1
add ecx, eax
cmp ecx, edx
cmovae edx, ecx
mov r13d, edx
lea rcx, [rdx*8 + 8]
call fcn.14016aa7c
mov r12, rax
mov r9, qword [rsp + 0x38]
mov rcx, qword [r9]
mov edx, dword [rcx]
mov dword [rax], edx
mov edx, esi
mov r8, qword [r9]
cmp dword [r8], esi
jbe 0x1400302ae
nop word [rax + rax]
mov eax, edx
lea rcx, [rax*8]
mov rax, qword [r8 + rcx + 8]
mov qword [r12 + rcx + 8], rax
inc edx
mov r8, qword [r9]
cmp edx, dword [r8]
jb 0x140030290
mov rcx, r8
call fcn.1400a81c0
mov rcx, qword [rsp + 0x38]
mov qword [rcx], r12
mov dword [rcx + 8], r13d
mov r13, rcx
mov rdx, qword [rdi + 0x10]
mov rcx, qword [r13]
mov eax, dword [rcx]
mov qword [rcx + rax*8 + 8], rdx
mov rax, qword [r13]
inc dword [rax]
cmp rbx, qword [r14]
jne 0x140030240
mov rsi, qword [rsp + 0xe0]
mov r12, qword [rsp + 0x40]
mov rdi, qword [rsp + 0xd0]
mov rax, qword [rdi + 0x188]
cmp rax, r12
cmova r12, rax
cmp byte [rsp + 0xe8], 0
jne 0x14003031e
cmp qword [rdi + 0x120], 0
jne 0x14003031e
xor bl, bl
jmp 0x140030320
mov bl, 1
add rdi, 0x110
mov r8, rsi
mov rdx, rdi
mov rcx, r15
call fcn.1400308e0
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx + 0x170]
cmp rax, r12
cmova r12, rax
mov qword [rsp + 0x40], r12
mov r8, rsi
mov rdx, rdi
mov rcx, r13
call fcn.1400308e0
mov rdx, qword [rsp + 0xd0]
mov r12, qword [rdx + 0x188]
cmp r12, qword [rsp + 0x40]
cmovbe r12, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xd8]
test ecx, ecx
jne 0x14003038b
test bl, bl
je 0x14003069f
xor ebx, ebx
mov qword [rsp + 0x30], rbx
test ecx, ecx
je 0x1400303e9
mov eax, 0x11e1a300
cmp ecx, eax
cmova ecx, eax
mov rbx, qword [rdx + 0x190]
test rbx, rbx
je 0x1400303c6
nop dword [rax]
mov rax, qword [rbx]
mov edx, ecx
mov rcx, rbx
call qword [rax + 0x18]
mov ecx, eax
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x1400303b0
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x30], edx
imul eax, edx, 0xf4240
sub ecx, eax
mov dword [rsp + 0x34], ecx
xor ebx, ebx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
mov byte [rsp + 0xe8], al
mov byte [rsp + 0x58], al
mov r9, qword [r13]
mov r8, qword [r15]
mov rdx, qword [rbp]
test rdx, rdx
jne 0x140030508
test r8, r8
jne 0x140030508
test r9, r9
jne 0x140030508
mov eax, 0x10624dd3
imul dword [rsp + 0x34]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul eax, dword [rsp + 0x30], 0x3e8
add ecx, eax
mov eax, 1
cmove ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r12, qword [rsp + 0xd0]
lea rcx, [r12 + 0x30]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, 1
mov byte [rsp + 0xe8], al
mov byte [rsp + 0x58], al
test ebx, ebx
jle 0x14003066b
mov r8, rsi
mov rdx, rdi
mov rcx, r13
call fcn.14002f440
mov r8, rsi
mov rdx, rdi
mov rcx, r15
call fcn.14002f440
xor eax, eax
mov r15d, 2
nop
mov ebp, eax
mov rcx, qword [r13]
cmp dword [rcx], 0
jbe 0x140030659
nop
mov eax, ebp
mov rcx, qword [rcx + rax*8 + 8]
mov r8, qword [r14 + 0x28]
test r8, r8
je 0x140030649
xor edx, edx
mov rax, rcx
div r8
add rdx, rdx
mov rax, qword [r14 + 0x20]
mov rbx, qword [rax + rdx*8]
cmp rbx, qword [r14]
je 0x140030649
mov rax, qword [rax + rdx*8 + 8]
mov rax, qword [rax]
cmp rbx, rax
je 0x140030649
cmp qword [rbx + 0x10], rcx
je 0x1400305d5
mov rbx, qword [rbx]
cmp rbx, rax
jne 0x1400304f1
jmp 0x140030649
cmp dword [rsp + 0x30], 0
jne 0x140030529
mov ecx, dword [rsp + 0x34]
lea eax, [rcx - 1]
mov r10d, 0x3e8
cmp eax, 0x3e6
cmovbe ecx, r10d
mov dword [rsp + 0x34], ecx
lea ecx, [r12 + 1]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_select]
mov ebx, eax
mov edx, eax
shr edx, 0x1f
lea rcx, [rsp + 0x60]
call fcn.1400124a0
test ebx, ebx
jle 0x140030452
mov rdx, qword [rbp]
mov r12, qword [rsp + 0xd0]
mov rcx, qword [r12 + 0x58]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x14003045a
lea rcx, [r12 + 0x58]
call fcn.14002f9e0
test al, al
jne 0x1400305bd
lea rcx, [r12 + 0x30]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov bpl, 1
mov byte [rsp + 0xe8], bpl
mov byte [rsp + 0x58], bpl
mov byte [r12 + 0x198], bpl
lea rdx, [r12 + 0x1a8]
xor r8d, r8d
mov rcx, qword [r12 + 0x28]
call fcn.140012b30
jmp 0x1400305c5
movzx ebp, byte [rsp + 0xe8]
dec ebx
test bpl, bpl
jne 0x140030472
jmp 0x14003045a
cmp rbx, qword [r14]
je 0x140030649
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x14003063d
mov rax, qword [rdi + 0x60]
mov rcx, rdi
call rax
test eax, eax
je 0x140030649
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140030618
mov rax, qword [rcx + 0x20]
mov qword [rbx + 0x18], rax
test rax, rax
jne 0x140030610
mov qword [rbx + 0x20], rax
mov qword [rcx + 0x20], rax
jmp 0x14003061a
xor eax, eax
mov qword [rcx + 0x20], rax
jmp 0x14003061a
xor eax, eax
mov qword [rdi + 0x20], rax
mov rax, qword [rsi + 8]
test rax, rax
je 0x14003062d
mov qword [rax + 0x20], rdi
jmp 0x140030630
mov qword [rsi], rdi
mov qword [rsi + 8], rdi
mov rdi, qword [rbx + 0x18]
test rdi, rdi
jne 0x1400305e3
lea rcx, [r14 - 8]
mov rdx, rbx
call fcn.140012340
inc ebp
mov rcx, qword [r13]
cmp ebp, dword [rcx]
jb 0x1400304b0
xor eax, eax
sub r13, 0x18
sub r14, 0x38
sub r15, 1
jns 0x1400304a0
mov rbx, qword [r12 + 0x190]
test rbx, rbx
je 0x140030695
nop dword [rax + rax]
mov rax, qword [rbx]
mov rdx, rsi
mov rcx, rbx
call qword [rax + 0x20]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140030680
movzx eax, byte [rsp + 0xe8]
jmp 0x1400306a1
mov al, 1
mov rbx, qword [rsp + 0x48]
test al, al
je 0x1400306b3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret