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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
mov rax, qword [0x14000a040]
xor rax, rsp
mov qword [rbp + 0x17], rax
xor r15d, r15d
mov dword [rbp - 0x51], r8d
lea rax, [rbp - 0x11]
mov dword [rbp - 0x55], r15d
mov qword [rbp - 0x11], rax
mov rbx, rcx
lea rax, [rbp - 0x11]
mov ecx, r15d
mov r12, rdx
mov qword [rbp - 9], rax
mov r14d, r8d
mov dword [rbp - 0x59], ecx
mov edi, r15d
mov edx, 0xfffd
nop dword [rax]
imul rax, qword [rbx + 0x30], 0x1c8
mov r13, qword [rbx + 0x28]
add rax, r13
cmp r13, rax
jae 0x14000554a
lea rsi, [r13 + 0xe0]
nop
mov eax, dword [rsi - 0xa8]
test eax, eax
je 0x140005527
cmp eax, 9
je 0x140005527
test edi, edi
jle 0x140005085
test byte [rsi + 0x50], 2
je 0x140005527
and word [rsi + 0x50], dx
mov word [rbx + 0x68], r15w
mov qword [rbx + 0x670], r15
mov qword [rbx + 0xa88], 1
mov qword [rbx + 0x60], 4
cmp qword [rsi], rsi
je 0x1400050b8
mov rdx, r13
mov rcx, rbx
call fcn.140004620
test r14d, r14d
je 0x1400050ff
lea rax, [rsi + 0x10]
cmp qword [rax], rax
je 0x1400050ff
mov eax, dword [rbx + 0x40]
sub eax, dword [rsi - 0x70]
cmp eax, 0x5265c00
jae 0x1400050ff
mov r8, r12
mov rdx, r13
mov rcx, rbx
call fcn.140004800
cmp eax, 1
jne 0x1400050ff
test r12, r12
je 0x140005511
cmp dword [r12], 0
je 0x140005511
jmp 0x140005559
lea rax, [rsi + 0x30]
cmp qword [rax], rax
jne 0x140005111
lea rax, [rsi + 0x20]
cmp qword [rax], rax
je 0x140005128
lea r8, [rbp - 0x11]
mov rdx, r13
mov rcx, rbx
call fcn.140004a10
test eax, eax
je 0x1400051c1
lea rax, [rsi + 0x10]
cmp qword [rax], rax
jne 0x1400051c1
mov edx, dword [rsi - 0x74]
mov ecx, dword [rbx + 0x40]
sub ecx, edx
sub edx, dword [rbx + 0x40]
cmp ecx, 0x5265c00
cmovb edx, ecx
cmp edx, dword [rsi - 0x38]
jb 0x1400051c1
mov eax, dword [rsi - 0x10]
sub rax, qword [rbx + 0x60]
cmp rax, 4
jb 0x1400051c1
cmp dword [rsi - 0xa8], 5
jne 0x1400051b2
mov ecx, 0x60
mov word [rbp - 0x49], 0xff85
call qword [0x14000a0b8]
test rax, rax
jne 0x140005182
call qword [0x14000a0c8]
jmp 0x1400051b2
movups xmm0, xmmword [rbp - 0x49]
mov rdx, rax
mov rcx, r13
movups xmm1, xmmword [rbp - 0x39]
mov dword [rax + 0x20], r15d
movups xmmword [rax + 0x28], xmm0
mov word [rax + 0x24], r15w
movups xmm0, xmmword [rbp - 0x29]
mov qword [rax + 0x58], r15
movups xmmword [rax + 0x38], xmm1
movups xmmword [rax + 0x48], xmm0
call fcn.140002220
lea r8, [rbp - 0x11]
mov rdx, r13
mov rcx, rbx
call fcn.140004a10
cmp qword [rbx + 0x670], 0
je 0x140005511
mov ecx, dword [rsi - 0x68]
mov edx, dword [rbx + 0x40]
test ecx, ecx
jne 0x1400051de
mov dword [rsi - 0x68], edx
jmp 0x14000524a
mov eax, edx
sub eax, ecx
sub ecx, edx
cmp eax, 0x5265c00
cmovb ecx, eax
cmp ecx, 0x2710
jb 0x14000524a
mov ecx, dword [rsi - 0x64]
test ecx, ecx
je 0x14000524a
mov r9d, dword [rsi - 0x5c]
xor edx, edx
mov eax, dword [rsi - 0x60]
mov r8d, r9d
shl eax, 0x10
div ecx
sub r8d, eax
mov ecx, eax
sub ecx, r9d
mov r10d, eax
cmp eax, r9d
cmovae r8d, ecx
mov ecx, dword [rsi - 0x58]
imul eax, r9d, 7
lea edx, [rcx + rcx*2]
add r8d, edx
shr r8d, 2
add eax, r10d
shr eax, 3
mov dword [rsi - 0x5c], eax
mov dword [rsi - 0x58], r8d
mov eax, dword [rbx + 0x40]
mov dword [rsi - 0x68], eax
mov qword [rsi - 0x64], 0
cmp word [rbx + 0x68], 0
lea rax, [rbp + 0xf]
mov qword [rbx + 0x680], rax
jge 0x140005271
movzx ecx, word [rbx + 0x40]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x11], ax
mov eax, 4
jmp 0x140005276
mov eax, 2
mov qword [rbx + 0x678], rax
mov r14, r15
mov rcx, qword [rbx + 0xa98]
test rcx, rcx
je 0x1400052de
mov r10, qword [rbx + 0xaa0]
test r10, r10
je 0x1400052de
mov rdi, qword [rbx + 0x60]
lea rax, [rbx + 0x1ab8]
mov r8, qword [rbx + 0xa88]
lea rdx, [rbx + 0x688]
sub rdi, 4
dec r8
mov qword [rsp + 0x28], rdi
mov r9, rdi
mov qword [rsp + 0x20], rax
call r10
test rax, rax
je 0x1400052de
cmp rax, rdi
jae 0x1400052de
mov ecx, 0x4000
mov r14, rax
or word [rbx + 0x68], cx
mov eax, 0xfff
cmp word [rsi - 0xc8], ax
jae 0x1400052fb
movzx eax, byte [rsi - 0xc0]
shl ax, 0xc
or word [rbx + 0x68], ax
movzx ecx, word [rbx + 0x68]
or cx, word [rsi - 0xc8]
call qword [sym.imp.WS2_32.dll_htons]
mov r8, qword [rbx + 0xa90]
mov word [rbp + 0xf], ax
test r8, r8
je 0x140005363
mov rcx, qword [rbx + 0x678]
lea rdi, [rbp + 0xf]
add rdi, rcx
mov eax, 0xfff
cmp word [rsi - 0xc8], ax
jae 0x140005340
mov eax, dword [rsi - 0xc4]
jmp 0x140005343
mov eax, r15d
mov rdx, qword [rbx + 0xa88]
mov dword [rdi], eax
lea rax, [rcx + 4]
lea rcx, [rbx + 0x678]
mov qword [rbx + 0x678], rax
call r8
mov dword [rdi], eax
mov edx, 2
test r14, r14
je 0x140005389
lea rax, [rbx + 0x1ab8]
mov qword [rbx + 0x688], r14
mov qword [rbx + 0x690], rax
mov qword [rbx + 0xa88], rdx
mov eax, dword [rbx + 0x40]
lea rdi, [rsi - 0xbc]
xor ecx, ecx
mov dword [rsi - 0x78], eax
mov r14, qword [rbx + 0xa88]
mov r15, qword [rbx]
mov dword [rbp - 0x19], ecx
test rdi, rdi
je 0x1400053cd
movzx ecx, word [rsi - 0xb8]
xorps xmm0, xmm0
movups xmmword [rbp - 1], xmm0
mov word [rbp - 1], dx
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 1], ax
xor ecx, ecx
mov eax, dword [rdi]
mov dword [rbp + 3], eax
mov qword [rsp + 0x40], rcx
lea rdx, [rbx + 0x678]
mov qword [rsp + 0x38], rcx
mov rax, rdi
neg rax
mov r8d, r14d
lea rax, [rbp - 1]
sbb r9d, r9d
and r9d, 0x10
mov dword [rsp + 0x30], r9d
test rdi, rdi
lea r9, [rbp - 0x19]
cmove rax, rcx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov rcx, r15
call qword [sym.imp.WS2_32.dll_WSASendTo]
cmp eax, 0xffffffff
jne 0x14000542b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2733
neg eax
sbb r15d, r15d
jmp 0x14000542f
mov r15d, dword [rbp - 0x19]
mov rdi, qword [rbp - 0x11]
lea rax, [rbp - 0x11]
cmp rdi, rax
je 0x1400054f1
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
mov qword [rcx], rax
mov rax, qword [rdi + 8]
mov rcx, qword [rdi]
mov qword [rcx + 8], rax
mov rax, qword [rdi + 0x58]
test rax, rax
je 0x1400054a8
dec qword [rax]
mov rax, qword [rdi + 0x58]
cmp qword [rax], 0
jne 0x1400054a8
or dword [rax + 8], 0x100
mov r14, qword [rdi + 0x58]
test r14, r14
je 0x1400054a8
mov rax, qword [r14 + 0x20]
test rax, rax
je 0x140005489
mov rcx, r14
call rax
test byte [r14 + 8], 4
jne 0x14000549f
mov rcx, qword [r14 + 0x10]
test rcx, rcx
je 0x14000549f
call qword [0x14000a0c0]
mov rcx, r14
call qword [0x14000a0c0]
mov rcx, rdi
call qword [0x14000a0c0]
mov rdi, qword [rbp - 0x11]
lea rax, [rbp - 0x11]
cmp rdi, rax
jne 0x140005440
cmp dword [rsi - 0xa8], 6
jne 0x1400054f1
lea rax, [rsi + 0x30]
cmp qword [rsi + 0x30], rax
jne 0x1400054f1
lea rax, [rsi + 0x20]
cmp qword [rax], rax
jne 0x1400054f1
lea rax, [rsi + 0x10]
cmp qword [rax], rax
jne 0x1400054f1
mov edx, dword [rsi + 0xd8]
mov rcx, r13
call fcn.140002030
test r15d, r15d
js 0x140005580
add dword [rbx + 0x2ad0], r15d
inc dword [rbx + 0x2ad4]
mov edi, dword [rbp - 0x55]
xor r15d, r15d
mov r14d, dword [rbp - 0x51]
test byte [rsi + 0x50], 2
mov edx, 0xfffd
je 0x140005524
lea ecx, [rdi + 1]
mov dword [rbp - 0x59], ecx
jmp 0x140005527
mov ecx, dword [rbp - 0x59]
imul rax, qword [rbx + 0x30], 0x1c8
add r13, 0x1c8
add rsi, 0x1c8
add rax, qword [rbx + 0x28]
cmp r13, rax
jb 0x140005060
inc edi
mov dword [rbp - 0x55], edi
cmp edi, ecx
jle 0x140005040
xor eax, eax
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140006db0
mov rbx, qword [rsp + 0x120]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, 0xffffffff
jmp 0x140005559