Function at 0x41a660
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
fld qword [0x4501f0]
mov eax, dword [ebp + 0xc]
fsub qword [0x4499d0]
push ebx
push esi
add eax, 4
fsub qword [0x4499c8]
push edi
push eax
fstp qword [0x450288]
call fcn.0041ec23
mov edi, dword [ebp + 8]
mov esi, eax
add esp, 4
mov dword [ebp - 4], esi
mov al, byte [edi + 0x445550]
fld1
mov byte [esi], al
mov ecx, dword [0x452300]
movzx edx, byte [ecx + edi]
xor dl, al
mov byte [esi], dl
mov al, byte [edi + 0x445551]
mov byte [esi + 1], al
mov ecx, dword [0x452300]
movzx edx, byte [ecx + edi + 1]
xor dl, al
mov byte [esi + 1], dl
add edi, 2
fld qword [0x450168]
fadd qword [0x4499c0]
fstp qword [ebp - 0xc]
fld qword [0x450160]
mov ax, word [0x450378]
movsx ecx, ax
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
fsubr qword [ebp - 0xc]
fsubp st(1)
fstp qword [0x450160]
mov dx, word [0x450338]
mov cx, word [0x450080]
movzx ebx, word [esi]
dec word [0x450338]
movsx eax, dx
movsx edx, cx
add eax, 0xee5d3e95
add edx, 0x13443469
cmp eax, edx
jge 0x41a760
fld qword [0x450178]
mov eax, dword [0x450150]
fsub qword [0x4499b8]
mov dword [ebp + 8], eax
fstp qword [ebp - 0xc]
fild dword [ebp + 8]
fadd qword [ebp - 0xc]
call fcn.0041eb1c
mov dword [0x450150], eax
fsubr qword [0x450178]
fstp qword [0x450178]
jmp 0x41a7ff
fld qword [0x450148]
mov ecx, dword [0x450284]
fadd qword [0x4499b0]
mov edx, dword [0x450310]
mov dword [ebp + 8], ecx
sub edx, 0x542e3216
fstp qword [ebp - 0xc]
fild dword [ebp + 8]
mov dword [ebp + 8], edx
fsubr qword [ebp - 0xc]
fstp qword [ebp - 0xc]
fild dword [ebp + 8]
fcomp qword [ebp - 0xc]
fnstsw ax
fld qword [0x450148]
fadd st(1)
fstp qword [0x450148]
test ah, 0x41
jne 0x41a7eb
mov ax, word [0x4502d8]
movsx ecx, ax
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
fstp qword [ebp - 0xc]
fld qword [0x4501f0]
fadd qword [0x4499a8]
fsub qword [0x4499a0]
fsubr qword [ebp - 0xc]
call fcn.0041eb1c
mov word [0x4502d8], ax
fadd qword [0x4501f0]
fstp qword [0x4501f0]
jmp 0x41a7ff
fstp st(0)
fld qword [0x450350]
fmul qword [0x449998]
fstp qword [0x450350]
lea edx, [ebx + 3]
push edx
lea eax, [edi + 0x445550]
push eax
push esi
call fcn.0041e220
mov ecx, dword [0x450004]
mov eax, dword [0x4500dc]
add eax, ecx
movzx ecx, word [0x450258]
imul ecx, eax
mov word [0x450258], cx
inc dword [0x4500dc]
add edi, dword [0x452300]
lea ecx, [ebx + esi + 3]
add esp, 0xc
mov eax, esi
cmp esi, ecx
je 0x41a851
mov dl, byte [edi]
xor byte [eax], dl
inc eax
inc edi
cmp eax, ecx
jne 0x41a847
mov ax, word [0x45034c]
movzx edx, word [0x450080]
cwde
add edx, eax
mov word [0x450080], dx
cmp dword [ebp + 0xc], ebx
je 0x41a970
fld qword [0x450060]
fmul qword [0x449990]
fstp qword [0x450060]
mov byte [ecx], 0
fld dword [0x4503d8]
mov edi, dword [ecx - 3]
fadd dword [0x449988]
fstp qword [ebp - 0xc]
fld qword [0x450160]
fcomp qword [ebp - 0xc]
fnstsw ax
fld dword [0x4503d8]
fld1
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [0x4503d8]
test ah, 0x41
jne 0x41a8d8
mov eax, dword [0x450330]
fstp st(0)
sub eax, 0x32dfb807
sub dword [ebp + 0xc], ebx
mov dword [0x450310], eax
lea esi, [ecx - 3]
jmp 0x41a698
dec word [0x450170]
mov dx, word [0x450170]
movsx eax, dx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp qword [ebp - 0xc]
fld qword [0x450128]
fadd qword [ebp - 0xc]
fstp qword [ebp - 0xc]
fld dword [0x4500ec]
fsubr qword [ebp - 0xc]
fcomp qword [0x449980]
fnstsw ax
fadd dword [0x4500ec]
fstp dword [0x4500ec]
test ah, 0x41
jp 0x41a94d
movzx edx, word [0x4503ac]
movsx edx, dx
mov eax, 0xd59ccea2
sub eax, edx
movzx edx, word [0x4502f0]
imul edx, eax
sub dword [ebp + 0xc], ebx
mov word [0x4502f0], dx
lea esi, [ecx - 3]
jmp 0x41a698
fld dword [0x4503d8]
sub dword [ebp + 0xc], ebx
fstp qword [ebp - 0xc]
lea esi, [ecx - 3]
fld qword [0x4500a8]
fmul qword [ebp - 0xc]
fstp qword [0x4500a8]
jmp 0x41a698
mov eax, dword [0x450284]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
mov eax, dword [ebp - 4]
pop edi
pop esi
fstp qword [ebp - 0xc]
pop ebx
fld qword [0x450118]
fadd qword [ebp - 0xc]
fstp qword [0x450118]
mov esp, ebp
pop ebp
ret