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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov edx, dword [0x59d350]
xor ecx, ecx
fld qword [0x46e4c8]
push ebx
push esi
mov eax, dword [edx + 0x3f04]
push edi
mov dword [ebp - 8], ecx
mov byte [eax + 0xc5], 1
mov eax, dword [edx + 0x3f04]
movss xmm0, dword [eax + 0x40]
mov ebx, dword [eax + 0x288]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [eax + 0x44]
mov dword [ebp - 4], ebx
movss dword [ebp - 0x18], xmm0
jmp 0x410e72
mov edx, dword [0x59d350]
movss xmm0, dword [0x59cc08]
mov esi, 4
mulss xmm0, dword [0x46e5c4]
cvttss2si eax, xmm0
sub ecx, eax
mov eax, dword [edx + 0x3f04]
lea edx, [ebp - 0xc]
lea edi, [ecx + ecx*8]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
shl edi, 4
add edi, ebx
mov dword [ebp - 0xc], edi
mov ebx, dword [eax + ecx*4 - 4]
not ebx
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x46d9c0]
sub esi, 1
jne 0x410eb3
mov esi, dword [0x59d350]
not ebx
cmp dword [esi + 0x3f28], ebx
jne 0x410efc
push ecx
push edi
mov edx, 0xc
mov ecx, ebx
fstp st(0)
call fcn.004374d0
fld qword [0x46e4c8]
add esp, 8
mov esi, dword [0x59d350]
xorps xmm0, xmm0
mov eax, ebx
cvtsi2sd xmm0, ebx
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x46f640]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x46e5a4]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
fld qword [ebp - 0x10]
fxch st(1)
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
fstp qword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x59cc08]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
fld qword [ebp - 0x10]
fld qword [0x46e4c8]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm3, dword [0x46e478]
fstp dword [ebp - 0xc]
movss xmm1, dword [ebp - 0xc]
comiss xmm3, xmm1
jbe 0x411028
cvttss2si ecx, dword [ebp + 0xc]
xor edx, edx
mov eax, ebx
div ecx
cvttss2si ecx, dword [ebp + 8]
mov eax, ebx
mov ebx, dword [ebp - 4]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
push ecx
addsd xmm0, qword [edx*8 + 0x46f640]
xor edx, edx
div ecx
lea eax, [ebp - 0x20]
mov ecx, ebx
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm3
subss xmm0, xmm1
movaps xmm3, xmm2
mulss xmm0, dword [0x46e5ac]
subss xmm3, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x46f640]
mov dword [esp], 0x3f800000
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x28]
cvtpd2ps xmm1, xmm0
push eax
movaps xmm0, xmm3
addss xmm0, dword [0x46e4fc]
addss xmm1, dword [ebp - 0x14]
minss xmm0, xmm2
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x28], xmm1
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x18]
addss xmm0, xmm3
movss dword [ebp - 0x24], xmm0
call fcn.00442140
mov esi, dword [0x59d350]
jmp 0x41102b
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
fld qword [0x46e4c8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0x7d0
jl 0x410e6c
movss xmm0, dword [esi + 0x18]
fstp st(0)
divss xmm0, dword [0x46e4fc]
movss xmm1, dword [0x59cc08]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [0x59cc08], xmm1
jb 0x41109a
mov eax, dword [0x59d398]
inc eax
mov dword [0x59cc08], 0x3f800000
mov dword [0x59d398], eax
and eax, 0x80000003
jns 0x411092
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x41109a
inc dword [0x59d390]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret