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

Disassembly:
push rdi
sub rsp, 0x20
mov r8, qword [rcx + 8]
mov qword [rsp + 0x30], rbx
mov rbx, rdx
mov rax, qword [r8]
mov rdi, rcx
mov dword [rax], 4
mov dword [r8 + 8], 4
mov rdx, qword [rcx + 8]
mov ecx, dword [rdx + 8]
lea eax, [rcx + 0x20]
cmp eax, dword [rdx + 0xc]
ja 0x5242b
mov rax, qword [rbx + 1]
add rcx, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rbx + 9]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x11]
mov qword [rcx + 0x10], rax
mov rax, qword [rbx + 0x19]
mov qword [rcx + 0x18], rax
add dword [rdx + 8], 0x20
mov rdx, qword [rdi + 8]
mov ecx, dword [rdx + 8]
lea eax, [rcx + 0x20]
cmp eax, dword [rdx + 0xc]
ja 0x52460
mov rax, qword [rbx + 0x21]
add rcx, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rbx + 0x29]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x31]
mov qword [rcx + 0x10], rax
mov rax, qword [rbx + 0x39]
mov qword [rcx + 0x18], rax
add dword [rdx + 8], 0x20
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x52482
mov eax, dword [rbx + 0x44]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x524a4
mov eax, dword [rbx + 0x4c]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x524c6
mov eax, dword [rbx + 0x48]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x524e8
mov eax, dword [rbx + 0x50]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
movzx eax, byte [rbx]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
cmp al, 3
jne 0x525f6
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x5251f
mov eax, dword [rbx + 0x54]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x52541
mov eax, dword [rbx + 0x58]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 1]
cmp eax, dword [r8 + 0xc]
ja 0x52563
movzx eax, byte [rbx + 0x5c]
mov rdx, rcx
mov rcx, qword [r8]
mov byte [rdx + rcx], al
inc dword [r8 + 8]
movzx esi, byte [rbx + 0x5c]
mov rbp, qword [rdi + 8]
cmp esi, 0x1000000
jae 0x52591
mov ecx, dword [rbp + 8]
lea eax, [rcx + rsi]
cmp eax, dword [rbp + 0xc]
ja 0x52591
add rcx, qword [rbp]
lea rdx, [rbx + 0x5d]
mov r8, rsi
call fcn.00061d00
add dword [rbp + 8], esi
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 1]
cmp eax, dword [r8 + 0xc]
ja 0x525b6
movzx eax, byte [rbx + 0x126]
mov rdx, rcx
mov rcx, qword [r8]
mov byte [rdx + rcx], al
inc dword [r8 + 8]
movzx ebp, byte [rbx + 0x126]
mov rsi, qword [rdi + 8]
cmp ebp, 0x1000000
jae 0x52795
mov ecx, dword [rsi + 8]
lea eax, [rcx + rbp]
cmp eax, dword [rsi + 0xc]
ja 0x52795
add rcx, qword [rsi]
lea rdx, [rbx + 0x127]
mov r8, rbp
call fcn.00061d00
add dword [rsi + 8], ebp
jmp 0x52795
cmp al, 1
je 0x526fd
cmp al, 2
je 0x526fd
cmp al, 4
jne 0x52795
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x52633
mov eax, dword [rbx + 0x1f0]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 4]
cmp eax, dword [r8 + 0xc]
ja 0x52658
mov eax, dword [rbx + 0x1f4]
mov rdx, rcx
mov rcx, qword [r8]
mov dword [rdx + rcx], eax
add dword [r8 + 8], 4
mov rdx, qword [rdi + 8]
mov ecx, dword [rdx + 8]
lea eax, [rcx + 0x20]
cmp eax, dword [rdx + 0xc]
ja 0x52699
mov rax, qword [rbx + 0x1f8]
add rcx, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rbx + 0x200]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x208]
mov qword [rcx + 0x10], rax
mov rax, qword [rbx + 0x210]
mov qword [rcx + 0x18], rax
add dword [rdx + 8], 0x20
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 1]
cmp eax, dword [r8 + 0xc]
ja 0x526be
movzx eax, byte [rbx + 0x218]
mov rdx, rcx
mov rcx, qword [r8]
mov byte [rdx + rcx], al
inc dword [r8 + 8]
mov ebp, dword [rbx + 0x218]
mov rsi, qword [rdi + 8]
cmp ebp, 0x1000000
jae 0x52795
mov ecx, dword [rsi + 8]
lea eax, [rcx + rbp]
cmp eax, dword [rsi + 0xc]
ja 0x52795
add rcx, qword [rsi]
lea rdx, [rbx + 0x21c]
mov r8, rbp
call fcn.00061d00
add dword [rsi + 8], ebp
jmp 0x52795
mov rdx, qword [rdi + 8]
mov ecx, dword [rdx + 8]
lea eax, [rcx + 0x20]
cmp eax, dword [rdx + 0xc]
ja 0x5273e
mov rax, qword [rbx + 0x1f8]
add rcx, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rbx + 0x200]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x208]
mov qword [rcx + 0x10], rax
mov rax, qword [rbx + 0x210]
mov qword [rcx + 0x18], rax
add dword [rdx + 8], 0x20
mov r8, qword [rdi + 8]
mov ecx, dword [r8 + 8]
lea eax, [rcx + 1]
cmp eax, dword [r8 + 0xc]
ja 0x52763
movzx eax, byte [rbx + 0x218]
mov rdx, rcx
mov rcx, qword [r8]
mov byte [rdx + rcx], al
inc dword [r8 + 8]
mov ebp, dword [rbx + 0x218]
mov rsi, qword [rdi + 8]
cmp ebp, 0x1000000
jae 0x52795
mov ecx, dword [rsi + 8]
lea eax, [rcx + rbp]
cmp eax, dword [rsi + 0xc]
ja 0x52795
add rcx, qword [rsi]
lea rdx, [rbx + 0x21c]
mov r8, rbp
call fcn.00061d00
add dword [rsi + 8], ebp
mov rdx, qword [rdi + 8]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov ecx, dword [rdx + 8]
mov rbx, qword [rsp + 0x30]
lea eax, [rcx + 4]
cmp eax, dword [rdx + 0xc]
ja 0x527c1
mov rax, qword [rdx]
mov dword [rcx + rax], 0
add dword [rdx + 8], 4
mov rax, qword [rdi + 8]
xor r9d, r9d
mov ecx, dword [rax + 8]
mov rdx, qword [rax]
movzx eax, byte [rdx]
sub ecx, 4
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
mov rdx, qword [rdi + 8]
mov rcx, qword [rdi]
mov r8d, dword [rdx + 8]
mov rdx, qword [rdx]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.WS2_32.dll_send]