Function at 0x44b4f0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x138
push esi
push edi
mov edi, 3
mov dword [ebp - 8], ecx
cmp dword [ebx + 8], edi
mov eax, 0x20
cmovge edi, dword [ebx + 8]
cmp edi, eax
cmovg edi, eax
xor esi, esi
mov dword [ebp - 4], edi
movd xmm0, edi
pshufd xmm1, xmm0, 0
test edi, edi
jle 0x44b6b4
cmp edi, 2
jb 0x44b637
mov eax, edi
and eax, 0x80000001
jns 0x44b554
dec eax
or eax, 0xfffffffe
inc eax
movaps xmm2, xmmword [0x47a6d0]
movq xmm0, xmm1
movaps xmm3, xmmword [0x47a6f0]
mov ecx, edi
movaps xmm4, xmmword [0x47a6e0]
sub ecx, eax
cvtdq2ps xmm5, xmm0
mov dword [ebp - 0x14], ecx
mov edi, ecx
movaps xmmword [ebp - 0x30], xmm5
nop dword [eax]
movd xmm0, esi
pshufd xmm1, xmm0, 0
movq xmm0, qword [0x47a5d0]
paddd xmm1, xmm0
xorps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movsd xmm0, xmm2
addps xmm1, xmm0
xorps xmm0, xmm0
movsd xmm0, xmm3
mulps xmm1, xmm0
xorps xmm0, xmm0
movsd xmm0, xmm4
mulps xmm1, xmm0
xorps xmm0, xmm0
movsd xmm0, xmm5
divps xmm1, xmm0
cvtps2pd xmm0, xmm1
movups xmmword [ebp - 0x20], xmm1
call fcn.00456e00
cvtpd2ps xmm1, xmm0
cvtps2pd xmm0, qword [ebp - 0x20]
movss dword [ebp + esi*8 - 0x130], xmm1
shufps xmm1, xmm1, 0xe5
movss dword [ebp + esi*8 - 0x128], xmm1
call fcn.00456e10
movaps xmm2, xmmword [0x47a6d0]
movaps xmm3, xmmword [0x47a6f0]
movaps xmm4, xmmword [0x47a6e0]
movaps xmm5, xmmword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
xorps xmm0, xmmword [0x47a5b0]
movss dword [ebp + esi*8 - 0x12c], xmm0
shufps xmm0, xmm0, 0xe5
movss dword [ebp + esi*8 - 0x124], xmm0
add esi, 2
cmp esi, edi
jl 0x44b580
mov edi, dword [ebp - 4]
cmp esi, edi
jge 0x44b6b4
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss dword [ebp - 4], xmm1
nop word [eax + eax]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
addss xmm0, dword [0x47a548]
mulss xmm0, dword [0x47a630]
addss xmm0, xmm0
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.0045e950
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [ebp - 0x18]
movss dword [ebp + esi*8 - 0x130], xmm1
call fcn.0045fbd0
movss xmm1, dword [ebp - 4]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x47a5b0]
movss dword [ebp + esi*8 - 0x12c], xmm0
inc esi
cmp esi, edi
jl 0x44b650
push dword [ebx + 0x30]
movss xmm0, dword [ebx + 0x24]
lea eax, [ebp - 0x130]
push dword [ebx + 0x2c]
push dword [ebx + 0x28]
push ecx
mov dword [esp], 0x40000000
push eax
push edi
mov edi, dword [ebp - 8]
sub esp, 0x14
mov ecx, edi
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0x20]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebx + 0x1c]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebx + 0x18]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebx + 0x14]
movss dword [esp], xmm0
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call fcn.0044b300
mov esi, eax
test esi, esi
js 0x44b7dd
push 0x2a
call fcn.0044ece0
fstp dword [ebp - 8]
push 0x2b
call fcn.0044ece0
add esp, 8
fstp dword [ebp - 4]
cmp esi, 0x200
jge 0x44b76c
imul ecx, esi, 0xf4
add ecx, dword [edi]
cmp byte [ecx + 6], 0
je 0x44b76c
mov eax, dword [ecx]
and eax, 0xc0
cmp al, 0xc0
je 0x44b762
movss xmm0, dword [ebp - 8]
movss dword [ecx + 0x30], xmm0
movss xmm0, dword [ebp - 4]
movss dword [ecx + 0x34], xmm0
push 0x2c
call fcn.0044ece0
fstp dword [ebp - 8]
push 0x2d
call fcn.0044ece0
add esp, 8
fstp dword [ebp - 4]
cmp esi, 0x200
jge 0x44b7dd
mov ecx, dword [edi]
imul edx, esi, 0xf4
cmp byte [ecx + edx + 6], 0
je 0x44b7b8
movss xmm0, dword [ebp - 8]
movss dword [ecx + edx + 0xa8], xmm0
movss xmm0, dword [ebp - 4]
movss dword [ecx + edx + 0xa4], xmm0
mov ecx, dword [edi]
cmp byte [edx + ecx + 6], 0
je 0x44b7dd
mov eax, dword [ebx + 0x2c]
mov dword [edx + ecx + 0x84], eax
mov eax, dword [ebx + 0x30]
mov dword [edx + ecx + 0x88], eax
mov eax, dword [ebx + 0x34]
mov dword [edx + ecx + 0x8c], eax
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x30