Function at 0x14006f570
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x290
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov r13, r8
mov rdi, rcx
mov eax, dword [rdx]
mov dword [rsp + 0x30], eax
mov r14d, dword [rdx + 8]
cmp eax, r14d
jge 0x14006f7c8
mov r12d, dword [rdx + 0xc]
cmp dword [rdx + 4], r12d
jge 0x14006f7c8
mov ecx, dword [rdx + 4]
mov dword [rsp + 0x34], ecx
sub r14d, eax
sub r12d, ecx
mov rbx, qword [rsp + 0x2f0]
movzx edx, byte [rbx]
shr edx, 3
mov r9d, r12d
imul r9d, r14d
lea rax, [r11 + 0x10]
mov qword [rsp + 0x20], rax
mov r8d, r14d
mov rcx, qword [rdi + 8]
call fcn.140064530
mov r15, rax
movzx r8d, byte [rbx]
shr r8d, 3
imul r8d, r14d
mov dword [rsp + 0x38], r8d
xor r9d, r9d
cmp dword [rdi + 0x10], r12d
jge 0x14006f7c4
nop
nop
nop
mov eax, dword [rsp + 0x2d8]
cdq
idiv r14d
mov ebp, eax
mov ecx, r12d
sub ecx, dword [rdi + 0x10]
cmp eax, ecx
cmovg ebp, ecx
cmp dword [rdi + 0x24], 0
jne 0x14006f689
mov ebx, ebp
imul ebx, r8d
mov eax, dword [rdi + 0x24]
test eax, eax
jne 0x14006f681
mov rax, qword [r13]
mov rcx, r13
call qword [rax + reloc.WS2_32.dll_recv]
mov dword [rdi + 0x24], ebx
mov dword [rdi + 0x20], 0
cmp byte [rdi + 0x28], 0
je 0x14006f66e
mov rcx, qword [rdi + 0x18]
call fcn.14011e0c0
mov qword [rdi + 0x18], r15
test r15, r15
sete al
mov byte [rdi + 0x28], al
mov byte [rdi + 0x29], 0
jmp 0x14006f689
cmp eax, ebx
jne 0x14006f76f
lea rsi, [rdi + 0x18]
mov r8b, 1
mov rdx, r13
mov rcx, rsi
call fcn.140045a40
mov rbx, rax
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], r13
mov ecx, dword [rdi + 0x10]
lea edx, [rcx + rbp]
mov eax, dword [rsp + 0x34]
add edx, eax
add ecx, eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x40], ecx
lea ecx, [r14 + rax]
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x48], edx
mov rcx, qword [rsp + 0x2e8]
mov qword [rsp + 0x50], rcx
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x3c]
mov eax, dword [rdx]
mov dword [r8], eax
mov eax, dword [rdx + 4]
mov dword [r8 + 4], eax
mov eax, dword [rdx + 8]
mov dword [r8 + 8], eax
mov eax, dword [rdx + 0xc]
mov dword [r8 + 0xc], eax
mov rax, qword [rcx]
lea rdx, [rsp + 0x58]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rsp + 0x68], rax
xor r9d, r9d
mov r8, rbx
lea rdx, [rsp + 0x3c]
mov rcx, rax
call fcn.140056d30
nop
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
lea rdx, [rsp + 0x58]
call qword [rax + reloc.WS2_32.dll_recv]
add dword [rdi + 0x10], ebp
mov rax, qword [r13]
mov rcx, r13
call qword [rax + reloc.WS2_32.dll_recv]
cmp byte [rsi + 0x10], 0
je 0x14006f751
mov rcx, qword [rsi]
call fcn.14011e0c0
xor r9d, r9d
mov qword [rsi], r9
mov dword [rsi + 0xc], r9d
mov dword [rsi + 8], r9d
cmp dword [rdi + 0x10], r12d
jge 0x14006f7c4
mov r8d, dword [rsp + 0x38]
jmp 0x14006f620
mov byte [rsp + 0x88], 0
or r9d, 0xffffffff
lea r8, str.ByteReader::init:_bad_len
mov edx, 0x100
lea rcx, [rsp + 0x88]
call fcn.14007b3b0
lea rcx, [rsp + 0x188]
lea rdx, [rsp + 0x88]
mov r8d, 0x100
call fcn.14011e9b0
lea rdx, [0x14020b7d0]
lea rcx, [rsp + 0x188]
call fcn.14011f050
int3
mov dword [rdi + 0x10], r9d
mov rbx, qword [rsp + 0x2d0]
add rsp, 0x290
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret