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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
xor eax, eax
mov r10, rdx
mov r11, r8
test rdx, rdx
je 0x1401bd319
not ecx
mov r9d, ecx
cmp r8, 0x2e
jbe 0x1401bd226
test dl, 7
je 0x1401bd0e2
lea rax, [0x14029bac0]
inc r10
mov edx, r9d
xor r9b, byte [r10 - 1]
shr edx, 8
movzx r9d, r9b
xor edx, dword [rax + r9*4]
mov r9d, edx
dec r11
je 0x1401bd0e2
test r10d, 7
jne 0x1401bd0bc
mov edi, 0x28
mov rax, r11
xor edx, edx
mov r8, r10
div rdi
xor ebx, ebx
xor esi, esi
xor edi, edi
xor ebp, ebp
mov qword [rsp + 0x40], rax
mov r11, rdx
mov qword [rsp + 0x48], rax
lea rax, [0x140299ac0]
mov r15, qword [r8 + 8]
xor rdi, qword [r8 + 0x10]
mov r12d, r9d
add r8, 0x28
xor rsi, qword [r8 - 0x10]
xor rbx, qword [r8 - 8]
mov qword [rsp + 0x28], rdi
xor r12, qword [r8 - 0x28]
xor r15, rbp
dec qword [rsp + 0x48]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rbx
je 0x1401bd1ea
movzx edx, r12b
mov r13d, 1
mov r9d, dword [rax + rdx*4]
movzx edx, r15b
mov ebp, dword [rax + rdx*4]
movzx edx, byte [rsp + 0x28]
mov edi, dword [rax + rdx*4]
movzx edx, byte [rsp + 0x30]
mov esi, dword [rax + rdx*4]
movzx edx, byte [rsp + 0x38]
mov ebx, dword [rax + rdx*4]
lea ecx, [r13*8]
mov r14, r12
movsxd rdx, r13d
inc r13d
shr r14, cl
shl rdx, 8
movzx r14d, r14b
add r14, rdx
xor r9d, dword [rax + r14*4]
mov r14, r15
shr r14, cl
movzx r14d, r14b
add r14, rdx
xor ebp, dword [rax + r14*4]
mov r14, qword [rsp + 0x28]
shr r14, cl
movzx r14d, r14b
add r14, rdx
xor edi, dword [rax + r14*4]
mov r14, qword [rsp + 0x30]
shr r14, cl
movzx r14d, r14b
add r14, rdx
xor esi, dword [rax + r14*4]
mov r14, qword [rsp + 0x38]
shr r14, cl
movzx ecx, r14b
add rdx, rcx
xor ebx, dword [rax + rdx*4]
cmp r13d, 8
jne 0x1401bd173
jmp 0x1401bd10e
imul rax, qword [rsp + 0x40], 0x28
mov rcx, r12
add r10, rax
call sym.crc_word
mov ecx, eax
xor rcx, r15
call sym.crc_word
mov ecx, eax
xor rcx, rdi
call sym.crc_word
mov ecx, eax
xor rcx, rsi
call sym.crc_word
mov ecx, eax
xor rcx, rbx
call sym.crc_word
mov r9d, eax
mov rdx, r10
lea rbx, [r10 + r11]
lea rcx, [0x14029bac0]
mov rax, rbx
sub rax, rdx
cmp rax, 7
jbe 0x1401bd2db
mov r8d, r9d
xor r9b, byte [rdx]
add rdx, 8
movzx r9d, r9b
shr r8d, 8
xor r8d, dword [rcx + r9*4]
mov eax, r8d
xor r8b, byte [rdx - 7]
movzx r8d, r8b
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
xor al, byte [rdx - 6]
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov eax, r8d
xor r8b, byte [rdx - 5]
movzx r8d, r8b
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
xor al, byte [rdx - 4]
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov eax, r8d
xor r8b, byte [rdx - 3]
movzx r8d, r8b
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
xor al, byte [rdx - 2]
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov r9d, r8d
xor r8b, byte [rdx - 1]
movzx r8d, r8b
shr r9d, 8
xor r9d, dword [rcx + r8*4]
jmp 0x1401bd234
mov rax, r11
xor edx, edx
shr rax, 3
imul rax, rax, 0xfffffffffffffff8
add r11, rax
sub r10, rax
lea rax, [0x14029bac0]
cmp rdx, r11
je 0x1401bd314
mov ecx, r9d
xor r9b, byte [r10 + rdx]
inc rdx
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rax + r9*4]
mov r9d, ecx
jmp 0x1401bd2f5
mov eax, r9d
not eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret