Function at 0x140005100
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 [0x14000c040]
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 0x14000566a
lea rsi, [r13 + 0xe0]
nop
mov eax, dword [rsi - 0xa8]
test eax, eax
je 0x140005647
cmp eax, 9
je 0x140005647
test edi, edi
jle 0x1400051a5
test byte [rsi + 0x50], 2
je 0x140005647
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 0x1400051d8
mov rdx, r13
mov rcx, rbx
call fcn.140004740
test r14d, r14d
je 0x14000521f
lea rax, [rsi + 0x10]
cmp qword [rax], rax
je 0x14000521f
mov eax, dword [rbx + 0x40]
sub eax, dword [rsi - 0x70]
cmp eax, 0x5265c00
jae 0x14000521f
mov r8, r12
mov rdx, r13
mov rcx, rbx
call fcn.140004920
cmp eax, 1
jne 0x14000521f
test r12, r12
je 0x140005631
cmp dword [r12], 0
je 0x140005631
jmp 0x140005679
lea rax, [rsi + 0x30]
cmp qword [rax], rax
jne 0x140005231
lea rax, [rsi + 0x20]
cmp qword [rax], rax
je 0x140005248
lea r8, [rbp - 0x11]
mov rdx, r13
mov rcx, rbx
call fcn.140004b30
test eax, eax
je 0x1400052e1
lea rax, [rsi + 0x10]
cmp qword [rax], rax
jne 0x1400052e1
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 0x1400052e1
mov eax, dword [rsi - 0x10]
sub rax, qword [rbx + 0x60]
cmp rax, 4
jb 0x1400052e1
cmp dword [rsi - 0xa8], 5
jne 0x1400052d2
mov ecx, 0x60
mov word [rbp - 0x49], 0xff85
call qword [0x14000c0c0]
test rax, rax
jne 0x1400052a2
call qword [0x14000c0d0]
jmp 0x1400052d2
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.140002340
lea r8, [rbp - 0x11]
mov rdx, r13
mov rcx, rbx
call fcn.140004b30
cmp qword [rbx + 0x670], 0
je 0x140005631
mov ecx, dword [rsi - 0x68]
mov edx, dword [rbx + 0x40]
test ecx, ecx
jne 0x1400052fe
mov dword [rsi - 0x68], edx
jmp 0x14000536a
mov eax, edx
sub eax, ecx
sub ecx, edx
cmp eax, 0x5265c00
cmovb ecx, eax
cmp ecx, 0x2710
jb 0x14000536a
mov ecx, dword [rsi - 0x64]
test ecx, ecx
je 0x14000536a
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 0x140005391
movzx ecx, word [rbx + 0x40]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x11], ax
mov eax, 4
jmp 0x140005396
mov eax, 2
mov qword [rbx + 0x678], rax
mov r14, r15
mov rcx, qword [rbx + 0xa98]
test rcx, rcx
je 0x1400053fe
mov r10, qword [rbx + 0xaa0]
test r10, r10
je 0x1400053fe
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 0x1400053fe
cmp rax, rdi
jae 0x1400053fe
mov ecx, 0x4000
mov r14, rax
or word [rbx + 0x68], cx
mov eax, 0xfff
cmp word [rsi - 0xc8], ax
jae 0x14000541b
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 0x140005483
mov rcx, qword [rbx + 0x678]
lea rdi, [rbp + 0xf]
add rdi, rcx
mov eax, 0xfff
cmp word [rsi - 0xc8], ax
jae 0x140005460
mov eax, dword [rsi - 0xc4]
jmp 0x140005463
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 0x1400054a9
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 0x1400054ed
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 0x14000554b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2733
neg eax
sbb r15d, r15d
jmp 0x14000554f
mov r15d, dword [rbp - 0x19]
mov rdi, qword [rbp - 0x11]
lea rax, [rbp - 0x11]
cmp rdi, rax
je 0x140005611
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 0x1400055c8
dec qword [rax]
mov rax, qword [rdi + 0x58]
cmp qword [rax], 0
jne 0x1400055c8
or dword [rax + 8], 0x100
mov r14, qword [rdi + 0x58]
test r14, r14
je 0x1400055c8
mov rax, qword [r14 + 0x20]
test rax, rax
je 0x1400055a9
mov rcx, r14
call rax
test byte [r14 + 8], 4
jne 0x1400055bf
mov rcx, qword [r14 + 0x10]
test rcx, rcx
je 0x1400055bf
call qword [0x14000c0c8]
mov rcx, r14
call qword [0x14000c0c8]
mov rcx, rdi
call qword [0x14000c0c8]
mov rdi, qword [rbp - 0x11]
lea rax, [rbp - 0x11]
cmp rdi, rax
jne 0x140005560
cmp dword [rsi - 0xa8], 6
jne 0x140005611
lea rax, [rsi + 0x30]
cmp qword [rsi + 0x30], rax
jne 0x140005611
lea rax, [rsi + 0x20]
cmp qword [rax], rax
jne 0x140005611
lea rax, [rsi + 0x10]
cmp qword [rax], rax
jne 0x140005611
mov edx, dword [rsi + 0xd8]
mov rcx, r13
call fcn.140002150
test r15d, r15d
js 0x1400056a0
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 0x140005644
lea ecx, [rdi + 1]
mov dword [rbp - 0x59], ecx
jmp 0x140005647
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 0x140005180
inc edi
mov dword [rbp - 0x55], edi
cmp edi, ecx
jle 0x140005160
xor eax, eax
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1400077a0
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 0x140005679