Function at 0x14004f1c0
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rsp + 0xc0], rbx
mov r15, r9
mov rdi, r8
mov r14, rdx
mov r13, rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], 0
mov rcx, qword [rcx + 0x28]
call fcn.140001fb0
mov rsi, 0xffffffffffffffff
test al, al
jne 0x14004f540
test rdi, rdi
je 0x14004f2e3
mov rbx, rsi
nop word [rax + rax]
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x14004f230
mov rdx, rdi
lea rcx, [rbp - 0x18]
call fcn.140031120
xor r9d, r9d
mov r8d, ebx
mov rdx, rax
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
mov edi, eax
test r15, r15
jne 0x14004f2e3
mov rcx, qword [0x140104018]
mov qword [rbp - 0x40], rcx
lea rsi, [0x1400d58e8]
mov rcx, rsi
shr rcx, 0x10
test cx, cx
jne 0x14004f28f
movzx edx, si
lea rcx, [rbp - 0x40]
call fcn.140001ff0
jmp 0x14004f2c9
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x14004f2c9
mov edx, ebx
lea rcx, [rbp - 0x40]
call fcn.140001970
test eax, eax
je 0x14004f2c9
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rsi
mov rcx, qword [rbp - 0x40]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x40]
mov rcx, qword [r13 + 0x28]
call fcn.140002330
mov esi, edi
jmp 0x14004f540
mov r12d, dword [rbp + 0x60]
mov r8d, r12d
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
mov r8d, r12d
mov rdx, r15
mov rcx, r14
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
cmp eax, esi
je 0x14004f4a0
mov rbx, qword [0x140104018]
mov qword [rbp + 0x40], rbx
test r15, r15
je 0x14004f406
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rdi, eax
test eax, eax
je 0x14004f406
mov edx, edi
lea rcx, [rbp + 0x40]
call fcn.140001970
mov rbx, qword [rbp + 0x40]
test eax, eax
je 0x14004f406
mov rax, rdi
add rax, 1
jne 0x14004f35d
test rbx, rbx
jne 0x14004f389
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, esi
mov r8, r15
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x14004f389
dec eax
movsxd rcx, eax
xor r14d, r14d
mov word [rbx + rcx*2], r14w
jmp 0x14004f38c
xor r14d, r14d
lea rdi, [rbx - 0xc]
cmp dword [rdi], 1
jle 0x14004f3f2
cmp rdi, qword [0x140104010]
je 0x14004f3bc
mov eax, esi
lock xadd dword [rdi], eax
sub eax, 1
jg 0x14004f3b1
mov rcx, rdi
call fcn.1400bf5e4
mov rax, qword [0x140104018]
mov qword [rbp + 0x40], rax
mov edx, dword [rdi + 4]
lea rcx, [rbp + 0x40]
call fcn.140001970
mov rbx, qword [rbp + 0x40]
test eax, eax
je 0x14004f3f2
mov eax, dword [rdi + 4]
inc eax
movsxd r9, eax
add r9, r9
lea r8, [rdi + 0xc]
mov eax, dword [rbx - 4]
inc eax
movsxd rdx, eax
add rdx, rdx
mov rcx, rbx
call fcn.1400029b0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [rbx - 8], eax
movsxd rcx, eax
mov word [rbx + rcx*2], r14w
lea rdi, [rbx - 0xc]
cmp dword [rdi], 0
jl 0x14004f41c
mov qword [rbp - 0x30], rbx
lock inc dword [rdi]
mov rbx, qword [rbp + 0x40]
jmp 0x14004f433
mov rax, qword [0x140104018]
mov qword [rbp - 0x30], rax
mov rdx, rbx
lea rcx, [rbp - 0x30]
call fcn.140006470
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x30]
mov rcx, qword [r13 + 0x28]
call fcn.140002330
mov rdx, r15
mov rcx, r13
call fcn.14004b640
mov r14d, eax
cmp eax, 0xffffffff
jne 0x14004f4cc
cmp rdi, qword [0x140104010]
je 0x14004f475
mov eax, esi
lock xadd dword [rdi], eax
sub eax, 1
jg 0x14004f475
mov rcx, rdi
call fcn.1400bf5e4
mov r8, r12
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
mov r8d, r12d
mov rdx, r15
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14004f310
mov rax, qword [0x140104018]
mov qword [rbp - 0x38], rax
lea rsi, [0x1400d5900]
mov rax, rsi
shr rax, 0x10
test ax, ax
jne 0x14004f4f1
movzx edx, si
lea rcx, [rbp - 0x38]
call fcn.140001ff0
jmp 0x14004f52b
cmp r14d, 0xfffffffe
cmove r14d, esi
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x140104010]
je 0x14004f543
lock xadd dword [rcx], esi
sub esi, 1
jg 0x14004f543
call fcn.1400bf5e4
jmp 0x14004f543
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
test eax, eax
je 0x14004f52b
mov edx, edi
lea rcx, [rbp - 0x38]
call fcn.140001970
test eax, eax
je 0x14004f52b
mov r9, rdi
add r9, r9
lea eax, [rdi + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rsi
mov rcx, qword [rbp - 0x38]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x38]
mov rcx, qword [r13 + 0x28]
call fcn.140002330
mov esi, ebx
mov r14d, esi
lea rcx, [rbp - 0x18]
call fcn.1400018c0
mov eax, r14d
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret