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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r15
sub rsp, 0x48
xor ebx, ebx
mov qword [rsp + 0x98], rcx
xor r15d, r15d
xor r12d, r12d
mov ebp, r8d
mov rsi, rdx
mov rdi, rcx
test rcx, rcx
je 0x14005c4fa
lea rax, [rcx + 0x58]
mov qword [rsp + 0x30], rax
mov rax, qword [rax]
test rax, rax
je 0x14005bfc1
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 0x14005c4fc
mov qword [rsp + 0x88], r13
lea r8, [0x140000000]
mov r13, qword [rsp + 0x80]
mov qword [rsp + 0x40], r14
mov r14d, 0xffffffff
test ebx, ebx
js 0x14005c394
mov rax, qword [rdi + 8]
test rax, rax
je 0x14005c011
mov r9, qword [rax + 0x108]
test r9, r9
je 0x14005c011
mov r8d, ebp
mov rdx, rsi
mov rcx, rdi
call r9
jmp 0x14005c37e
movzx edx, byte [rdi + 0x7c]
lea eax, [rdx - 2]
cmp eax, 6
ja case.default.0x14005c02e
cdqe
mov ecx, dword [r8 + rax*4 + 0x5c50c]
add rcx, r8
jmp rcx
mov dword [rsp + 0x80], 0
test rsi, rsi
je 0x14005c174
xor r8d, r8d
lea r9, [rsp + 0x80]
test byte [rdi + 0x78], 1
mov edx, ebp
mov rcx, rsi
je 0x14005c079
mov dword [rsp + 0x20], 2
call fcn.14009ea10
cmp eax, 0xffffff36
je 0x14005c083
mov r15d, r14d
mov ebx, r14d
jmp 0x14005c380
mov dword [rsp + 0x20], 0
jmp 0x14005c062
mov eax, dword [rsp + 0x80]
test eax, eax
jne 0x14005c098
xor r15d, r15d
xor ebx, ebx
jmp 0x14005c380
mov rcx, rax
mov rax, qword [0x1402324f8]
test rax, rax
je 0x14005c0ab
call rax
jmp 0x14005c0b0
call fcn.1400ca3b8
mov rbx, rax
test rax, rax
je 0x14005c06e
test byte [rdi + 0x78], 1
lea r9, [rsp + 0x80]
mov r8, rax
mov edx, ebp
mov rcx, rsi
je 0x14005c10b
mov dword [rsp + 0x20], 2
call fcn.14009ea10
test eax, eax
jns 0x14005c138
mov rax, qword [0x1402324f0]
mov rcx, rbx
test rax, rax
je 0x14005c0fb
call rax
mov r15d, r14d
mov ebx, r14d
jmp 0x14005c380
call fcn.1400c970c
mov r15d, r14d
mov ebx, r14d
jmp 0x14005c380
mov dword [rsp + 0x20], 0
call fcn.14009ea10
test eax, eax
jns 0x14005c138
mov rax, qword [0x1402324f0]
mov rcx, rbx
test rax, rax
je 0x14005c0fb
call rax
mov r15d, r14d
mov ebx, r14d
jmp 0x14005c380
test r12, r12
je 0x14005c155
mov rax, qword [0x1402324f0]
mov rcx, r12
test rax, rax
je 0x14005c150
call rax
jmp 0x14005c155
call fcn.1400c970c
mov r12, rbx
mov ebx, ebp
mov r15d, ebp
test ebp, ebp
jle 0x14005c380
mov ebp, dword [rsp + 0x80]
mov rsi, r12
jmp 0x14005c380
mov ebx, 0xffffff53
mov r15d, ebx
jmp case.default.0x14005c02e
test rsi, rsi
je 0x14005c231
mov ebx, 0xfffffffe
cmp dl, 5
je 0x14005c19b
xor ebx, ebx
jmp 0x14005c380
cmp qword [rdi + 0x20], 0
je 0x14005c216
movsxd rax, dword [rdi + 0x64]
test ebp, ebp
jne 0x14005c1b8
mov r13, rax
add r13, qword [rdi + 0x30]
xor ebx, ebx
jmp 0x14005c380
mov ecx, dword [rdi + 0x68]
cmp eax, ecx
jge 0x14005c1c9
mov r8d, dword [rdi + 0x60]
mov edx, ecx
sub edx, eax
jmp 0x14005c1f3
test ecx, ecx
jle 0x14005c1d5
cmp eax, ecx
je 0x14005c071
mov r8d, dword [rdi + 0x60]
mov edx, r8d
sub edx, eax
test edx, edx
jg 0x14005c1f3
test ecx, ecx
je 0x14005c071
mov edx, ecx
jg 0x14005c1f1
mov edx, r8d
xor eax, eax
cmp ebp, edx
movsxd r13, eax
mov ebx, ebp
cmovge ebx, edx
add r13, qword [rdi + 0x30]
add eax, ebx
mov dword [rdi + 0x64], eax
cmp eax, r8d
jne 0x14005c216
test ecx, ecx
jle 0x14005c216
mov dword [rdi + 0x64], 0
test ebx, ebx
jle 0x14005c380
movsxd r8, ebx
mov rdx, rsi
mov rcx, r13
call fcn.1400c3f50
jmp 0x14005c380
mov ebx, 0xffffff53
jmp case.default.0x14005c02e
mov rcx, qword [rdi]
test rcx, rcx
je 0x14005c2aa
test rsi, rsi
je 0x14005c2aa
test ebp, ebp
jne 0x14005c254
lea ebx, [rbp + 1]
jmp case.default.0x14005c02e
mov eax, dword [rdi + 0x60]
add eax, ebp
movsxd rdx, eax
call fcn.14005d860
test eax, eax
jne 0x14005c26c
xor ebx, ebx
jmp 0x14005c380
mov rax, qword [rdi]
mov rdx, qword [rax]
test rdx, rdx
jne 0x14005c27e
xor ebx, ebx
jmp 0x14005c380
movsxd rcx, dword [rdi + 0x60]
add rcx, rdx
movsxd r8, ebp
mov rdx, rsi
call fcn.1400c3f50
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 0x14005c380
xor ebx, ebx
jmp case.default.0x14005c02e
mov r9, qword [rdi + 0x30]
test r9, r9
je 0x14005c2d2
movsxd r8, ebp
mov edx, 1
mov rcx, rsi
call fcn.1400c91a0
mov rbx, rax
jmp 0x14005c380
mov ebx, 0xffffff52
jmp case.default.0x14005c02e
cmp qword [rdi + 0x18], 0
je case.default.0x14005c02e
test rsi, rsi
je 0x14005c231
mov r9, qword [rdi + 0x30]
test r9, r9
je 0x14005c353
cmp dword [r9 + 0x240], 0
jne 0x14005c33d
cmp qword [0x140102b98], 0
lea rax, [0x140102b90]
lea rdx, [r9 + 0x230]
je 0x14005c335
mov ecx, dword [rdx]
nop dword [rax]
cmp ecx, dword [rax]
je 0x14005c331
add rax, 0x10
cmp qword [rax + 8], 0
jne 0x14005c320
jmp 0x14005c335
lea rdx, [rax + 4]
cmp dword [rdx], 0x357
jne 0x14005c353
mov r8d, ebp
mov rdx, rsi
mov rcx, r9
call fcn.140054370
dec eax
neg eax
sbb ebx, ebx
jmp 0x14005c380
movsxd r8, ebp
mov rdx, rsi
mov rcx, r9
call fcn.140054550
xor ebx, ebx
cmp eax, 1
cmovne ebx, r14d
jmp 0x14005c380
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 0x14005bfe3
mov rcx, qword [rsp + 0x98]
mov rax, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x88]
mov rax, qword [rax]
test rax, rax
je 0x14005c3d1
mov dword [rsp + 0x28], ebx
mov r9d, ebp
mov r8, rsi
mov dword [rsp + 0x20], 0
mov edx, 0x83
call rax
mov ebx, eax
test r12, r12
je 0x14005c4ee
mov rax, qword [0x1402324f0]
mov rcx, r12
test rax, rax
je 0x14005c4e9
call rax
jmp 0x14005c4ee
mov r8, qword [rsp + 0x98]
cmp dword [r8 + 0x74], 0
je 0x14005c40b
mov ebx, r14d
mov rcx, r8
jmp 0x14005c39c
mov rbx, qword [rdi + 0x30]
test rbx, rbx
jne 0x14005c421
mov ebx, 0xffffff53
mov rcx, r8
jmp 0x14005c39c
and dword [rdi + 0x78], 0xffffffef
test rsi, rsi
je 0x14005c48b
test ebp, ebp
js 0x14005c48b
mov rax, qword [rbx + 0x4e8]
test rax, rax
je 0x14005c452
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.140075430
test eax, eax
jns 0x14005c46e
mov r8, qword [rsp + 0x98]
jmp 0x14005c491
mov rcx, qword [rsp + 0x98]
mov r14d, eax
test eax, eax
jne 0x14005c4e1
mov dword [rcx + 0x74], 1
mov ebx, eax
jmp 0x14005c39c
mov r14d, 0xffffff53
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14005c4d1
mov ecx, dword [rcx + 0x2d0]
lea eax, [rcx + 0x147]
test eax, 0xfffffffb
je 0x14005c4bd
cmp ecx, 0xfffffea9
je 0x14005c4d1
lea eax, [rcx - 2]
cmp eax, 1
ja 0x14005c4d1
or dword [rdi + 0x78], 0x10
mov ebx, r14d
mov rcx, qword [rsp + 0x98]
jmp 0x14005c39c
mov rcx, qword [rsp + 0x98]
mov dword [r8 + 0x74], 1
mov ebx, r14d
jmp 0x14005c39c
call fcn.1400c970c
test r15d, r15d
jle 0x14005c4fa
mov eax, r15d
test ebx, ebx
jg 0x14005c4fc
mov eax, ebx
add rsp, 0x48
pop r15
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret