Function at 0x4560fa
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x120c
call fcn.00485cf0
movss xmm2, dword [0x4bfb4c]
xor edx, edx
and dword [esp + 4], edx
push ebx
push ebp
mov ebp, dword [esp + 0x1218]
mov ebx, 0xfff9f664
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x1224]
sub ebx, edi
sub ebp, ecx
lea esi, [edi + 0x6099c]
movzx eax, byte [ecx + ebp]
xor eax, 0x80
add eax, 0xffffff80
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [esi - 0x900], xmm1
movzx eax, byte [ecx]
xor eax, 0x80
add eax, 0xffffff80
movd xmm0, eax
mov eax, dword [esp + 0x14]
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
addss xmm1, dword [eax + edi + 0x6009c]
lea eax, [esp + 0x1c]
mulss xmm1, xmm2
movss dword [eax + edx*4], xmm1
mov eax, dword [esp + 0x14]
addss xmm0, dword [eax + edi + 0x6099c]
lea eax, [ebx + esi]
add esi, 4
mov dword [esp + 0x14], eax
mulss xmm0, xmm2
movss dword [esp + edx*4 + 0x91c], xmm0
inc edx
inc ecx
cmp edx, 0x240
jl 0x456135
lea eax, [edi + 0x6129c]
push eax
lea eax, [esp + 0x20]
lea esi, [edi + 0x68a70]
push eax
mov ecx, esi
call fcn.004101e4
lea eax, [edi + 0x61a9c]
mov ecx, esi
push eax
lea eax, [esp + 0x920]
push eax
call fcn.004101e4
movsd xmm0, qword [0x4c5df8]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00499630
movsd xmm0, qword [0x4c1560]
fstp dword [esp + 0x20]
movsd qword [esp], xmm0
call fcn.00499630
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fdivr dword [esp + 0x20]
fdiv dword [0x4c1590]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movsd xmm0, qword [0x4c1560]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00492e10
fstp dword [esp + 0x24]
movss xmm1, dword [esp + 0x24]
lea ebx, [edi + 0x60024]
add esp, 0x10
xor ebp, ebp
cvtps2pd xmm1, xmm1
xor eax, eax
mov dword [esp + 0x18], eax
movd xmm0, eax
sub esp, 0x10
cvtdq2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call fcn.00492e10
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fmul dword [0x4c5e18]
mov eax, dword [esp + 0x28]
inc eax
fdiv dword [0x4c5e14]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
fstp dword [esp + 0x20]
cvttss2si esi, dword [esp + 0x20]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x24]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00492e10
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
xor eax, eax
fmul dword [0x4c5e18]
add esp, 0x10
test esi, esi
mov edx, 0x200
xorps xmm1, xmm1
cmovns eax, esi
fdiv dword [0x4c5e14]
fstp dword [esp + 0x10]
cvttss2si ecx, dword [esp + 0x10]
mov dword [esp + 0x10], eax
cmp ecx, edx
cmovg ecx, edx
and dword [ebx], 0
cmp eax, ecx
jge 0x456329
add eax, 0x184a7
add eax, ebp
lea edx, [edi + eax*4]
mov eax, ecx
sub eax, dword [esp + 0x10]
addss xmm1, dword [edx]
add edx, 4
movss dword [ebx], xmm1
sub eax, 1
jne 0x456310
mov eax, dword [esp + 0x10]
mov edx, 0x200
sub ecx, eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebx], xmm1
add ebx, 4
movss xmm1, dword [esp + 0x14]
cvtps2pd xmm1, xmm1
cmp eax, 3
jl 0x45625d
movss xmm1, dword [esp + 0x14]
add ebp, edx
cvtps2pd xmm1, xmm1
cmp ebp, 0x400
jl 0x456257
push 2
pop ebx
lea eax, [edi + 0x60028]
mov ecx, ebx
movss xmm0, dword [eax - 4]
divss xmm0, dword [0x4c5de8]
movss dword [eax - 4], xmm0
movss xmm0, dword [eax]
divss xmm0, dword [0x4c5dec]
movss dword [eax], xmm0
lea eax, [eax + 0xc]
movss xmm0, dword [eax - 8]
divss xmm0, dword [0x4c5de4]
movss dword [eax - 8], xmm0
sub ecx, 1
jne 0x45637a
lea esi, [edi + 0x60024]
push 3
pop ebp
movss xmm0, dword [esi]
comiss xmm0, dword [esi + 0x18]
jbe 0x4563d3
movss xmm1, dword [0x4c1330]
jmp 0x4563db
movss xmm1, dword [0x4bfb4c]
movss xmm0, dword [edi + 0x62f70]
sub esp, 0xc
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0x41600000
movss dword [esp], xmm1
call fcn.0046f15e
movss xmm1, dword [0x4bc5a0]
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
subss xmm1, xmm0
mulss xmm0, dword [esi + 0x18]
mulss xmm1, dword [esi]
addss xmm1, xmm0
movss dword [esi + 0x18], xmm1
movss xmm0, dword [edi + 0x62f70]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0x41600000
mov dword [esp], 0x3f68f5c3
call fcn.0046f15e
movss xmm0, dword [edi + 0x62f70]
movss dword [esp + 8], xmm0
fstp dword [esp + 0x1c]
mov dword [esp + 4], 0x41600000
mov dword [esp], 0x3f75c28f
call fcn.0046f15e
movss xmm0, dword [esp + 0x1c]
add esp, 0xc
movss xmm1, dword [0x4bc5a0]
subss xmm1, xmm0
mulss xmm0, dword [esi + 0x30]
fstp dword [esp + 0x18]
mulss xmm1, dword [esi]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esi + 0x30], xmm1
movss xmm1, dword [0x4bc5a0]
subss xmm1, xmm0
mulss xmm0, dword [esi + 0x48]
mulss xmm1, dword [esi]
addss xmm1, xmm0
movss dword [esi + 0x48], xmm1
add esi, 4
sub ebp, 1
jne 0x4563bf
sub ebx, 1
jne 0x4563bc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120c
ret 8