Function at 0x180004090
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 0x1800040d0
mov edx, 1
xchg dword [rdi + 0x10], edx
cmp edx, 1
je 0x1800040c0
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.180001580
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
jne 0x18000410a
xor eax, eax
jmp 0x180004112
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 0x1800041b8
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x180054120]
call fcn.180040854
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 0x18000416f
xor ecx, ecx
jmp 0x180004177
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18001fe80
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x18000419e
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 0x1800041bc
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 0x180004285
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x180054120]
call fcn.180040854
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 0x18000423e
mov ecx, r12d
jmp 0x180004246
mov ecx, dword [rdi + 0xe8]
sub ecx, edx
mov esi, ecx
mov r8d, ecx
mov rcx, rbx
call fcn.18001fe80
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je 0x18000426d
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.180001580
mov rsi, qword [rdi + 0xe0]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
test rsi, rsi
je 0x180004371
mov ebp, dword [rdi + 0xe8]
sub ebp, esi
cmp ebp, 0x40000
jl 0x18000433b
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 0x180004326
inc ebx
cmp ebx, 0xf
jl 0x180004300
je 0x180004371
add rsi, 0x40000
sub ebp, 0x40000
cmp ebp, 0x40000
jge 0x1800042f0
test ebp, ebp
jle 0x180004371
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 0x180004371
inc ebx
cmp ebx, 0xf
jl 0x180004350
mov rax, qword [r14 + 8]
mov edx, 0x400
mov rcx, r14
mov qword [r14 + 0x10], rax
call fcn.180001700
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 0x1800043b3
sub dword [rdi + 0x18], eax
jne 0x1800043b3
mov qword [rdi + 0x10], r12
add rsp, 0x48
pop r12
pop rdi
ret