Function at 0x14001aa40
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x850]
sub rsp, 0x950
mov eax, dword [r9 + 0x48]
mov ebx, dword [r9 + 0x54]
xor r12d, r12d
mov dword [rbp + 0x8a0], eax
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], select
mov r14, r9
mov rsi, rcx
mov rcx, qword [r9 + 0x30]
movzx eax, byte [rcx]
movzx r13d, byte [rcx + 1]
mov r9d, dword [r9 + 0x50]
shl eax, 8
add r9, r8
mov r15, rdx
or r13d, eax
movzx eax, byte [rcx + 2]
mov r10, r9
shl r13d, 8
mov byte [rbp + 0x50], r12b
mov r8d, 0x66747032
or r13d, eax
movzx eax, byte [rcx + 3]
mov edi, r12d
shl r13d, 8
or r13d, eax
lea rax, [rbp + 0x50]
sub r10, rax
cmp rdi, rbx
jae 0x14001ab29
lea rdx, [rbp + rdi + 0x50]
mov ecx, r8d
add rdi, 4
movzx eax, byte [r10 + rdx]
shr ecx, 8
xor al, r8b
mov byte [rdx], al
movzx eax, byte [rdi + r9 - 3]
xor al, cl
mov ecx, r8d
shr ecx, 0x10
mov byte [rdx + 1], al
movzx eax, byte [rdi + r9 - 2]
xor al, cl
mov ecx, r8d
shr ecx, 0x18
mov byte [rdx + 2], al
movzx eax, byte [rdi + r9 - 1]
xor al, cl
rol r8d, 1
mov byte [rdx + 3], al
cmp rdi, 0x800
jb 0x14001aad2
cmp ebx, ebx
jne 0x14001ad2c
movzx eax, byte [rbp + 0x52]
movzx r8d, byte [rbp + 0x53]
or edi, 0xffffffff
shl r8d, 8
or r8d, eax
movzx eax, byte [rbp + 0x51]
shl r8d, 8
or r8d, eax
movzx eax, byte [rbp + 0x50]
shl r8d, 8
or r8d, eax
xor eax, eax
mov dword [rbp + 0x50], eax
test ebx, ebx
je 0x14001ab8e
lea r9, [rbp + 0x50]
mov r10, rbx
lea r11, [0x14003ff20]
movzx ecx, byte [r9]
mov eax, edi
inc r9
xor rcx, rax
shr eax, 8
movzx edx, cl
mov edi, dword [r11 + rdx*4]
xor edi, eax
dec r10
jne 0x14001ab71
not edi
cmp r8d, edi
jne 0x14001ad2c
cmp ebx, 0x10
jb 0x14001ad2c
mov eax, dword [rbp + 0x54]
cmp eax, dword [str.Lter]
jne 0x14001ad2c
mov r9d, recv
lea r8, str.ZeroAccess:
lea rcx, [rsp + 0x70]
lea edx, [r9 + 2]
call fcn.140005d80
movzx eax, byte [rbp + 0x5e]
movzx edx, byte [rbp + 0x5f]
shl edx, 8
or edx, eax
movzx eax, byte [rbp + 0x5d]
shl edx, 8
or edx, eax
movzx eax, byte [rbp + 0x5c]
shl edx, 8
or edx, eax
cmp edx, 0x100
ja 0x14001ad2c
lea eax, [rdx*8 + 0x10]
cmp eax, ebx
ja 0x14001ad2c
test edx, edx
je 0x14001acbb
lea rbx, [rbp + 0x61]
mov esi, edx
nop word [rax + rax]
movzx eax, byte [rbx]
movzx r9d, byte [rbx - 1]
lea r8, str._u._u._u._u
shl r9d, 8
or r9d, eax
movzx eax, byte [rbx + 1]
shl r9d, 8
or r9d, eax
movzx eax, byte [rbx + 2]
shl r9d, 8
or r9d, eax
mov eax, r9d
movzx edi, r9b
shr eax, 8
mov dword [rsp + 0x30], edi
movzx edx, al
mov eax, r9d
shr r9d, 0x18
mov dword [rsp + 0x28], edx
shr eax, 0x10
mov edx, socket
movzx ecx, al
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x50]
call fcn.14002730c
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x50]
lea r8, [rsp + 0x50]
lea edx, [rax + 0xd]
repne scasb al, byte [rdi]
not rcx
lea r9, [rcx - 1]
lea rcx, [rsp + 0x70]
call fcn.140005d80
add rbx, 8
dec rsi
jne 0x14001ac20
mov rsi, qword [rbp + 0x890]
lea rax, [rsp + 0x70]
cmp dword [rax + 8], 0xd
je 0x14001acd3
mov rax, qword [rax]
test rax, rax
jne 0x14001acc0
mov edx, r12d
jmp 0x14001acd6
mov edx, dword [rax + 0xc]
lea rcx, [rsp + 0x70]
nop dword [rax + rax]
cmp word [rcx + 8], 0xd
je 0x14001acf1
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14001ace0
jmp 0x14001acf5
lea r12, [rcx + 0x14]
mov eax, dword [r14 + 0x28]
mov dword [rsp + 0x40], edx
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x8a0]
mov r9d, select
mov r8d, r13d
mov rdx, r15
mov rcx, rsi
mov dword [rsp + 0x28], select
mov dword [rsp + 0x20], eax
call fcn.140018250
xor eax, eax
mov rbx, qword [rsp + 0x998]
add rsp, 0x950
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret