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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov ebx, eax
mov esi, edx
push edi
not esi
mov edx, 0xff
cmp ebx, 8
jb 0x422803
mov edi, ebx
shr edi, 3
movzx eax, byte [ecx]
xor eax, esi
and eax, edx
mov dword [ebp - 4], eax
mov eax, esi
mov esi, dword [ebp - 4]
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 1]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 2]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 3]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 4]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 5]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 6]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
movzx esi, byte [ecx + 7]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x466cb8]
add ecx, 8
sub ebx, 8
dec edi
mov esi, eax
jne 0x42275d
fld qword [0x480a18]
test ebx, ebx
je 0x4228ff
fld qword [0x480960]
fld qword [0x480a78]
fld1
fld qword [0x480a68]
jmp 0x422829
fxch st(3)
movzx eax, byte [ecx]
fld qword [0x480968]
xor eax, esi
and eax, edx
shr esi, 8
xor esi, dword [eax*4 + 0x466cb8]
inc ecx
fstp qword [ebp - 0x20]
fld qword [0x480a60]
fstp qword [ebp - 0x10]
fxch st(3)
fst qword [ebp - 8]
fld qword [0x480928]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x10]
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 1
jne 0x4228a6
fld qword [ebp - 0x18]
fmul qword [0x480a58]
fadd qword [ebp - 0x10]
fsub qword [ebp - 0x20]
fld qword [ebp - 8]
fmul st(4)
faddp st(1)
fld qword [ebp - 0x10]
fdiv st(2)
fmul qword [ebp - 0x10]
faddp st(1)
fadd st(2)
fadd qword [ebp - 0x10]
fld qword [ebp - 8]
fmul qword [0x4808f0]
fsubp st(1)
fld qword [ebp - 8]
fmul qword [0x480a50]
faddp st(1)
fstp qword [ebp - 8]
dec ebx
fld qword [ebp - 0x20]
fsub qword [ebp - 0x10]
fsub st(2)
fld qword [ebp - 0x10]
fmul qword [ebp - 0x20]
faddp st(1)
fsub st(5)
fstp qword [ebp - 0x18]
fld qword [ebp - 8]
fmul st(4)
fld qword [ebp - 0x18]
fmul qword [ebp - 8]
fsubp st(1)
fsub st(3)
fadd qword [ebp - 8]
fadd qword [0x480900]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fsub st(4)
fstp qword [ebp - 0x10]
fld qword [ebp - 0x18]
fadd qword [0x480938]
fstp qword [ebp - 0x18]
jne 0x422827
fstp st(2)
fstp st(0)
fstp st(1)
fstp st(0)
fld qword [0x4808e0]
mov eax, esi
fstp qword [ebp - 0x10]
pop edi
fld qword [0x480a48]
not eax
fstp qword [ebp - 8]
pop esi
fld qword [ebp - 0x10]
fsub qword [ebp - 8]
fsub qword [ebp - 8]
fadd qword [ebp - 0x10]
fld qword [ebp - 8]
fmul qword [0x4809d8]
faddp st(1)
fstp qword [ebp - 0x10]
fld qword [ebp - 8]
fmul qword [0x480a58]
fadd qword [ebp - 0x10]
fadd qword [ebp - 0x10]
fadd st(1)
fstp qword [ebp - 8]
fld qword [ebp - 0x10]
fsub qword [0x480a40]
fadd qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [0x480a38]
fsubp st(1)
fld qword [0x480948]
fsub st(1), st(0)
fld qword [ebp - 8]
fsubp st(2)
fld qword [ebp - 0x10]
faddp st(2)
fld qword [ebp - 8]
fsubp st(2)
fld qword [ebp - 8]
fsubp st(2)
fxch st(1)
faddp st(2)
fld qword [ebp - 8]
fsubp st(2)
fld qword [0x480a30]
fsub st(2), st(0)
fld qword [ebp - 8]
faddp st(3)
fxch st(2)
fstp qword [ebp - 0x10]
fld qword [ebp - 8]
fmul qword [ebp - 0x10]
fsub qword [0x480a28]
fadd qword [ebp - 8]
fld qword [ebp - 8]
fmul qword [0x4809b8]
faddp st(1)
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fstp qword [ebp - 8]
fmul qword [ebp - 0x10]
fadd qword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [ebp - 8]
fld qword [ebp - 8]
fmulp st(2)
fld qword [ebp - 8]
fmulp st(2)
fsubrp st(1)
fsub qword [0x480a00]
fld qword [ebp - 8]
fmul qword [ebp - 0x10]
faddp st(1)
fld qword [ebp - 0x10]
fmul qword [0x480a20]
faddp st(1)
fsub qword [ebp - 8]
fld qword [ebp - 8]
fmul qword [0x480908]
faddp st(1)
fadd qword [ebp - 8]
fstp qword [ebp - 0x10]
pop ebx
leave
ret