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

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x6d8]
sub rsp, 0x7d8
mov rax, qword [0x18032d860]
xor rax, rsp
mov qword [rbp + 0x6b0], rax
cmp qword [rcx + 0xa8], 0
mov rbx, rcx
mov qword [rsp + 0x7f8], rsi
mov qword [rsp + 0x40], rcx
je 0x18005e6b2
call fcn.180075ac0
mov rcx, qword [rbx]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0xd0]
lea rax, [rsp + 0x50]
mov dword [rsp + 0x30], 0x80
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8d, 0x5dc
call qword [sym.imp.WS2_32.dll_recvfrom]
mov esi, eax
test eax, eax
js 0x18005e98f
mov qword [rsp + 0x800], rdi
mov qword [rsp + 0x808], r12
mov qword [rsp + 0x7d0], r13
mov qword [rsp + 0x7c8], r14
mov qword [rsp + 0x7c0], r15
nop dword [rax]
movsxd r15, dword [rsp + 0x30]
xor r13d, r13d
cmp qword [rbx + 0xa8], r13
je 0x18005e736
call fcn.180075ac0
cmp esi, 2
jb 0x18005e8cd
movzx ecx, word [rbp + 0xd0]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r12d, ax
cmp esi, 4
jb 0x18005e8cd
movzx ecx, word [rbp + 0xd2]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx edi, ax
cmp esi, 6
jb 0x18005e8cd
movzx ecx, word [rbp + 0xd4]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r14d, ax
cmp esi, 8
jb 0x18005e8cd
movzx ecx, word [rbp + 0xd6]
call qword [sym.imp.WS2_32.dll_ntohs]
cmp esi, 0xa
jb 0x18005e8cd
movzx ecx, word [rbp + 0xd8]
call qword [sym.imp.WS2_32.dll_ntohs]
cmp esi, 0xc
jb 0x18005e8cd
movzx ecx, word [rbp + 0xda]
mov ebx, reloc.WS2_32.dll_inet_ntoa
call qword [sym.imp.WS2_32.dll_ntohs]
test di, di
js 0x18005e923
mov ecx, 0xe8
call fcn.18022c454
mov r13, rax
test rax, rax
je 0x18005e923
xor edx, edx
mov r8d, 0xe8
mov rcx, rax
call fcn.180229410
mov r8, r15
mov word [r13 + 0x10], r12w
lea rcx, [r13 + 0x20]
lea rdx, [rsp + 0x50]
call fcn.180228d60
mov eax, edi
mov dword [r13 + 0xa0], r15d
and eax, 0x110
mov dword [r13 + 0xdc], 0
mov edx, r14d
mov dword [r13 + 0xd8], eax
lea ecx, [rbx - 4]
call fcn.180237840
mov qword [r13 + 0xe0], rax
test rax, rax
je 0x18005e8cd
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x38], r14d
test r14d, r14d
je 0x18005eb29
xor r14d, r14d
lea r9, [rbp - 0x30]
mov r15d, 0xffffffff
cmp ebx, esi
jge 0x18005e8cd
nop dword [rax]
nop word [rax + rax]
movsxd rax, ebx
lea edx, [rbx + 1]
movzx ecx, byte [rbp + rax + 0xd0]
test cl, cl
je 0x18005ea5b
test cl, 0xc0
je 0x18005e9e6
cmp edx, esi
jge 0x18005e8cd
movsxd rax, ebx
test r15d, r15d
jns 0x18005e8af
lea r15d, [rbx + 2]
movzx eax, byte [rbp + rax + 0xd1]
mov ebx, ecx
and ebx, 0x3f
shl ebx, 8
add ebx, eax
cmp ebx, esi
jae 0x18005e8cd
inc r14d
cmp r14d, esi
jle 0x18005e880
cmp qword [r13 + 0xe0], 0
je 0x18005e91b
xor edi, edi
cmp dword [r13 + 0xdc], edi
jle 0x18005e90f
xor ebx, ebx
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [r13 + 0xe0]
mov rcx, qword [rcx + rbx]
call fcn.18022c440
inc edi
lea rbx, [rbx + 8]
cmp edi, dword [r13 + 0xdc]
jl 0x18005e8f0
mov rcx, qword [r13 + 0xe0]
call fcn.18022c440
mov rcx, r13
call fcn.18022c440
mov rbx, qword [rsp + 0x40]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0xd0]
lea rax, [rsp + 0x50]
mov dword [rsp + 0x30], 0x80
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov rcx, qword [rbx]
mov r8d, 0x5dc
call qword [sym.imp.WS2_32.dll_recvfrom]
mov esi, eax
test eax, eax
jns 0x18005e720
mov r15, qword [rsp + 0x7c0]
mov r14, qword [rsp + 0x7c8]
mov r13, qword [rsp + 0x7d0]
mov r12, qword [rsp + 0x808]
mov rdi, qword [rsp + 0x800]
mov rcx, qword [rbx]
call fcn.18004c750
mov rsi, qword [rsp + 0x7f8]
mov ebx, eax
cmp eax, 0x2733
je 0x18005e9cd
cmp eax, 0x2714
je 0x18005e9cd
mov ecx, eax
call fcn.18004c7d0
mov r8, rax
lea rdx, str.Error__s___d__while_reading_request.
mov r9d, ebx
mov ecx, 2
call fcn.18005c8d0
mov rcx, qword [rbp + 0x6b0]
xor rcx, rsp
call fcn.180227e50
add rsp, 0x7d8
pop rbx
pop rbp
ret
cmp cl, 0x3f
ja 0x18005e8cd
lea rax, [rbp - 0x30]
cmp r9, rax
je 0x18005ea13
lea rax, [r9 + 1]
lea r8, [rbp + 0xd0]
cmp rax, r8
jae 0x18005e8cd
mov byte [r9], 0x2e
mov r9, rax
lea rdi, [rcx + r9]
mov r8, rcx
lea rax, [rbp + 0xd0]
cmp rdi, rax
jae 0x18005e8cd
inc ebx
add ebx, ecx
cmp ebx, esi
jg 0x18005e8cd
movsxd rax, edx
mov rcx, r9
lea rdx, [rbp + 0xd0]
add rdx, rax
call fcn.180228d60
mov r9, rdi
cmp ebx, esi
jl 0x18005e880
jmp 0x18005e8cd
lea rax, [rbp + 0xd0]
cmp r9, rax
jae 0x18005e8cd
test r15d, r15d
mov byte [r9], 0
cmovns edx, r15d
lea edi, [rdx + 2]
cmp edi, esi
jg 0x18005e8cd
movsxd rax, edx
movzx ecx, word [rbp + rax + 0xd0]
call qword [sym.imp.WS2_32.dll_ntohs]
lea ebx, [rdi + 2]
movzx r12d, ax
cmp ebx, esi
jg 0x18005e8cd
movsxd rcx, edi
movzx ecx, word [rbp + rcx + 0xd0]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r15d, ax
mov rdi, 0xffffffffffffffff
lea rax, [rbp - 0x30]
inc rdi
cmp byte [rax + rdi], 0
jne 0x18005eac1
movsxd rcx, edi
add rcx, 0xc
call fcn.18022c454
mov r14, rax
test rax, rax
je 0x18005e8cd
lea ecx, [rdi + 1]
mov dword [rax], r12d
movsxd r8, ecx
lea rdx, [rbp - 0x30]
lea rcx, [rax + 8]
mov dword [rax + 4], r15d
call fcn.180228d60
movsxd rdx, dword [r13 + 0xdc]
mov eax, dword [rsp + 0x34]
mov rcx, qword [r13 + 0xe0]
inc eax
mov dword [rsp + 0x34], eax
mov qword [rcx + rdx*8], r14
inc dword [r13 + 0xdc]
cmp eax, dword [rsp + 0x38]
jl 0x18005e860
mov rax, qword [rsp + 0x40]
lea rcx, [r13 + 0xd8]
mov qword [r13 + 0x18], rax
inc dword [rax + 8]
mov rdx, qword [rax + 0x18]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x18005e923