Function at 0x140091410
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
movzx r15d, word [rcx + 0x20]
mov r13, qword [rcx + 0x10]
mov eax, 0xfff
and r15w, ax
mov rbx, r9
mov r14d, r8d
mov rbp, rdx
mov rsi, rcx
test r8b, 2
je 0x14009166e
mov rdi, qword [r9]
lea r12, [0x1400f1524]
mov ebx, 1
mov ecx, dword [rdi + 0x10]
test ecx, ecx
je 0x14009148f
dec ecx
je 0x140091478
dec ecx
je 0x140091478
sub ecx, 2
je 0x14009147d
dec ecx
je 0x14009148f
mov rdi, r12
jmp 0x14009149c
mov rcx, qword [rdi]
xor r8d, r8d
mov edx, ebx
call fcn.140001820
mov rdi, rax
jmp 0x140091492
mov rdi, qword [rdi]
cmp word [rdi], 0x5f
jne 0x14009149c
add rdi, 2
lea rdx, str.NewEnum
mov rcx, rdi
call fcn.1400d6a7c
test eax, eax
jne 0x1400914ff
mov rdi, qword [rsi + 0x10]
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetElemsize]
cmp eax, ebx
je 0x1400914ca
mov edi, 0x80004001
jmp 0x14009164c
lea rdx, [rsp + 0x90]
mov r8, rdi
mov rcx, rsi
call fcn.140091a10
mov edi, eax
test eax, eax
js 0x14009164c
mov rcx, qword [rsp + 0x90]
mov dword [rbp + 0x10], 6
mov qword [rbp], rcx
jmp 0x14009164c
lea rdx, str.Clone
mov rcx, rdi
call fcn.1400d6a7c
test eax, eax
jne 0x14009158f
lea rdx, [rsp + 0x90]
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_DispGetParam]
mov edi, eax
test eax, eax
js 0x14009164c
mov ecx, 0x28
call fcn.1400d7718
mov rcx, qword [rsp + 0x90]
test rax, rax
je 0x140091577
movzx edx, word [rsi + 0x20]
mov dword [rax + 8], ebx
mov qword [rax + 0x10], rcx
mov word [rax + 0x22], bx
mov word [rax + 0x20], dx
lea r8, vtable.ComObject.0
mov qword [rax], r8
xor esi, esi
mov qword [rax + 0x18], rsi
mov dword [rbp + 0x10], 6
mov qword [rbp], rax
jmp 0x14009164c
xor esi, esi
mov qword [rbp], r12
mov dword [rbp + 0x10], esi
mov qword [rbp + 0x18], rsi
call qword [sym.imp.WSOCK32.dll_recv]
jmp 0x14009164c
lea rdx, str.MaxIndex
mov rcx, rdi
call fcn.1400d6a7c
test eax, eax
jne 0x1400915ea
cmp dword [rsp + 0xb0], ebx
jle 0x1400915d3
mov rdi, qword [rsp + 0xa8]
xor edx, edx
mov rcx, qword [rdi + 8]
call fcn.1400858d0
lea r8, [rsp + 0xa0]
mov rcx, r13
mov edx, eax
call qword [sym.imp.WSOCK32.dll_send]
jmp 0x140091630
lea r8, [rsp + 0xa0]
mov edx, ebx
mov rcx, r13
mov eax, ebx
call qword [sym.imp.WSOCK32.dll_send]
jmp 0x140091630
lea rdx, str.MinIndex
mov rcx, rdi
call fcn.1400d6a7c
test eax, eax
jne 0x140091647
cmp dword [rsp + 0xb0], ebx
jle 0x14009161b
mov rdi, qword [rsp + 0xa8]
xor edx, edx
mov rcx, qword [rdi + 8]
call fcn.1400858d0
jmp 0x14009161d
mov eax, ebx
lea r8, [rsp + 0xa0]
mov edx, eax
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_SafeArrayLock]
mov edi, eax
test eax, eax
js 0x14009164c
movsxd rax, dword [rsp + 0xa0]
mov dword [rbp + 0x10], ebx
mov qword [rbp], rax
jmp 0x14009164c
mov edi, 0x80020006
mov rcx, qword [0x1401255c8]
mov dword [rcx + 0x40], edi
test edi, edi
jns 0x140091667
xor r8d, r8d
mov rdx, r12
mov ecx, edi
call fcn.140090950
mov eax, ebx
jmp 0x140091785
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetElemsize]
mov r12d, eax
cmp eax, 8
ja 0x140091772
mov ecx, dword [rsp + 0xb0]
test r14b, 1
je 0x140091692
dec ecx
cmp r12d, ecx
jne 0x140091772
xor esi, esi
test eax, eax
je 0x1400916ce
lea rdi, [rsp + 0x28]
mov rcx, qword [rbx]
call fcn.1400855e0
test eax, eax
je 0x140091709
mov rcx, qword [rbx]
xor edx, edx
call fcn.1400858d0
inc esi
add rdi, 4
mov dword [rdi - 4], eax
add rbx, 8
cmp esi, r12d
jb 0x1400916a6
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x28]
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_SysStringByteLen]
mov ebx, eax
test eax, eax
js 0x140091747
test r14b, 3
jne 0x140091719
mov rdx, qword [rsp + 0x20]
mov r8, rbp
movzx ecx, r15w
call fcn.140090890
jmp 0x140091747
mov rax, qword [0x1401255c8]
mov dword [rax + 0x40], 0x80070057
jmp 0x140091780
mov rdi, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x20]
movzx edx, r15w
mov rdi, qword [rdi + r12*8]
mov rcx, rdi
call fcn.140090780
mov ebx, eax
test eax, eax
js 0x140091747
mov rdx, rbp
mov rcx, rdi
call fcn.1400908f0
mov rcx, r13
call qword [sym.imp.WSOCK32.dll_shutdown]
mov r11, qword [0x1401255c8]
mov dword [r11 + 0x40], ebx
test ebx, ebx
jns 0x140091780
lea rdx, [0x1400f1524]
xor r8d, r8d
mov ecx, ebx
call fcn.140090950
jmp 0x140091780
mov rax, qword [0x1401255c8]
mov dword [rax + 0x40], 0x8002000e
mov eax, 1
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret