Function at 0x1400157e0
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 [0x1400b1080]
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 0x140015c08
cmp dword [rcx], 0xbab1e
jne 0x140015c08
cmp byte [rcx + 0x18a], bl
je 0x14001585d
lea eax, [r14 + 8]
jmp 0x140015955
test r12d, r12d
jns 0x14001586c
mov eax, 0xa
jmp 0x140015955
mov qword [rsp + 0x170], rdi
mov rdi, qword [rcx + 8]
mov qword [rsp + 0x168], r15
test rdi, rdi
je 0x1400158ed
nop word [rax + rax]
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.140016a20
mov r10d, eax
lea r8, [rsp + 0x48]
mov eax, 1
mov r9d, r14d
nop dword [rax]
mov rdx, 0xffffffffffffffff
test r10d, eax
je 0x1400158c1
mov rdx, qword [r8]
inc ebx
mov ecx, eax
rol ecx, 0x10
test r10d, ecx
je 0x1400158d0
mov rdx, qword [r8]
inc ebx
cmp rdx, 0xffffffffffffffff
je 0x1400158e5
inc r9d
rol eax, 1
add r8, 8
cmp r9d, 5
jb 0x1400158b0
mov rdi, qword [rdi]
test rdi, rdi
jne 0x140015890
lea rdx, [rsp + 0x28]
mov rcx, rbp
call fcn.140017da0
mov eax, dword [rsp + 0x28]
test eax, eax
js 0x140015909
cmp eax, r12d
cmovl r12d, eax
movzx r15d, byte [rsp + 0x1e0]
mov r14d, ebx
add ebx, r13d
test r15b, r15b
je 0x140015929
cmp qword [rbp + 0x178], 0xffffffffffffffff
je 0x140015929
inc ebx
cmp ebx, 0xa
jbe 0x14001597b
mov ecx, ebx
shl rcx, 4
call qword [fcn.14006c61c]
mov rsi, rax
test rax, rax
jne 0x140015976
lea eax, [rsi + 3]
mov rdi, qword [rsp + 0x170]
mov r15, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140011830
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 0x140015a35
mov rdi, qword [rbp + 8]
test rdi, rdi
je 0x140015a35
xor ebp, ebp
nop
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.140016a20
mov r10d, eax
lea r8, [rsp + 0x48]
mov r9d, ebp
mov edx, 1
nop dword [rax]
mov rcx, 0xffffffffffffffff
test r10d, edx
je 0x1400159e4
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 0x140015a06
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 0x140015a1b
inc r9d
rol edx, 1
add r8, 8
cmp r9d, 5
jb 0x1400159c0
mov rdi, qword [rdi]
test rdi, rdi
jne 0x1400159a0
mov rbp, qword [rsp + 0x38]
mov r10d, 0x300
xor r11d, r11d
mov r9d, 0x400
test r13d, r13d
je 0x140015a9c
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 0x140015a76
mov word [rdx + 8], r10w
mov eax, r10d
test byte [rcx], 2
je 0x140015a83
or ax, r9w
mov word [rdx + 8], ax
test byte [rcx], 4
je 0x140015a90
or ax, 0x10
mov word [rdx + 8], ax
inc ebx
add rcx, 0x10
sub r8, 1
jne 0x140015a50
test r15b, r15b
je 0x140015abf
mov rcx, qword [rbp + 0x178]
cmp rcx, 0xffffffffffffffff
je 0x140015abf
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 0x140015b94
mov r8d, r12d
mov edx, ebx
mov rcx, rsi
call fcn.140034180
mov edi, eax
test eax, eax
jle 0x140015b94
xor r9d, r9d
mov r11d, 0x300
test r13d, r13d
je 0x140015b48
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 0x140015b00
test r15b, r15b
je 0x140015b98
cmp qword [rbp + 0x178], 0xffffffffffffffff
je 0x140015b98
lea ecx, [r14 + r13]
add rcx, rcx
test word [rsi + rcx*8 + 0xa], r11w
je 0x140015b98
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 0x140015b70
dec edi
jmp 0x140015b98
mov edi, dword [rsp + 0x24]
cmp byte [rsp + 0x20], 0
je 0x140015ba8
mov rcx, rsi
call qword [fcn.14006a7c4]
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140015bb4
mov dword [rax], edi
cmp byte [rsp + 0x1d8], 0
je 0x140015c01
test ebx, ebx
jne 0x140015c01
cmp dword [rbp], 0xbab1e
mov dword [rsp + 0x24], ebx
jne 0x140015c01
cmp byte [rbp + 0x18a], bl
jne 0x140015c01
lea rdx, [rsp + 0x24]
mov rcx, rbp
call fcn.140017da0
test eax, eax
jne 0x140015c01
mov ecx, dword [rsp + 0x24]
test ecx, ecx
je 0x140015c01
cmp ecx, r12d
jg 0x140015bf9
test ecx, ecx
jns 0x140015bfc
mov ecx, r12d
call fcn.140034880
xor eax, eax
jmp 0x140015945
mov eax, 1
jmp 0x140015955