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

Disassembly:
push rsi
push rbx
test rdx, rdx
je 0x44cc93
test r8d, r8d
not ecx
je 0x44c9e1
test dl, 3
je 0x44c9f0
lea r9, [0x00471c40]
jmp 0x44c9c5
test dl, 3
je 0x44c9f0
add rdx, 1
mov r10d, ecx
shr ecx, 8
xor r10b, byte [rdx - 1]
movzx r10d, r10b
xor ecx, dword [r9 + r10*4]
sub r8d, 1
jne 0x44c9c0
mov eax, ecx
not eax
pop rbx
pop rsi
ret
cmp r8d, 0x1f
jbe 0x44cbd1
lea r9, [0x00471c40]
mov r11d, r8d
mov r10, rdx
nop word [rax + rax]
mov eax, dword [r10]
xor eax, ecx
mov esi, eax
movzx ecx, al
mov ebx, eax
shr esi, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
shr ebx, 0x10
xor ecx, dword [r9 + rsi*4]
movzx eax, ah
movzx ebx, bl
xor ecx, dword [r10 + 4]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0x400]
mov esi, ecx
movzx eax, cl
mov ebx, ecx
shr esi, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
shr ebx, 0x10
xor eax, dword [r9 + rsi*4]
movzx ecx, ch
movzx ebx, bl
xor eax, dword [r10 + 8]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0x400]
mov esi, eax
movzx ecx, al
mov ebx, eax
shr esi, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
shr ebx, 0x10
xor ecx, dword [r9 + rsi*4]
movzx eax, ah
movzx ebx, bl
xor ecx, dword [r10 + 0xc]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0x400]
mov esi, ecx
movzx eax, cl
mov ebx, ecx
shr esi, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
shr ebx, 0x10
xor eax, dword [r9 + rsi*4]
movzx ecx, ch
movzx ebx, bl
xor eax, dword [r10 + 0x10]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0x400]
mov esi, eax
movzx ecx, al
mov ebx, eax
shr esi, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
shr ebx, 0x10
xor ecx, dword [r9 + rsi*4]
movzx eax, ah
movzx ebx, bl
xor ecx, dword [r10 + 0x14]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0x400]
mov esi, ecx
mov ebx, ecx
movzx eax, cl
shr esi, 0x18
shr ebx, 0x10
mov eax, dword [r9 + rax*4 + 0xc00]
xor eax, dword [r9 + rsi*4]
movzx ecx, ch
movzx ebx, bl
xor eax, dword [r10 + 0x18]
add r10, 0x20
sub r11d, 0x20
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0x400]
mov esi, eax
movzx ebx, al
mov ecx, eax
shr esi, 0x18
mov ebx, dword [r9 + rbx*4 + 0xc00]
shr ecx, 0x10
xor ebx, dword [r9 + rsi*4]
movzx eax, ah
movzx ecx, cl
xor ebx, dword [r10 - 4]
xor ebx, dword [r9 + rax*4 + 0x800]
xor ebx, dword [r9 + rcx*4 + 0x400]
mov ecx, ebx
mov eax, ebx
movzx esi, bl
shr ecx, 0x18
shr eax, 0x10
movzx ebx, bh
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rsi*4 + 0xc00]
movzx eax, al
xor ecx, dword [r9 + rbx*4 + 0x800]
xor ecx, dword [r9 + rax*4 + 0x400]
cmp r11d, 0x1f
ja 0x44ca10
lea eax, [r8 - 0x20]
and r8d, 0x1f
shr eax, 5
add rax, 1
shl rax, 5
add rdx, rax
cmp r8d, 3
jbe 0x44cc98
lea eax, [r8 - 4]
lea r9, [0x00471c40]
shr eax, 2
lea rsi, [rdx + rax*4 + 4]
nop
add rdx, 4
xor ecx, dword [rdx - 4]
mov eax, ecx
mov r10d, ecx
movzx r11d, cl
shr eax, 0x18
shr r10d, 0x10
movzx ebx, ch
mov eax, dword [r9 + rax*4]
xor eax, dword [r9 + r11*4 + 0xc00]
movzx r10d, r10b
xor eax, dword [r9 + rbx*4 + 0x800]
mov ecx, dword [r9 + r10*4 + 0x400]
xor ecx, eax
cmp rdx, rsi
jne 0x44cbf0
and r8d, 3
test r8d, r8d
je 0x44c9e1
mov r9d, ecx
xor r9b, byte [rsi]
lea rdx, [0x00471c40]
shr ecx, 8
movzx r9d, r9b
xor ecx, dword [rdx + r9*4]
cmp r8d, 1
je 0x44c9e1
mov r9d, ecx
xor r9b, byte [rsi + 1]
shr ecx, 8
movzx r9d, r9b
xor ecx, dword [rdx + r9*4]
cmp r8d, 2
je 0x44c9e1
mov r8d, ecx
xor r8b, byte [rsi + 2]
shr ecx, 8
movzx r8d, r8b
xor ecx, dword [rdx + r8*4]
jmp 0x44c9e1
xor eax, eax
pop rbx
pop rsi
ret
mov rsi, rdx
jmp 0x44cc35