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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x30
xor ebx, ebx
xor r15d, r15d
xor r12d, r12d
mov ebp, r8d
mov rsi, rdx
mov rdi, rcx
mov r13, rcx
test rcx, rcx
je 0x14006bc22
mov rax, qword [rcx + 0x58]
test rax, rax
je 0x14006b746
mov r9d, r8d
mov dword [rsp + 0x28], 1
mov r8, rdx
mov dword [rsp + 0x20], ebx
lea edx, [rbx + 3]
call rax
mov ebx, eax
test eax, eax
jle 0x14006bc24
mov qword [rsp + 0x78], r14
lea r8, [0x140000000]
mov r14d, 0xffffffff
test ebx, ebx
js 0x14006bb8e
mov rax, qword [rdi + 8]
test rax, rax
je 0x14006b786
mov r9, qword [rax + 0x108]
test r9, r9
je 0x14006b786
mov r8d, ebp
mov rdx, rsi
mov rcx, rdi
call r9
jmp 0x14006bb04
movzx edx, byte [rdi + 0x7c]
lea eax, [rdx - 2]
cmp eax, 6
ja case.default.0x14006b7a3
cdqe
mov ecx, dword [r8 + rax*4 + 0x6bc34]
add rcx, r8
jmp rcx
mov dword [rsp + 0x70], 0
test rsi, rsi
je 0x14006b8da
xor r8d, r8d
lea r9, [rsp + 0x70]
test byte [rdi + 0x78], 1
mov edx, ebp
mov rcx, rsi
je 0x14006b7e8
mov dword [rsp + 0x20], 2
call fcn.1400ae110
cmp eax, 0xffffff36
je 0x14006b7f2
mov r15d, r14d
mov ebx, r14d
jmp 0x14006bb06
mov dword [rsp + 0x20], 0
jmp 0x14006b7d1
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x14006b804
xor r15d, r15d
xor ebx, ebx
jmp 0x14006bb06
mov rcx, rax
mov rax, qword [0x1401dfe48]
test rax, rax
je 0x14006b817
call rax
jmp 0x14006b81c
call fcn.1400d9d00
mov rbx, rax
test rax, rax
je 0x14006b7dd
test byte [rdi + 0x78], 1
lea r9, [rsp + 0x70]
mov r8, rax
mov edx, ebp
mov rcx, rsi
je 0x14006b874
mov dword [rsp + 0x20], 2
call fcn.1400ae110
test eax, eax
jns 0x14006b8a1
mov rax, qword [0x1401dfe38]
mov rcx, rbx
test rax, rax
je 0x14006b864
call rax
mov r15d, r14d
mov ebx, r14d
jmp 0x14006bb06
call fcn.1400d9054
mov r15d, r14d
mov ebx, r14d
jmp 0x14006bb06
mov dword [rsp + 0x20], 0
call fcn.1400ae110
test eax, eax
jns 0x14006b8a1
mov rax, qword [0x1401dfe38]
mov rcx, rbx
test rax, rax
je 0x14006b864
call rax
mov r15d, r14d
mov ebx, r14d
jmp 0x14006bb06
test r12, r12
je 0x14006b8be
mov rax, qword [0x1401dfe38]
mov rcx, r12
test rax, rax
je 0x14006b8b9
call rax
jmp 0x14006b8be
call fcn.1400d9054
mov r12, rbx
mov ebx, ebp
mov r15d, ebp
test ebp, ebp
jle 0x14006bb06
mov ebp, dword [rsp + 0x70]
mov rsi, r12
jmp 0x14006bb06
mov ebx, 0xffffff53
mov r15d, ebx
jmp case.default.0x14006b7a3
test rsi, rsi
je 0x14006b9b5
mov ebx, 0xfffffffe
cmp dl, 5
je 0x14006b901
xor ebx, ebx
jmp 0x14006bb06
cmp qword [rdi + 0x20], 0
je 0x14006b992
movsxd rax, dword [rdi + 0x64]
test ebp, ebp
jne 0x14006b92a
mov r9, rax
add r9, qword [rdi + 0x30]
mov qword [rsp + 0x88], r9
xor ebx, ebx
jmp 0x14006bb06
mov ecx, dword [rdi + 0x68]
cmp eax, ecx
jge 0x14006b93b
mov r8d, dword [rdi + 0x60]
mov edx, ecx
sub edx, eax
jmp 0x14006b965
test ecx, ecx
jle 0x14006b947
cmp eax, ecx
je 0x14006b7e0
mov r8d, dword [rdi + 0x60]
mov edx, r8d
sub edx, eax
test edx, edx
jg 0x14006b965
test ecx, ecx
je 0x14006b7e0
mov edx, ecx
jg 0x14006b963
mov edx, r8d
xor eax, eax
cmp ebp, edx
movsxd r9, eax
mov ebx, ebp
cmovge ebx, edx
add r9, qword [rdi + 0x30]
add eax, ebx
mov qword [rsp + 0x88], r9
mov dword [rdi + 0x64], eax
cmp eax, r8d
jne 0x14006b99a
test ecx, ecx
jle 0x14006b99a
mov dword [rdi + 0x64], 0
jmp 0x14006b99a
mov r9, qword [rsp + 0x88]
test ebx, ebx
jle 0x14006bb06
movsxd r8, ebx
mov rdx, rsi
mov rcx, r9
call fcn.1400fc490
jmp 0x14006bb06
mov ebx, 0xffffff53
jmp case.default.0x14006b7a3
mov rcx, qword [rdi]
test rcx, rcx
je 0x14006ba2e
test rsi, rsi
je 0x14006ba2e
test ebp, ebp
jne 0x14006b9d8
lea ebx, [rbp + 1]
jmp case.default.0x14006b7a3
mov eax, dword [rdi + 0x60]
add eax, ebp
movsxd rdx, eax
call fcn.14006cf90
test eax, eax
jne 0x14006b9f0
xor ebx, ebx
jmp 0x14006bb06
mov rax, qword [rdi]
mov rdx, qword [rax]
test rdx, rdx
jne 0x14006ba02
xor ebx, ebx
jmp 0x14006bb06
movsxd rcx, dword [rdi + 0x60]
add rcx, rdx
movsxd r8, ebp
mov rdx, rsi
call fcn.1400fc490
mov rcx, qword [rdi]
mov ebx, ebp
mov rax, qword [rcx]
mov qword [rdi + 0x30], rax
mov eax, dword [rcx + 0x10]
add dword [rdi + 0x60], ebp
mov dword [rdi + 0x70], eax
jmp 0x14006bb06
xor ebx, ebx
jmp case.default.0x14006b7a3
mov r9, qword [rdi + 0x30]
test r9, r9
je 0x14006ba56
movsxd r8, ebp
mov edx, 1
mov rcx, rsi
call fcn.1400d8ae8
mov rbx, rax
jmp 0x14006bb06
mov ebx, 0xffffff52
jmp case.default.0x14006b7a3
cmp qword [rdi + 0x18], 0
je case.default.0x14006b7a3
test rsi, rsi
je 0x14006b9b5
mov r9, qword [rdi + 0x30]
test r9, r9
je 0x14006bad9
cmp dword [r9 + 0x240], 0
jne 0x14006babe
cmp qword [0x14010c7c8], 0
lea rax, [0x14010c7c0]
je 0x14006baaf
mov ecx, dword [r9 + 0x230]
nop
cmp ecx, dword [rax]
je 0x14006bad4
add rax, 0x10
cmp qword [rax + 8], 0
jne 0x14006baa0
mov ecx, dword [r9 + 0x230]
cmp ecx, 0x357
jne 0x14006bad9
mov r8d, ebp
mov rdx, rsi
mov rcx, r9
call fcn.140063a60
dec eax
neg eax
sbb ebx, ebx
jmp 0x14006bb06
mov ecx, dword [rax + 4]
jmp 0x14006bab6
movsxd r8, ebp
mov rdx, rsi
mov rcx, r9
call fcn.140063c40
xor ebx, ebx
cmp eax, 1
cmovne ebx, r14d
jmp 0x14006bb06
mov ecx, dword [rdi + 0x70]
xor r9d, r9d
mov r8d, ebp
mov rdx, rsi
call qword [sym.imp.WS2_32.dll_send]
mov ebx, eax
lea r8, [0x140000000]
mov rdi, qword [rdi + 0x18]
test rdi, rdi
jne 0x14006b758
jmp 0x14006bb8e
cmp dword [r13 + 0x74], 0
jne 0x14006bb8b
mov rbx, qword [rdi + 0x30]
test rbx, rbx
jne 0x14006bb33
mov ebx, 0xffffff53
jmp 0x14006bb8e
and dword [rdi + 0x78], 0xffffffef
test rsi, rsi
je 0x14006bbd2
test ebp, ebp
js 0x14006bbd2
mov rax, qword [rbx + 0x4e8]
test rax, rax
je 0x14006bb6c
mov edx, 8
mov rcx, rbx
lea r8d, [rdx - 7]
call rax
mov dword [rbx + 0x4f0], 8
mov r8d, ebp
mov rdx, rsi
mov rcx, rbx
call fcn.140084ab0
test eax, eax
js 0x14006bbd8
mov r14d, eax
jne 0x14006bb8b
mov dword [r13 + 0x74], 1
mov ebx, r14d
mov rax, qword [r13 + 0x58]
mov r14, qword [rsp + 0x78]
test rax, rax
je 0x14006bbba
mov dword [rsp + 0x28], ebx
mov r9d, ebp
mov r8, rsi
mov dword [rsp + 0x20], 0
mov edx, 0x83
mov rcx, r13
call rax
mov ebx, eax
test r12, r12
je 0x14006bc16
mov rax, qword [0x1401dfe38]
mov rcx, r12
test rax, rax
je 0x14006bc11
call rax
jmp 0x14006bc16
mov r14d, 0xffffff53
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14006bb83
mov ecx, dword [rcx + 0x2d0]
lea eax, [rcx + 0x147]
test eax, 0xfffffffb
je 0x14006bc08
cmp ecx, 0xfffffea9
je 0x14006bb83
lea eax, [rcx - 2]
cmp eax, 1
ja 0x14006bb83
or dword [rdi + 0x78], 0x10
jmp 0x14006bb8b
call fcn.1400d9054
test r15d, r15d
jle 0x14006bc22
mov eax, r15d
test ebx, ebx
jg 0x14006bc24
mov eax, ebx
add rsp, 0x30
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret