Function at 0x44d310
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [0x4eac50]
push esi
mov esi, dword [0x4e9e38]
push edi
cmp esi, ebp
jge 0x44d4f0
fild dword [0x4eac50]
fmul dword [esp + 0x28]
fadd st(0), st(0)
call fcn.004b78c0
cmp ebp, eax
mov edi, ebp
jl 0x44d344
mov edi, eax
mov ecx, dword [0x4e6e68]
lea eax, [esi + esi*4]
mov edx, esi
cmp esi, edi
lea ecx, [ecx + eax*8]
mov dword [esp + 0x18], edx
jge 0x44d4ea
add ecx, 0x10
test dl, 1
je 0x44d36e
fld qword [0x4c5558]
jmp 0x44d374
fld qword [0x4c5520]
fstp dword [esp + 0x10]
test dl, 2
je 0x44d385
fld qword [0x4c5558]
jmp 0x44d38b
fld qword [0x4c5520]
mov eax, dword [0x6087b0]
and edx, 0x1f
mov bl, al
mov dword [esp + 0x28], edx
sub bl, 0x2c
add al, 4
fild dword [esp + 0x28]
and ebx, 0xff
and eax, 0xff
mov esi, dword [ebx + 0x608a20]
mov ebp, dword [eax + 0x608a20]
fmul qword [0x4c5560]
mov edx, esi
xor ebp, esi
shr edx, 9
or edx, 0x3f800000
mov dword [eax + 0x608a20], ebp
mov dword [esp + 0x28], edx
mov dl, al
fld dword [esp + 0x28]
fsub dword [0x4c54ec]
fxch st(1)
fsub qword [0x4c5568]
fxch st(1)
fmul qword [0x4c5570]
fxch st(1)
fsub qword [0x4c5530]
fxch st(1)
sub dl, 0x2c
add al, 4
faddp st(1)
and edx, 0xff
and eax, 0xff
mov dword [0x6087b0], eax
fst dword [esp + 0x28]
mov edx, dword [edx + 0x608a20]
fld dword [esp + 0x28]
fxch st(1)
fsin
mov esi, edx
shr esi, 9
or esi, 0x3f800000
mov dword [esp + 0x28], esi
mov esi, dword [eax + 0x608a20]
xor esi, edx
mov dword [eax + 0x608a20], esi
xor eax, eax
mov al, byte [ecx - 0xf]
shl eax, 1
mov dword [esp + 0x1c], eax
fxch st(1)
fcos
fld dword [esp + 0x28]
fsub dword [0x4c54ec]
fld dword [esp + 0x10]
fxch st(1)
fsub qword [0x4c5550]
fxch st(4)
fst dword [esp + 0x14]
fxch st(4)
fmul qword [0x4c5578]
fild dword [esp + 0x1c]
fxch st(1)
fst dword [esp + 0x28]
fld dword [esp + 0x10]
fmul qword [0x4c5580]
fstp dword [ecx - 4]
fld dword [esp + 0x14]
fmul qword [0x4c5580]
fstp dword [ecx]
fxch st(1)
fsubr qword [0x4c5588]
fstp dword [ecx + 4]
fxch st(1)
fchs
fxch st(4)
fchs
fld dword [esp + 0x28]
fxch st(5)
fmulp st(4)
mov edx, dword [esp + 0x18]
add ecx, 0x28
inc edx
fmulp st(2)
cmp edx, edi
mov dword [esp + 0x18], edx
fmulp st(2)
fxch st(2)
fmulp st(2)
fstp dword [ecx - 0x20]
fstp dword [ecx - 0x1c]
fld dword [esp + 0x28]
fchs
fmul qword [0x4c5590]
fstp dword [ecx - 0x18]
jl 0x44d361
mov ebp, dword [0x4eac50]
mov dword [0x4e9e38], edi
mov eax, dword [esp + 0x24]
mov ebx, 1
cmp eax, ebx
jne 0x44d604
mov al, byte [0x4ec3d0]
test al, al
jne 0x44d604
xor edx, edx
test ebp, ebp
jle 0x44d5fe
mov eax, dword [0x6087b0]
mov edi, 0x4eac58
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
add edi, 4
mov esi, dword [eax + 0x608a20]
mov ecx, dword [ecx + 0x608a20]
xor esi, ecx
and ecx, 0x7fff
shl ecx, 8
mov dword [edx*4 + 0x4e6ea8], ecx
mov cl, al
mov dword [eax + 0x608a20], esi
add cl, 4
sub al, 0x2c
and ecx, 0xff
and eax, 0xff
mov esi, dword [ecx + 0x608a20]
mov eax, dword [eax + 0x608a20]
xor esi, eax
shr eax, 9
or eax, 0x3f800000
mov dword [ecx + 0x608a20], esi
mov dword [esp + 0x28], eax
mov al, cl
fld dword [esp + 0x28]
fsub dword [0x4c54ec]
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
fmul qword [0x4c5598]
mov ecx, dword [ecx + 0x608a20]
mov esi, eax
fsub qword [0x4c55a0]
xor dword [esi + 0x608a20], ecx
shr ecx, 9
or ecx, 0x3f800000
fstp dword [edx*4 + 0x4e8618]
mov dword [esp + 0x28], ecx
inc edx
fld dword [esp + 0x28]
fsub dword [0x4c54ec]
cmp edx, ebp
fmul qword [0x4c55a8]
fsubr qword [0x4c5508]
fstp dword [edi - 4]
jl 0x44d522
mov dword [0x6087b0], eax
mov byte [0x4ec3d0], bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret