Function at 0x180003fc0
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 0x180004000
mov edx, 1
xchg dword [rdi + 0x10], edx
cmp edx, 1
je 0x180003ff0
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 0x18000403a
xor eax, eax
jmp 0x180004042
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 0x1800040e8
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18002ab60]
call fcn.18001e464
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 0x18000409f
xor ecx, ecx
jmp 0x1800040a7
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18000d580
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x1800040ce
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 0x1800040ec
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 0x1800041b5
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18002ab60]
call fcn.18001e464
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 0x18000416e
mov ecx, r12d
jmp 0x180004176
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18000d580
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x18000419d
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 0x1800042a1
mov ebp, dword [rdi + 0xe8]
sub ebp, esi
cmp ebp, 0x40000
jl 0x18000426b
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 0x180004256
inc ebx
cmp ebx, 0xf
jl 0x180004230
je 0x1800042a1
add rsi, 0x40000
sub ebp, 0x40000
cmp ebp, 0x40000
jge 0x180004220
test ebp, ebp
jle 0x1800042a1
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 0x1800042a1
inc ebx
cmp ebx, 0xf
jl 0x180004280
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 0x1800042e3
sub dword [rdi + 0x18], eax
jne 0x1800042e3
mov qword [rdi + 0x10], r12
add rsp, 0x48
pop r12
pop rdi
ret