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

Disassembly:
push rbx
push rdi
push r12
sub rsp, 0x180
mov rax, qword [0x14020f568]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rax, qword [0x14021c7e0]
mov r12, rdx
mov rdi, rcx
mov rdx, qword [rax + 8]
mov qword [0x14021c7e8], rdx
cmp rdx, rax
je 0x14000459e
nop dword [rax + rax]
cmp rdx, rax
je 0x14000459e
mov rcx, qword [rdx]
mov rbx, qword [rdx + 8]
mov qword [rcx + 8], rbx
mov rcx, qword [rdx + 8]
mov rax, qword [rdx]
mov qword [rcx], rax
mov rcx, rdx
call fcn.140007018
mov rax, qword [0x14021c7e0]
dec dword [0x14021c7f0]
mov rdx, rbx
mov qword [0x14021c7e8], rbx
cmp rbx, rax
jne 0x140004560
xor eax, eax
mov rcx, rdi
mov qword [rsp + 0x1b8], rsi
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x178], r13
call fcn.1400042d0
test eax, eax
jne 0x140004668
mov ebx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, [rsp + 0x150]
xor r9d, r9d
mov rcx, r12
mov r8d, ebx
xor edi, edi
mov qword [rsp + 0x150], 0x66778811
lea rsi, [rsp + 0x150]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
je 0x140004630
cmp eax, 0xffffffff
je 0x140004630
movsxd rcx, eax
add edi, eax
sub ebx, eax
add rsi, rcx
cmp edi, 0x10
jge 0x140004640
xor r9d, r9d
mov r8d, ebx
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jne 0x140004606
mov rcx, r12
call qword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x140004812
mov r8d, dword [rsp + 0x154]
test r8d, r8d
jle 0x14000465e
mov r9d, r8d
xor edx, edx
mov rcx, r12
call fcn.140006a90
test eax, eax
je 0x140004630
mov eax, 1
jmp 0x140004812
mov edi, dword [0x14021c7f0]
mov qword [rsp + 0x170], r14
mov r13d, 1
imul edi, edi, 0x118
lea eax, [rdi + 1]
mov ecx, eax
mov ebx, eax
call fcn.140007010
mov r8d, ebx
xor edx, edx
mov rcx, rax
mov r14, rax
call fcn.140159440
mov rdx, qword [0x14021c7e0]
mov rbx, r14
mov rcx, qword [rdx + 8]
mov qword [0x14021c7e8], rcx
cmp rcx, rdx
je 0x140004704
lea rdx, [rcx + 0x10]
lea rcx, [rsp + 0x30]
mov r8d, 0x118
call fcn.140157510
lea rdx, [rsp + 0x30]
mov rcx, rbx
mov r8d, 0x118
call fcn.140157510
mov rax, qword [0x14021c7e8]
mov rdx, qword [0x14021c7e0]
mov rcx, qword [rax + 8]
add rbx, 0x118
mov qword [0x14021c7e8], rcx
cmp rcx, rdx
jne 0x1400046b8
mov rcx, qword [rdx + 8]
mov qword [rsp + 0x1b0], rbp
mov qword [0x14021c7e8], rcx
cmp rcx, rdx
je 0x14000475b
nop dword [rax]
cmp rcx, rdx
je 0x14000475b
mov rdx, qword [rcx]
mov rbx, qword [rcx + 8]
mov qword [rdx + 8], rbx
mov rdx, qword [rcx + 8]
mov rax, qword [rcx]
mov qword [rdx], rax
call fcn.140007018
mov rdx, qword [0x14021c7e0]
dec dword [0x14021c7f0]
mov rcx, rbx
mov qword [0x14021c7e8], rbx
cmp rbx, rdx
jne 0x140004720
mov dword [rsp + 0x154], edi
mov ebx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, [rsp + 0x150]
xor edi, edi
xor r9d, r9d
mov rcx, r12
mov r8d, ebx
mov dword [rsp + 0x150], 0x66778805
lea rbp, [rsp + 0x150]
mov esi, edi
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
je 0x1400047eb
nop dword [rax]
cmp eax, 0xffffffff
je 0x1400047eb
movsxd rcx, eax
add esi, eax
sub ebx, eax
add rbp, rcx
cmp esi, 0x10
jge 0x1400047cc
xor r9d, r9d
mov r8d, ebx
mov rdx, rbp
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jne 0x1400047a0
jmp 0x1400047eb
mov r8d, dword [rsp + 0x154]
test r8d, r8d
jle 0x1400047f7
mov r9d, r8d
mov rdx, r14
mov rcx, r12
call fcn.140006a90
test eax, eax
jne 0x1400047f7
mov rcx, r12
mov r13d, edi
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, r14
call fcn.140007018
mov rbp, qword [rsp + 0x1b0]
mov r14, qword [rsp + 0x170]
mov eax, r13d
mov r13, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140157300
add rsp, 0x180
pop r12
pop rdi
pop rbx
ret