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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 8], 6
mov dword [ebp - 4], 0x53
mov dword [ebp - 0xc], 0x24
push ebx
mov dword [ebp - 4], 0x22
push esi
mov dword [ebp - 4], 0x58
push edi
mov edi, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 8]
not eax
cmp esi, ecx
jge 0x4219db
mov ecx, dword [ebp - 8]
shl ecx, 2
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x14]
imul ecx, esi
mov esi, dword [ebp - 0x14]
sub ecx, esi
mov esi, dword [ebp - 4]
lea ecx, [ecx + esi - 0x36]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
add ecx, 0x29
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
mov ecx, 0xff
cmp edi, 8
jb 0x421a8a
mov esi, edi
shr esi, 3
movzx ebx, byte [edx]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 1]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 2]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 3]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 4]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 5]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 6]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
movzx ebx, byte [edx + 7]
xor ebx, eax
and ebx, ecx
shr eax, 8
xor eax, dword [ebx*4 + 0x45cc48]
add edx, 8
sub edi, 8
dec esi
jne 0x4219ee
fld qword [0x476940]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
fmul qword [0x476938]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
fadd qword [0x4768a0]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
fmul qword [0x476930]
fmul qword [ebp - 0x18]
fld qword [ebp - 0x18]
fadd qword [0x476928]
faddp st(1)
fadd qword [0x4768e0]
fsub qword [ebp - 0x18]
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
fmul qword [ebp - 0x18]
fld qword [ebp - 0x18]
fsub qword [0x476920]
faddp st(1)
fadd qword [0x476918]
fadd qword [ebp - 0x18]
fsub qword [0x476910]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
fmul qword [ebp - 0x18]
fmul qword [ebp - 0x18]
fadd qword [ebp - 0x18]
fsub qword [ebp - 0x18]
fsub qword [ebp - 0x18]
fstp qword [ebp - 0x18]
test edi, edi
je 0x421b2b
movzx esi, byte [edx]
xor esi, eax
and esi, ecx
shr eax, 8
xor eax, dword [esi*4 + 0x45cc48]
inc edx
dec edi
jne 0x421b16
mov dword [ebp - 0xc], 0x41
mov dword [ebp - 4], 0x11
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
imul ecx, edx
mov edx, 0xffffff64
sub edx, ecx
add edx, dword [ebp - 4]
pop edi
add edx, dword [ebp - 4]
pop esi
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
imul ecx, edx
mov edx, dword [ebp - 4]
imul ecx, ecx, 0x4e
imul edx, edx, 0x29
add ecx, edx
add ecx, dword [ebp - 4]
not eax
add ecx, dword [ebp - 0xc]
pop ebx
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
lea ecx, [ecx + edx + 0x97]
mov dword [ebp - 4], ecx
leave
ret