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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, edx
not eax
mov edx, 0xff
cmp edi, 8
jb 0x4227ee
mov esi, edi
shr esi, 3
movzx ebx, byte [ecx]
fld qword [0x47a968]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 1]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 2]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 3]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 4]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 5]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 6]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
movzx ebx, byte [ecx + 7]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x460c60]
add ecx, 8
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fadd qword [0x47a960]
fadd qword [ebp - 0x10]
fsub qword [ebp - 0x10]
fsub qword [0x47a958]
fadd qword [ebp - 0x10]
fadd qword [0x47a950]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fsubp st(1)
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [0x47a8f8]
fsubp st(1)
fld qword [ebp - 0x10]
fmul qword [0x47a948]
fsubp st(1)
fadd qword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fsub qword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [0x47a940]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fsub qword [ebp - 0x10]
fadd qword [0x47a938]
fadd qword [ebp - 0x10]
fsub qword [0x47a930]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fsub qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fsubp st(1)
fstp qword [ebp - 0x10]
sub edi, 8
dec esi
fld qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fsubp st(1)
fld qword [ebp - 0x10]
fdiv qword [0x47a928]
faddp st(1)
fsub qword [ebp - 0x10]
fadd qword [ebp - 0x10]
fsub qword [0x47a920]
fsub qword [ebp - 0x10]
fstp qword [ebp - 0x10]
jne 0x422698
test edi, edi
je 0x422807
movzx esi, byte [ecx]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x460c60]
inc ecx
dec edi
jne 0x4227f2
mov dword [ebp - 4], 0x1b
mov dword [ebp - 0xc], 0x2d
mov dword [ebp - 8], 0x43
mov ecx, dword [ebp - 4]
add ecx, 0x11
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
cmp edx, ecx
jge 0x42287b
mov ecx, dword [ebp - 8]
add ecx, 0x48
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
imul ecx, ecx, 0x55
sub ecx, edx
mov edx, dword [ebp - 4]
sub ecx, edx
mov edx, dword [ebp - 0xc]
lea ecx, [ecx + edx + 0x51]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
imul ecx, ecx, 0x78
sub ecx, edx
add ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
lea ecx, [ecx + edx + 0x55]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp ecx, edx
jl 0x42287b
add dword [ebp - 4], 0xffffffd0
pop edi
pop esi
not eax
pop ebx
leave
ret