Function at 0x140064050
Capabilities:
Send data
Send data on socket

Disassembly:
push rbp
push rdi
push r14
sub rsp, 0xc0
mov rax, qword [0x1400f3e08]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rbp, qword [rdx + 8]
mov rdi, rdx
mov r14, rcx
cmp dword [rbp + 0xbc], 0x100
jne 0x1400640ae
add rdx, 0x90
lea rcx, [rbp + 0xc0]
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov qword [rdx], rcx
mov qword [rax], rdx
mov eax, 0x703e5
mov qword [rcx + 8], rdx
jmp 0x1400643dc
test byte [0x1400f8b3e], 2
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xb8], rsi
mov rsi, qword [rbp + 0x80]
mov qword [rsp + 0xb0], r12
lea r12, [rdx + 0x11c]
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0xa0], r15
mov r13, qword [rsi + 0x38]
je 0x140064118
movzx eax, word [rdx + 0x64]
mov r8, rsi
mov r9d, dword [rdx + 0x60]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x38], r12
mov word [rsp + 0x28], ax
movzx eax, byte [rdx + 0x67]
mov byte [rsp + 0x20], al
call fcn.14005eb10
xor ebx, ebx
mov dword [rsp + 0x80], ebx
test byte [rsi + 0x5a], 1
je 0x140064132
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x58], ebx
jmp 0x14006413f
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x58], 0x1c
movzx eax, byte [rdi + 0x67]
lea r10, [rdi + 0x68]
mov r12, qword [rsp + 0xb0]
lea r8, [rdi + 0xa8]
mov dword [rsp + 0x68], eax
mov rcx, rbx
mov qword [rsp + 0x60], r10
mov edx, ebx
mov qword [rsp + 0x78], r8
movzx eax, byte [rsi + 0x5a]
and al, 1
cmp word [r14], 2
jne 0x1400641ed
test al, al
jne 0x1400641a9
mov dword [rdi + 0xb0], ebx
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov qword [r8], rdx
mov rcx, r8
mov dword [rdi + 0xb4], reloc.OLEAUT32.dll_SafeArrayGetLBound
mov eax, dword [r14 + 0x18]
mov dword [rdi + 0xbc], eax
mov eax, dword [r14 + 4]
mov dword [rdi + 0xb8], eax
lea eax, [rdx + 0x18]
mov r9d, eax
mov dword [rsp + 0x70], eax
test rcx, rcx
jne 0x1400641cb
cmp r9d, 0x10
mov rdx, rbx
cmovae rdx, r8
mov dword [rdx + 8], ebx
jmp 0x140064262
mov rdx, qword [rcx]
add rdx, 7
and rdx, 0xfffffffffffffff8
add rdx, rcx
lea rcx, [r8 + rax]
lea rax, [rdx + 0x10]
cmp rax, rcx
cmova rdx, rbx
mov dword [rdx + 8], ebx
jmp 0x140064262
test al, al
jne 0x140064222
mov dword [r8 + 8], 0x29
mov rcx, r8
mov dword [r8 + 0xc], reloc.OLEAUT32.dll_SafeArrayGetLBound
mov edx, 0x28
mov qword [r8], 0x24
mov eax, dword [r14 + 0x18]
mov dword [r8 + 0x20], eax
movups xmm0, xmmword [r14 + 8]
movups xmmword [r8 + 0x10], xmm0
lea eax, [rdx + 0x18]
mov r9d, eax
mov dword [rsp + 0x70], eax
test rcx, rcx
jne 0x14006423e
cmp r9d, 0x10
mov rdx, rbx
cmovae rdx, r8
jmp 0x14006425b
mov rdx, qword [rcx]
add rdx, 7
and rdx, 0xfffffffffffffff8
add rdx, rcx
lea rcx, [r8 + rax]
lea rax, [rdx + 0x10]
cmp rax, rcx
cmova rdx, rbx
mov dword [rdx + 8], 0x29
mov dword [rdx + 0xc], 0x32
mov qword [rdx], reloc.OLEAUT32.dll_SafeArrayLock
movzx eax, byte [rdi + 2]
mov dword [rdx + 0x10], eax
cmp word [rdi + 0x64], bx
jbe 0x1400642c4
mov eax, dword [rsp + 0x70]
add eax, 0x18
mov dword [rsp + 0x70], eax
mov ecx, eax
mov rax, qword [rdx]
add rcx, qword [rsp + 0x78]
add rax, 7
and rax, 0xfffffffffffffff8
add rdx, rax
lea rax, [rdx + 0x10]
cmp rax, rcx
cmova rdx, rbx
mov dword [rdx + 8], SafeArrayLock
mov dword [rdx + 0xc], 2
mov qword [rdx], reloc.OLEAUT32.dll_SafeArrayLock
movzx eax, word [rdi + 0x64]
mov dword [rdx + 0x10], eax
test byte [rsi + 0x56], 6
jne 0x1400642e2
test byte [rsi + 0x5a], 8
je 0x1400642e2
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.140063dc0
jmp 0x1400643bc
lea rax, [rdi + 0x18]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov dword [rax], 0x8004
mov qword [rax + 8], rax
mov eax, 1
mov dword [rdi + 0x10], 0x57494e57
movups xmmword [rdi + 0x28], xmm0
movups xmmword [rdi + 0x38], xmm0
lock xadd qword [rbp], rax
inc rax
cmp rax, 1
jg 0x140064328
mov ecx, recv
int 0x29
test byte [rsi + 0x56], 6
lea rax, [rdi + 0x28]
mov rcx, qword [rbp + 0x88]
lea r9, [rsp + 0x88]
jne 0x14006435f
mov qword [rsp + 0x28], rbx
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rax, qword [r13 + 0x40]
call qword [case.0x1400639e1.0]
jmp 0x14006437b
movzx r8d, byte [rdi + 0x67]
mov rdx, r10
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
call qword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x1400643a6
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
cmp eax, 0x3e5
jne 0x140064393
xor eax, eax
jmp 0x1400643bc
test eax, eax
jg 0x14006439b
mov esi, eax
jmp 0x1400643a8
movzx esi, ax
or esi, 0x80070000
jmp 0x1400643a8
mov esi, ebx
mov rcx, rbp
call fcn.1400614c0
mov edx, ebx
mov rcx, rdi
call fcn.140063cd0
mov eax, esi
mov r13, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xf0]
mov r15, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14007f5b0
add rsp, 0xc0
pop r14
pop rdi
pop rbp
ret