Function at 0x1800043e0
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 0x180004420
mov edx, 1
xchg dword [rdi + 0x10], edx
cmp edx, 1
je 0x180004410
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.180001600
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
jne 0x18000445a
xor eax, eax
jmp 0x180004462
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 0x180004508
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18007a5c0]
call fcn.1800600d8
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 0x1800044bf
xor ecx, ecx
jmp 0x1800044c7
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18003a960
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x1800044ee
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 0x18000450c
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 0x1800045d5
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18007a5c0]
call fcn.1800600d8
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 0x18000458e
mov ecx, r12d
jmp 0x180004596
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18003a960
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x1800045bd
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.180001600
mov rsi, qword [rdi + 0xe0]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
test rsi, rsi
je 0x1800046c1
mov ebp, dword [rdi + 0xe8]
sub ebp, esi
cmp ebp, 0x40000
jl 0x18000468b
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 0x180004676
inc ebx
cmp ebx, 0xf
jl 0x180004650
je 0x1800046c1
add rsi, 0x40000
sub ebp, 0x40000
cmp ebp, 0x40000
jge 0x180004640
test ebp, ebp
jle 0x1800046c1
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 0x1800046c1
inc ebx
cmp ebx, 0xf
jl 0x1800046a0
mov rax, qword [r14 + 8]
mov edx, 0x400
mov rcx, r14
mov qword [r14 + 0x10], rax
call fcn.180001780
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 0x180004703
sub dword [rdi + 0x18], eax
jne 0x180004703
mov qword [rdi + 0x10], r12
add rsp, 0x48
pop r12
pop rdi
ret