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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0xb8], rbx
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x30], r8
mov rbx, rdx
mov qword [rsp + 0x28], rdx
mov rsi, rcx
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
test rdx, rdx
je 0x180158d98
mov r14d, dword [r8]
mov dword [rsp + 0x20], r14d
test r14d, r14d
jne 0x180158a2d
mov al, 1
jmp 0x180158d9a
mov dword [r8], 0
mov ecx, dword [rsp + 0xc0]
mov r15d, 0xc042c00
mov edx, 1
movzx eax, dl
test r14d, r14d
je 0x180158d9a
movzx r12d, r9b
cmp ecx, 0xabcd0123
cmove r12d, edx
mov r13d, edx
cmovne r13d, ecx
test rbx, rbx
je 0x180158d98
mov rcx, rbp
call fcn.180175b40
cmp qword [rsi + 0x298], 0xffffffffffffffff
je 0x180158d7b
lea rdx, [rsi + 0xd5]
cmp byte [rdx], 0
jne 0x180158d69
cmp byte [rsi + 0xd6], 0
jne 0x180158d57
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x40]
call fcn.180103090
nop
test r13d, r13d
cmove r13d, r15d
lea rcx, [rsi + 0x200]
mov r9, rdi
mov r8, qword [rbp + 8]
mov edx, 0x1000
call fcn.1801c30c0
test al, al
jne 0x180158d36
cmp byte [rsi + 0xd6], al
jne 0x180158d19
cmp qword [rsi + 0x298], 0xffffffffffffffff
je 0x180158cfc
mov r15d, r14d
mov eax, 0x100000
cmp r14d, eax
cmova r15d, eax
mov r14b, 1
nop dword [rax]
xor r9d, r9d
mov r8d, r15d
mov rdx, rbx
mov rcx, qword [rsi + 0x298]
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
test eax, eax
jg 0x180158b96
je 0x180158cb3
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x180158c6f
test r14b, r14b
je 0x180158c5c
test r12b, r12b
jne 0x180158c5c
mov rdx, rdi
mov rcx, rbp
call fcn.180175cc0
test al, al
jne 0x180158c4d
mov r9, rdi
mov r8, rbp
mov edx, r13d
mov rcx, rsi
call fcn.18015a110
test al, al
je 0x180158c27
xor r14b, r14b
test ebx, ebx
jns 0x180158c60
mov rbx, qword [rsp + 0x28]
jmp 0x180158b10
lea edx, [rbx - 0x1000]
lea rcx, [rsi + 0x200]
call fcn.1801c2f00
cmp byte [rsi + 0x382], 0
je 0x180158bc6
lea rcx, [rsi + 0xe0]
mov r9, rdi
mov r8, qword [rbp + 8]
mov edx, ebx
call fcn.1801c2cf0
cmp byte [rsi + 0x379], 0
je 0x180158be4
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x180158be4
movsxd rdx, ebx
mov r8, rdi
call fcn.180125340
nop
lea rcx, [rsp + 0x40]
call fcn.1801031c0
mov al, 1
cmp byte [rbp + 0x29], 0
jne 0x180158d9a
xor r9b, r9b
mov r8, qword [rsp + 0x30]
add dword [r8], ebx
mov r14d, dword [rsp + 0x20]
sub r14d, ebx
mov dword [rsp + 0x20], r14d
mov rax, rbx
mov rbx, qword [rsp + 0x28]
add rbx, rax
mov qword [rsp + 0x28], rbx
jmp 0x180158a34
cmp byte [rbp + 0x29], 0
je 0x180158c36
lea rdx, str.Socket_recv_aborted_by_application
jmp 0x180158c43
cmp byte [rbp + 0x28], 0
jne 0x180158c4d
lea rdx, str.Socket_recv_failed.
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
nop
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
mov byte [rbp + 0x28], 1
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
mov rcx, rdi
call fcn.180106a70
mov r8d, r15d
lea rdx, str.maxToReceive
mov rcx, rdi
call fcn.180106220
mov rax, qword [rdi]
lea rdx, str.Failed_to_receive_data_on_the_TCP_socket
mov rcx, rdi
call qword [rax + 0x28]
mov byte [rbp + 0x2a], 1
mov byte [rsi + 0x290], 0
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
cmp byte [rdi + 0x161], 0
je 0x180158cde
mov r8d, r15d
lea rdx, str.maxToReceive
mov rcx, rdi
call fcn.180106220
mov rax, qword [rdi]
lea rdx, str.Connection_closed_by_peer.
mov rcx, rdi
call qword [rax + 0x28]
mov rdx, rdi
mov rcx, rsi
call fcn.180157ae0
mov byte [rbp + 0x2b], 1
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
mov rax, qword [rdi]
lea rdx, str.The_socket_is_already_closed.__Cannot_recv.
mov rcx, rdi
call qword [rax + 0x28]
nop
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
mov rax, qword [rdi]
mov rdx, qword [str.Another_thread_is_closing_this_socket.]
mov rcx, rdi
call qword [rax + 0x28]
nop
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
mov byte [rbp + 0x29], 1
mov rax, qword [rdi]
lea rdx, str.Aborted_by_application_while_download_throttling__2_
mov rcx, rdi
call qword [rax + 0x28]
nop
lea rcx, [rsp + 0x40]
call fcn.1801031c0
jmp 0x180158d98
mov rax, qword [rdi]
mov rdx, qword [str.Another_thread_is_closing_this_socket.]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x180158d98
mov rax, qword [rdi]
lea rdx, str.Another_thread_is_already_receiving_on_this_socket.
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x180158d98
mov rax, qword [rdi]
lea rdx, str.This_socket_is_not_connected
mov rcx, rdi
call qword [rax + 0x28]
mov byte [rbp + 0x2a], 1
mov word [rsi + 0x290], 0
xor al, al
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.18007b140
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret