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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, r8
test rdx, rdx
je 0x140061c79
mov r12, rdx
mov ebx, ecx
cmp rsi, 0x40
jb 0x140061c8e
cmp dword [0x1400fc848], 0
je 0x140061c8e
mov r14, rsi
and r14, 0xfffffffffffffff0
not ebx
mov rcx, r12
mov rdx, r14
mov r8d, ebx
call fcn.1400249b0
mov ebp, eax
and rsi, 0xf
je 0x14006233d
add r12, r14
mov ebx, ebp
jmp 0x140062261
xor ebp, ebp
test rsi, rsi
jne 0x14006233f
call fcn.1400834f0
jmp 0x14006233f
not ebx
cmp rsi, 0x2f
jb 0x140062261
test r12b, 7
je 0x140061ce2
lea rax, [r12 + 1]
lea rcx, [0x1400d5960]
nop dword [rax]
mov rdx, rsi
dec rsi
mov r8d, ebx
shr r8d, 8
xor bl, byte [r12]
inc r12
movzx r9d, bl
mov ebx, r8d
xor ebx, dword [rcx + r9*4]
cmp rdx, 1
je 0x140061ce2
mov edx, eax
and edx, 7
inc rax
test rdx, rdx
jne 0x140061cb0
movabs rcx, 0xcccccccccccccccd
mov rax, rsi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r8, [rax + rax*4]
mov r10, rdx
dec r10
je 0x140062029
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rsi
xor r11d, r11d
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x28], rax
lea r9, [0x1400d5d60]
xor ecx, ecx
xor edx, edx
xor eax, eax
mov r8, r12
nop dword [rax]
mov qword [rsp + 0x20], r8
mov r8, qword [r8]
mov qword [rsp + 0x50], r8
xor ebx, r8d
movzx r8d, bl
movzx edi, bh
mov ebp, dword [r9 + rdi*4 + 0x400]
xor ebp, dword [r9 + r8*4]
mov r8d, ebx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r9 + 0x800]
shr ebx, 0x18
xor ebp, dword [r9 + rbx*4 + 0xc00]
mov r8, qword [rsp + 0x20]
mov r8, qword [r8 + 8]
mov qword [rsp + 0x40], r8
xor eax, r8d
movzx r8d, al
movzx edi, ah
mov r13d, dword [r9 + rdi*4 + 0x400]
xor r13d, dword [r9 + r8*4]
mov r8d, eax
shr r8d, 0xe
and r8d, 0x3fc
xor r13d, dword [r8 + r9 + 0x800]
shr eax, 0x18
xor r13d, dword [r9 + rax*4 + 0xc00]
mov rax, qword [rsp + 0x20]
mov r15, qword [rax + 0x10]
xor edx, r15d
mov rax, qword [rsp + 0x20]
mov r14, qword [rax + 0x18]
xor ecx, r14d
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x48], rax
mov rbx, rcx
mov rcx, rdx
mov rdx, r11
xor edx, eax
movzx eax, cl
movzx edi, bl
movzx r8d, dl
movzx esi, ch
mov r11d, dword [r9 + rsi*4 + 0x400]
xor r11d, dword [r9 + rax*4]
movzx eax, bh
mov rsi, r10
mov r10d, dword [r9 + rax*4 + 0x400]
xor r10d, dword [r9 + rdi*4]
movzx eax, dh
mov edi, dword [r9 + rax*4 + 0x400]
xor edi, dword [r9 + r8*4]
mov eax, ecx
shr eax, 0xe
and eax, 0x3fc
xor r11d, dword [rax + r9 + 0x800]
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
xor r10d, dword [rax + r9 + 0x800]
mov eax, edx
shr eax, 0xe
and eax, 0x3fc
xor edi, dword [rax + r9 + 0x800]
shr ecx, 0x18
xor r11d, dword [r9 + rcx*4 + 0xc00]
shr ebx, 0x18
xor r10d, dword [r9 + rbx*4 + 0xc00]
shr edx, 0x18
xor edi, dword [r9 + rdx*4 + 0xc00]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1000]
mov rdx, qword [rsp + 0x40]
mov rax, rdx
shr rax, 0x20
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1000]
mov rax, r15
shr rax, 0x20
movzx eax, al
xor r11d, dword [r9 + rax*4 + 0x1000]
mov rax, r14
shr rax, 0x20
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1000]
mov r8, qword [rsp + 0x48]
mov rax, r8
shr rax, 0x20
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1400]
mov rax, rdx
shr rax, 0x28
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1400]
mov rax, r15
shr rax, 0x28
movzx eax, al
xor r11d, dword [r9 + rax*4 + 0x1400]
mov rax, r14
shr rax, 0x28
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1400]
mov rax, r8
shr rax, 0x28
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1800]
mov rax, rdx
shr rax, 0x30
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1800]
mov rax, r15
shr rax, 0x30
movzx eax, al
xor r11d, dword [r9 + rax*4 + 0x1800]
mov rax, r14
shr rax, 0x30
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1800]
mov rax, r8
shr rax, 0x30
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ebx, ebp
xor ebx, dword [r9 + rax*4 + 0x1c00]
shr rdx, 0x38
mov eax, r13d
xor eax, dword [r9 + rdx*4 + 0x1c00]
shr r15, 0x38
mov edx, r11d
xor edx, dword [r9 + r15*4 + 0x1c00]
shr r14, 0x38
mov ecx, r10d
mov r10, rsi
xor ecx, dword [r9 + r14*4 + 0x1c00]
shr r8, 0x38
mov r11d, edi
xor r11d, dword [r9 + r8*4 + 0x1c00]
mov r8, qword [rsp + 0x20]
add r8, 0x28
dec r10
jne 0x140061d40
add r12, qword [rsp + 0x28]
mov r11d, r11d
mov eax, eax
mov r10d, edx
mov r9d, ecx
mov rdi, rax
mov rsi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
jmp 0x140062034
xor r10d, r10d
xor r9d, r9d
xor r11d, r11d
xor edi, edi
mov eax, ebx
xor rax, qword [r12]
movzx edx, al
shr rax, 8
lea rcx, [0x1400d5960]
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
xor rdi, qword [r12 + 8]
xor rdx, rdi
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r10, qword [r12 + 0x10]
xor rax, r10
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
sub rsi, r8
xor r9, qword [r12 + 0x18]
xor rdx, r9
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r11, qword [r12 + 0x20]
xor rax, r11
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov ebx, dword [rcx + rdx*4]
xor rbx, rax
movzx eax, bl
shr rbx, 8
xor ebx, dword [rcx + rax*4]
add r12, 0x28
cmp rsi, 8
jb 0x140062311
lea rax, [0x1400d5960]
nop word cs:[rax + rax]
mov ecx, ebx
xor bl, byte [r12]
shr ecx, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r12 + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r12 + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r12 + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r12 + 4]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
add rsi, 0xfffffffffffffff8
mov edx, ecx
xor cl, byte [r12 + 5]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [r12 + 6]
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
shr ebx, 8
xor cl, byte [r12 + 7]
add r12, 8
movzx ecx, cl
xor ebx, dword [rax + rcx*4]
cmp rsi, 7
ja 0x140062280
test rsi, rsi
je 0x14006233b
xor eax, eax
lea rcx, [0x1400d5960]
nop
mov ebp, ebx
xor bl, byte [r12 + rax]
shr ebp, 8
movzx edx, bl
xor ebp, dword [rcx + rdx*4]
inc rax
mov ebx, ebp
cmp rsi, rax
jne 0x140062320
jmp 0x14006233d
mov ebp, ebx
not ebp
mov eax, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret