Function at 0x41a0c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0xc
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
fld dword [ebp + 0xd4]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 0x41
jne 0x41a3d5
mov eax, dword [esp + 0x20]
test eax, eax
jge 0x41a107
mov ecx, dword [0xe10ce4]
lea eax, [eax + eax*2 + 3]
shl eax, 3
sub ecx, eax
push ecx
push ebp
call fcn.00419580
add esp, 8
pop edi
pop esi
pop ebp
add esp, 0xc
ret
lea edx, [eax + eax*2]
mov eax, dword [0xe10cdc]
lea edx, [eax + edx*4]
mov dword [esp + 0x1c], edx
mov eax, dword [edx]
mov cl, byte [eax + 0x10]
cmp cl, 3
jae 0x41a147
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
and ecx, 0xff
fld dword [esi + ecx*4]
fsub dword [eax + 0xc]
fld dword [edi + ecx*4]
fsub dword [eax + 0xc]
fstp dword [esp + 0x2c]
fld dword [ebp + ecx*4 + 0x94]
jmp 0x41a199
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
fld dword [esi + 4]
fmul dword [eax + 4]
fld dword [esi + 8]
fmul dword [eax + 8]
faddp st(1)
fld dword [esi]
fmul dword [eax]
faddp st(1)
fsub dword [eax + 0xc]
fld dword [edi + 4]
fmul dword [eax + 4]
fld dword [edi + 8]
fmul dword [eax + 8]
faddp st(1)
fld dword [edi]
fmul dword [eax]
faddp st(1)
fsub dword [eax + 0xc]
mov eax, dword [ebp + 0xc8]
test eax, eax
fstp dword [esp + 0x2c]
je 0x41a193
fld dword [0x4d7378]
jmp 0x41a199
fld dword [0x4d747c]
fld st(0)
fadd dword [0x4d7390]
fld st(2)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x41a1df
fld dword [esp + 0x2c]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
jne 0x41a1e1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edi
push esi
push ecx
mov ecx, dword [edx + 4]
push eax
push ecx
fstp st(0)
push ebp
fstp st(0)
call fcn.0041a0c0
add esp, 0x18
pop edi
pop esi
pop ebp
add esp, 0xc
ret
fstp st(0)
fld st(0)
fchs
fsub dword [0x4d7390]
fld st(2)
fcomp st(1)
fnstsw ax
test ah, 1
je 0x41a229
fld dword [esp + 0x2c]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x41a22b
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [edx + 8]
push edi
push esi
push eax
push ecx
push edx
fstp st(0)
push ebp
fstp st(0)
call fcn.0041a0c0
add esp, 0x18
pop edi
pop esi
pop ebp
add esp, 0xc
ret
fstp st(0)
fld st(1)
fcomp dword [esp + 0x2c]
push ebx
fld st(1)
fnstsw ax
test ah, 1
je 0x41a283
fsub dword [esp + 0x30]
mov ebx, 1
fdivr qword [0x4d7428]
fld st(1)
fadd st(3)
fadd qword [0x4d7460]
fld st(1)
fmulp st(1)
fstp dword [esp + 0x30]
fxch st(2)
fsub st(1)
fadd qword [0x4d7460]
fxch st(2)
fmulp st(2)
fstp st(0)
fcom dword [0x4d7378]
fnstsw ax
test ah, 1
je 0x41a2d2
fstp st(0)
fld dword [0x4d7378]
jmp 0x41a2e7
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x41a2c0
fld st(1)
fsub dword [esp + 0x30]
xor ebx, ebx
fdivr qword [0x4d7428]
fld st(2)
fsub st(2)
fsub qword [0x4d7460]
fld st(1)
fmulp st(1)
fstp dword [esp + 0x30]
fxch st(1)
faddp st(2)
fxch st(1)
fadd qword [0x4d7460]
fxch st(1)
fmulp st(1)
jmp 0x41a26c
fstp st(0)
fstp st(0)
fld dword [0x4d7390]
xor ebx, ebx
mov dword [esp + 0x30], ebx
jmp 0x41a2e7
fcom dword [0x4d7390]
fnstsw ax
test ah, 0x41
jne 0x41a2e7
fstp st(0)
fld dword [0x4d7390]
fld dword [edi]
fsub dword [esi]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
push esi
fmul st(1)
push ecx
mov ecx, dword [esp + 0x34]
fadd dword [esi]
fstp dword [esp + 0x1c]
fld dword [edi + 4]
fsub dword [esi + 4]
fmul st(1)
fadd dword [esi + 4]
fstp dword [esp + 0x20]
fld dword [edi + 8]
fsub dword [esi + 8]
fmul st(1)
fadd dword [esi + 8]
fstp dword [esp + 0x24]
fld dword [esp + 0x38]
fsub dword [esp + 0x34]
mov eax, dword [edx + ebx*4 + 4]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp]
push ecx
push eax
push ebp
fstp st(0)
call fcn.0041a0c0
fld dword [esp + 0x48]
fcom dword [0x4d7378]
add esp, 0x18
fnstsw ax
test ah, 1
je 0x41a365
fstp st(0)
fld dword [0x4d7378]
jmp 0x41a37a
fcom dword [0x4d7390]
fnstsw ax
test ah, 0x41
jne 0x41a37a
fstp st(0)
fld dword [0x4d7390]
fld dword [edi]
fsub dword [esi]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x10]
push edi
fmul st(1)
push ecx
push edx
xor ebx, 1
push ecx
fadd dword [esi]
fstp dword [esp + 0x20]
fld dword [edi + 4]
fsub dword [esi + 4]
fmul st(1)
fadd dword [esi + 4]
fstp dword [esp + 0x24]
fld dword [edi + 8]
fsub dword [esi + 8]
fmul st(1)
fadd dword [esi + 8]
fstp dword [esp + 0x28]
fld dword [esp + 0x44]
fmul st(1)
mov ecx, dword [eax + ebx*4 + 4]
fadd dword [esp + 0x38]
fstp dword [esp]
push ecx
push ebp
fstp st(0)
call fcn.0041a0c0
add esp, 0x18
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xc
ret