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

Disassembly:
push rdi
push r12
sub rsp, 0x48
mov qword [rsp + 0x70], rsi
mov rdi, rcx
mov qword [rsp + 0x40], r13
mov r13, rdx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
mov r15d, r8d
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rdi + 0x14], eax
je 0x180003fe0
mov edx, 1
xchg dword [rdi + 0x10], edx
cmp edx, 1
je 0x180003fd0
mov dword [rdi + 0x14], eax
inc dword [rdi + 0x18]
lea r14, [rdi + 0xd8]
xor r9d, r9d
mov qword [rsp + 0x20], 0
lea rdx, [rdi + 0x3a]
mov rcx, r14
lea r12d, [r15 + 0x67]
lea r8d, [r9 + 0x59]
call fcn.180001470
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
jne 0x18000401a
xor eax, eax
jmp 0x180004022
mov eax, dword [rdi + 0xe8]
sub eax, ecx
add eax, 4
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
cmp eax, dword [rdi + 0xf0]
jb 0x1800040c8
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18002b540]
call fcn.18001ed64
cvttsd2si rbp, xmm0
xor ecx, ecx
mov r8d, 0x1000
lea r9d, [rcx + 4]
shl ebp, 0xa
mov edx, ebp
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, qword [rdi + 0xe0]
mov rbx, rax
test rdx, rdx
jne 0x18000407f
xor ecx, ecx
jmp 0x180004087
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18000a860
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x1800040ae
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
lea rax, [rsi + rbx]
mov qword [rdi + 0xe0], rbx
mov qword [rdi + 0xe8], rax
mov dword [rdi + 0xf0], ebp
jmp 0x1800040cc
mov rax, qword [r14 + 0x10]
mov dword [rax], r12d
mov r12d, 0
mov rdx, qword [rdi + 0xe8]
add rdx, 4
mov qword [rdi + 0xe8], rdx
mov eax, edx
mov rcx, qword [rdi + 0xe0]
sub eax, ecx
test rcx, rcx
cmove eax, r12d
add eax, 0xa
cmp eax, dword [rdi + 0xf0]
jb 0x180004195
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18002b540]
call fcn.18001ed64
cvttsd2si rbp, xmm0
xor ecx, ecx
lea r9d, [r12 + 4]
mov r8d, 0x1000
shl ebp, 0xa
mov edx, ebp
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, qword [rdi + 0xe0]
mov rbx, rax
test rdx, rdx
jne 0x18000414e
mov ecx, r12d
jmp 0x180004156
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18000a860
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x18000417d
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
lea rdx, [rsi + rbx]
mov qword [rdi + 0xe0], rbx
mov qword [rdi + 0xe8], rdx
mov dword [rdi + 0xf0], ebp
movsd xmm0, qword [rdi + 0x30]
lea rcx, [rdi + 0x30]
movsd qword [rdx], xmm0
mov r9d, 1
movzx eax, word [rcx + 8]
mov r8d, r15d
mov word [rdx + 8], ax
mov rdx, r13
add qword [rdi + 0xe8], 0xa
mov qword [rsp + 0x20], rcx
mov rcx, r14
call fcn.180001470
mov rsi, qword [rdi + 0xe0]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
test rsi, rsi
je 0x180004281
mov ebp, dword [rdi + 0xe8]
sub ebp, esi
cmp ebp, 0x40000
jl 0x18000424b
nop word [rax + rax]
mov ebx, r12d
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdi + 0x108]
xor r9d, r9d
mov r8d, 0x40000
mov rdx, rsi
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x180004236
inc ebx
cmp ebx, 0xf
jl 0x180004210
je 0x180004281
add rsi, 0x40000
sub ebp, 0x40000
cmp ebp, 0x40000
jge 0x180004200
test ebp, ebp
jle 0x180004281
mov ebx, r12d
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdi + 0x108]
xor r9d, r9d
mov r8d, ebp
mov rdx, rsi
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x180004281
inc ebx
cmp ebx, 0xf
jl 0x180004260
mov rax, qword [r14 + 8]
mov edx, 0x400
mov rcx, r14
mov qword [r14 + 0x10], rax
call fcn.1800015f0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [rdi + 0x14]
mov eax, 1
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
jne 0x1800042c3
sub dword [rdi + 0x18], eax
jne 0x1800042c3
mov qword [rdi + 0x10], r12
add rsp, 0x48
pop r12
pop rdi
ret