Function at 0x405ad8
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, qword [rcx + 8]
mov rbx, r9
mov ebp, r8d
mov r14, rdx
mov rdi, rcx
cmp rax, 0xffffffffffffffff
je 0x405cdd
xor r12d, r12d
test rdx, rdx
je 0x405cdd
test rbx, rbx
je 0x405b1c
mov dword [r9], r12d
mov dword [rsp + 0x40], r12d
mov r15d, r12d
mov esi, r12d
mov dword [rsp + 0x48], 1
mov qword [rsp + 0x50], r14
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
add rax, 0x1d4c0
mov qword [rdi + 0x458], rax
cmp byte [rdi + 0x449], r12b
jne 0x405d16
mov rcx, rdi
call fcn.00407c08
test eax, eax
jne 0x405b91
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x405c96
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, rax
mov rax, qword [rdi + 0x458]
cmp rcx, rax
ja 0x405c5b
mov ecx, 1
jmp 0x405c50
mov rcx, qword [rdi + 8]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], r12
lea r9, [rsp + 0x90]
mov qword [rsp + 0x28], r12
lea rdx, [rsp + 0x48]
mov r8d, 1
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x90], r12d
call qword [sym.imp.WS2_32.dll_WSARecv]
test eax, eax
jne 0x405c29
cmp dword [rsp + 0x90], 1
jne 0x405c29
mov esi, r12d
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, qword [rsp + 0x50]
add rax, 0x1d4c0
mov qword [rdi + 0x458], rax
cmp byte [rcx], 0xd
je 0x405b47
cmp byte [rcx], 0xa
je 0x405cf8
cmp ebp, 1
jbe 0x405b47
mov eax, dword [rsp + 0x90]
add rcx, rax
sub ebp, dword [rsp + 0x90]
mov qword [rsp + 0x50], rcx
jmp 0x405b47
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r15d, eax
cmp eax, 0x2733
jne 0x405d16
inc esi
cmp esi, 0x7d0
je 0x405d16
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x405b47
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x405c86
mov rcx, qword [rdi + 8]
mov edx, 2
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, qword [rdi + 8]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rdi + 8], 0xffffffffffffffff
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rdi + 0x10], xmm0
mov qword [rdi + 0x20], rax
mov dword [rdi + 0x28], eax
add rdi, 0x22c
lea rdx, str.raw___read_string_timeout
sub rdx, rdi
mov ecx, 0xff
lea rax, [rcx + 0x7ffffeff]
test rax, rax
je 0x405cce
movzx eax, word [rdx + rdi]
test ax, ax
je 0x405cce
mov word [rdi], ax
add rdi, 2
sub rcx, 1
jne 0x405cac
test rcx, rcx
lea rax, [rdi - 2]
cmovne rax, rdi
mov word [rax], r12w
xor al, al
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov byte [rcx], r12b
mov rbx, qword [rdi + 0x450]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
add rax, rbx
mov qword [rdi + 0x458], rax
mov al, 1
jmp 0x405cdf
lea r8, [rdi + 0x22c]
mov ecx, 0xff
lea rdx, str.raw___read_string_failed
sub rdx, r8
lea rax, [rcx + 0x7ffffeff]
test rax, rax
je 0x405d50
movzx eax, word [rdx + r8]
test ax, ax
je 0x405d50
mov word [r8], ax
add r8, 2
sub rcx, 1
jne 0x405d2c
test rcx, rcx
lea rax, [r8 - 2]
cmovne rax, r8
mov word [rax], r12w
test rbx, rbx
je 0x405d67
mov dword [rbx], r15d
mov byte [r14], r12b
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x405d95
mov rcx, qword [rdi + 8]
mov edx, 2
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, qword [rdi + 8]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rdi + 8], 0xffffffffffffffff
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rdi + 0x10], xmm0
mov qword [rdi + 0x20], rax
mov dword [rdi + 0x28], eax
jmp 0x405cdf