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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r9
push rbp
push rdi
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov r15, qword [rbp + 0x50]
mov rdi, rcx
xor ecx, ecx
mov rsi, r8
test r15, r15
je 0x407d1e
mov dword [r15], ecx
mov qword [r9], rcx
test rdx, rdx
je 0x407f33
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x407f33
mov r14d, ecx
mov ebx, dword [rbp + 0x58]
mov r13d, ecx
mov dword [rbp + 0x38], ecx
mov dword [rbp - 0x18], ecx
mov qword [rbp - 0x10], rdx
cmp dword [rbp + 0x58], ecx
jne 0x407d57
mov rbx, qword [rdi + 0x450]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
add rax, rbx
mov ebx, 0xff
mov qword [rdi + 0x458], rax
xor r9d, r9d
test rsi, rsi
je 0x407fdd
cmp byte [rdi + 0x449], r9b
jne 0x407f77
mov rcx, rdi
call fcn.00407c08
xor edx, edx
mov ecx, eax
test eax, eax
jne 0x407dc6
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x407ef2
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, rax
mov rax, qword [rdi + 0x458]
cmp rcx, rax
ja 0x407eb5
mov ecx, 1
jmp 0x407eaa
mov r8d, 0x400000
mov qword [rsp + 0x30], rdx
cmp rsi, r8
mov qword [rsp + 0x28], rdx
mov eax, esi
mov dword [rbp + 0x50], edx
cmova eax, r8d
lea r9, [rbp + 0x50]
cmp eax, ecx
lea rdx, [rbp - 0x18]
mov r8d, 1
cmova eax, ecx
mov rcx, qword [rdi + 8]
mov dword [rbp - 0x18], eax
lea rax, [rbp + 0x38]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSARecv]
xor ecx, ecx
test eax, eax
jne 0x407e81
cmp dword [rbp + 0x50], ecx
je 0x407e81
mov r13d, ecx
mov eax, dword [rbp + 0x58]
cmp dword [rbp + 0x58], ecx
jne 0x407e28
mov rax, qword [rdi + 0x450]
mov qword [rbp - 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
add rax, qword [rbp - 0x20]
mov r9d, dword [rbp + 0x50]
add qword [rbp - 0x10], r9
sub rsi, r9
mov qword [rdi + 0x458], rax
mov rax, qword [rbp + 0x48]
add qword [rax], r9
cmp byte [rbp + 0x60], r13b
je 0x407d6c
mov rcx, qword [rdi + 0x430]
test rcx, rcx
je 0x407d6c
mov r8, qword [rdi + 0x440]
mov edx, dword [rdi + 0x438]
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x407d6c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
cmp eax, 0x2733
jne 0x407f4e
inc r13d
cmp r13d, 0x7d0
je 0x407f72
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x407d6c
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x407ee0
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
xor edx, edx
mov dword [rdi + 0x28], eax
add rdi, 0x22c
lea rcx, str.raw___read_timeout
sub rcx, rdi
lea rax, [rbx + 0x7ffffeff]
test rax, rax
je 0x407f25
movzx eax, word [rcx + rdi]
test ax, ax
je 0x407f25
mov word [rdi], ax
add rdi, 2
sub rbx, 1
jne 0x407f03
test rbx, rbx
lea rax, [rdi - 2]
cmovne rax, rdi
mov word [rax], dx
xor al, al
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
mov rax, qword [rdi + 8]
lea rcx, [rdi + 0x22c]
mov eax, dword [rbp - 0x18]
lea r8, str.raw___receive_failed___u_error___u_bytes_requested
mov r9d, r14d
mov dword [rsp + 0x20], eax
mov rdx, rbx
call fcn.0040457c
test rsi, rsi
je 0x407fdd
lea rcx, [rdi + 0x22c]
mov qword [rsp + 0x20], rsi
mov r9d, r14d
lea r8, str.raw___read_failed___u_error___zu_bytes_needed
mov rdx, rbx
call fcn.0040457c
test r15, r15
je 0x407f9d
mov dword [r15], r14d
mov rax, qword [rdi + 8]
cmp rax, 0xffffffffffffffff
je 0x407fc8
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 0x407f35
mov rbx, qword [rdi + 0x450]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
add rax, rbx
mov qword [rdi + 0x458], rax
mov al, 1
jmp 0x407f35