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

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
push r14
sub rsp, 0x178
mov rax, qword [0x1400b2080]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x1d0]
lea rsi, [rsp + 0x70]
xor r14d, r14d
mov r13d, r8d
mov qword [rsp + 0x30], rdx
mov ebx, r14d
mov byte [rsp + 0x20], bl
mov r12d, r9d
mov qword [rsp + 0x38], rcx
mov rbp, rcx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x24], r14d
test rcx, rcx
je 0x140015ec8
cmp dword [rcx], 0xbab1e
jne 0x140015ec8
cmp byte [rcx + 0x18a], bl
je 0x140015b1d
lea eax, [r14 + 8]
jmp 0x140015c15
test r12d, r12d
jns 0x140015b2c
mov eax, 0xa
jmp 0x140015c15
mov qword [rsp + 0x170], rdi
mov rdi, qword [rcx + 8]
mov qword [rsp + 0x168], r15
test rdi, rdi
je 0x140015bad
nop word [rax + rax]
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.140016ce0
mov r10d, eax
lea r8, [rsp + 0x48]
mov eax, 1
mov r9d, r14d
nop dword [rax]
mov rdx, 0xffffffffffffffff
test r10d, eax
je 0x140015b81
mov rdx, qword [r8]
inc ebx
mov ecx, eax
rol ecx, 0x10
test r10d, ecx
je 0x140015b90
mov rdx, qword [r8]
inc ebx
cmp rdx, 0xffffffffffffffff
je 0x140015ba5
inc r9d
rol eax, 1
add r8, 8
cmp r9d, 5
jb 0x140015b70
mov rdi, qword [rdi]
test rdi, rdi
jne 0x140015b50
lea rdx, [rsp + 0x28]
mov rcx, rbp
call fcn.140018060
mov eax, dword [rsp + 0x28]
test eax, eax
js 0x140015bc9
cmp eax, r12d
cmovl r12d, eax
movzx r15d, byte [rsp + 0x1e0]
mov r14d, ebx
add ebx, r13d
test r15b, r15b
je 0x140015be9
cmp qword [rbp + 0x178], 0xffffffffffffffff
je 0x140015be9
inc ebx
cmp ebx, 0xa
jbe 0x140015c3b
mov ecx, ebx
shl rcx, 4
call qword [fcn.14006c8dc]
mov rsi, rax
test rax, rax
jne 0x140015c36
lea eax, [rsi + 3]
mov rdi, qword [rsp + 0x170]
mov r15, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140011af0
add rsp, 0x178
pop r14
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret
mov byte [rsp + 0x20], 1
xor r11d, r11d
mov r10d, 0x300
mov ebx, r11d
test r14d, r14d
je 0x140015cf5
mov rdi, qword [rbp + 8]
test rdi, rdi
je 0x140015cf5
xor ebp, ebp
nop
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.140016ce0
mov r10d, eax
lea r8, [rsp + 0x48]
mov r9d, ebp
mov edx, 1
nop dword [rax]
mov rcx, 0xffffffffffffffff
test r10d, edx
je 0x140015ca4
mov rax, qword [r8]
mov ecx, ebx
add rcx, rcx
inc ebx
mov qword [rsi + rcx*8], rax
mov word [rsi + rcx*8 + 8], 0x300
mov rcx, qword [r8]
mov eax, edx
rol eax, 0x10
test r10d, eax
je 0x140015cc6
mov rax, qword [r8]
mov ecx, ebx
add rcx, rcx
inc ebx
mov qword [rsi + rcx*8], rax
mov word [rsi + rcx*8 + 8], reloc.WS2_32.dll_recv
mov rcx, qword [r8]
cmp rcx, 0xffffffffffffffff
je 0x140015cdb
inc r9d
rol edx, 1
add r8, 8
cmp r9d, 5
jb 0x140015c80
mov rdi, qword [rdi]
test rdi, rdi
jne 0x140015c60
mov rbp, qword [rsp + 0x38]
mov r10d, 0x300
xor r11d, r11d
mov r9d, 0x400
test r13d, r13d
je 0x140015d5c
mov rcx, qword [rsp + 0x30]
mov r8, r13
add rcx, 8
nop dword [rax]
mov rax, qword [rcx - 8]
mov edx, ebx
shl rdx, 4
add rdx, rsi
mov qword [rdx], rax
movzx eax, r11w
mov word [rdx + 8], r11w
test byte [rcx], 1
je 0x140015d36
mov word [rdx + 8], r10w
mov eax, r10d
test byte [rcx], 2
je 0x140015d43
or ax, r9w
mov word [rdx + 8], ax
test byte [rcx], 4
je 0x140015d50
or ax, 0x10
mov word [rdx + 8], ax
inc ebx
add rcx, 0x10
sub r8, 1
jne 0x140015d10
test r15b, r15b
je 0x140015d7f
mov rcx, qword [rbp + 0x178]
cmp rcx, 0xffffffffffffffff
je 0x140015d7f
mov eax, ebx
add rax, rax
inc ebx
mov qword [rsi + rax*8], rcx
mov word [rsi + rax*8 + 8], r10w
test ebx, ebx
je 0x140015e54
mov r8d, r12d
mov edx, ebx
mov rcx, rsi
call fcn.140034440
mov edi, eax
test eax, eax
jle 0x140015e54
xor r9d, r9d
mov r11d, 0x300
test r13d, r13d
je 0x140015e08
mov r10, qword [rsp + 0x30]
add r10, 0xa
nop word [rax + rax]
mov ecx, 0
lea edx, [r14 + r9]
add rdx, rdx
lea r10, [r10 + 0x10]
movsx r8d, word [rsi + rdx*8 + 0xa]
test r11d, r8d
setne cl
movzx edx, cx
or dx, 4
test r8b, 0x10
cmove dx, cx
movzx eax, dx
or ax, 2
bt r8d, 0xa
cmovae ax, dx
inc r9d
mov word [r10 - 0x10], ax
cmp r9d, r13d
jb 0x140015dc0
test r15b, r15b
je 0x140015e58
cmp qword [rbp + 0x178], 0xffffffffffffffff
je 0x140015e58
lea ecx, [r14 + r13]
add rcx, rcx
test word [rsi + rcx*8 + 0xa], r11w
je 0x140015e58
nop word [rax + rax]
mov rcx, qword [rbp + 0x178]
lea rdx, [rsp + 0x110]
xor r9d, r9d
lea r8d, [r9 + 0x40]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x140015e30
dec edi
jmp 0x140015e58
mov edi, dword [rsp + 0x24]
cmp byte [rsp + 0x20], 0
je 0x140015e68
mov rcx, rsi
call qword [fcn.14006aa84]
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140015e74
mov dword [rax], edi
cmp byte [rsp + 0x1d8], 0
je 0x140015ec1
test ebx, ebx
jne 0x140015ec1
cmp dword [rbp], 0xbab1e
mov dword [rsp + 0x24], ebx
jne 0x140015ec1
cmp byte [rbp + 0x18a], bl
jne 0x140015ec1
lea rdx, [rsp + 0x24]
mov rcx, rbp
call fcn.140018060
test eax, eax
jne 0x140015ec1
mov ecx, dword [rsp + 0x24]
test ecx, ecx
je 0x140015ec1
cmp ecx, r12d
jg 0x140015eb9
test ecx, ecx
jns 0x140015ebc
mov ecx, r12d
call fcn.140034b40
xor eax, eax
jmp 0x140015c05
mov eax, 1
jmp 0x140015c15