Function at 0x45a5e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
fld dword [0x9de8e0]
fcomp dword [0x497058]
push ebx
push esi
push edi
fnstsw ax
test ah, 0x40
je 0x45a632
mov esi, 0x9de8e0
call fcn.0048c2af
and eax, 0xff
add esi, 4
mov dword [esp + 0x1c], eax
cmp esi, 0x9df078
fild dword [esp + 0x1c]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fmul qword [0x497118]
fstp dword [esi - 4]
jl 0x45a604
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x13c]
fcomp qword [0xc3b960]
fnstsw ax
test ah, 0x41
je 0x45aa26
fld qword [0xc3b960]
fadd qword [0x4970d0]
mov ebx, dword [ebp + 0xc]
mov edi, 0x9de8e4
fstp dword [ecx + 0x13c]
fld dword [edi - 4]
fmul qword [0xc3b960]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp qword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push esi
push eax
call fcn.0048d554
mov ecx, dword [esp + 0x18]
push esi
fstp st(0)
push ecx
call fcn.0048d604
fstp st(0)
fld dword [edi]
fmul qword [0xc3b960]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp qword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push esi
push edx
call fcn.0048d554
mov eax, dword [esp + 0x28]
push esi
fstp st(0)
push eax
call fcn.0048d604
fstp st(0)
fld dword [edi + 4]
fmul qword [0xc3b960]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp qword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push esi
push ecx
call fcn.0048d554
mov edx, dword [esp + 0x38]
push esi
fstp st(0)
push edx
call fcn.0048d604
mov esi, dword [0x9de8d8]
xor eax, eax
add esp, 0x30
cmp esi, eax
fstp st(0)
je 0x45aa26
mov ecx, dword [esi + 0x10]
mov edx, dword [0x9df078]
mov dword [0x9de8d8], ecx
mov dword [esi + 0x10], edx
fld qword [0xc3b960]
fadd qword [0x497410]
mov ecx, 0x3e4ccccd
mov dword [0x9df078], esi
mov dword [esi + 0x28], 9
mov dword [esi + 0x34], 8
mov dword [esi + 0x44], 1
mov dword [esi + 0x2c], 0x3fb33333
fstp dword [esi + 0x24]
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x30], 0xbfb33333
mov dword [esi + 0x60], 4
mov dword [esi + 0x64], 0x3fd9999a
mov dword [esi + 0x68], 0x3f99999a
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], eax
call fcn.0048c2af
and eax, 0x168
mov dword [esi + 0x20], 0
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fstp dword [esi + 0x5c]
mov eax, dword [ebx]
mov dword [esi], eax
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
mov edx, dword [ebx + 8]
mov dword [esi + 8], edx
call fcn.0048c2af
cdq
mov ecx, 0x42
add edi, 0xc
idiv ecx
mov eax, dword [ebp + 8]
add edx, 0x23
cmp edi, 0x9de908
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fstp dword [esi + 0x1c]
fld dword [eax + 0x7c]
fadd dword [esi + 0x54]
fstp dword [esi + 0x54]
fld dword [eax + 0x80]
fadd dword [esi + 0x58]
fstp dword [esi + 0x58]
fld dword [eax + 0x84]
fadd dword [esi + 0x5c]
mov dword [esi + 0x3c], 0xed
fstp dword [esi + 0x5c]
jl 0x45a666
xor edi, edi
fld dword [edi + 0x9de8e0]
fmul qword [0xc3b960]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp qword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push edx
call fcn.0048d554
mov eax, dword [esp + 0x18]
push esi
fstp dword [esp + 0x30]
push eax
call fcn.0048d604
fstp dword [esp + 0x30]
fld dword [edi + 0x9de8e4]
fmul qword [0xc3b960]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp qword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push esi
push ecx
call fcn.0048d554
mov edx, dword [esp + 0x28]
push esi
fstp dword [esp + 0x44]
push edx
call fcn.0048d604
fstp dword [esp + 0x3c]
fld dword [edi + 0x9de8e8]
fmul qword [0xc3b960]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp qword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push esi
push eax
call fcn.0048d554
mov ecx, dword [esp + 0x38]
push esi
fstp st(0)
push ecx
call fcn.0048d604
fstp st(0)
fld dword [esp + 0x4c]
fmul dword [esp + 0x50]
mov esi, dword [0x9de8d8]
add esp, 0x30
test esi, esi
fstp dword [esp + 0x34]
fld dword [esp + 0x1c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x38]
fld dword [esp + 0x28]
fchs
fstp dword [esp + 0x3c]
je 0x45aa26
mov edx, dword [esi + 0x10]
mov eax, dword [0x9df078]
mov dword [0x9de8d8], edx
mov dword [esi + 0x10], eax
fld qword [0xc3b960]
fadd qword [0x497410]
mov eax, 0x3f000000
mov dword [0x9df078], esi
mov dword [esi + 0x3c], 0x2c
mov dword [esi + 0x28], 9
mov dword [esi + 0x34], 8
mov dword [esi + 0x44], 1
fstp dword [esi + 0x24]
mov dword [esi + 0x2c], 0x3f800000
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x30], 0xbf4ccccd
mov dword [esi + 0x60], 3
mov dword [esi + 0x64], 0x3ecccccd
mov dword [esi + 0x68], 0xbfd9999a
mov dword [esi + 0x54], 0x42b40000
call fcn.0048c2af
and eax, 0x168
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fstp dword [esi + 0x58]
call fcn.0048c2af
and eax, 0x168
mov dword [esi + 0x6c], 0xc3340000
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fstp dword [esi + 0x5c]
call fcn.0048c2af
and eax, 0x168
mov dword [esi + 0x20], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
fild dword [esp + 0x28]
add edi, 0xc
cmp edi, 0x84
fstp dword [esi + 0x74]
fld dword [esp + 0x34]
fmul dword [0x49707c]
fadd dword [edi + 0x4ad5b4]
fadd dword [ebx]
fstp dword [esi]
fld dword [esp + 0x38]
fmul dword [0x49707c]
fadd dword [edi + 0x4ad5b8]
fadd dword [ebx + 4]
fstp dword [esi + 4]
fld dword [esp + 0x3c]
fmul dword [0x49707c]
fadd dword [edi + 0x4ad5bc]
fadd dword [ebx + 8]
mov dword [esi + 0x1c], 0x429a0000
fstp dword [esi + 8]
fld dword [eax + 0x7c]
fadd dword [esi + 0x54]
fstp dword [esi + 0x54]
fld dword [eax + 0x80]
fadd dword [esi + 0x58]
fstp dword [esi + 0x58]
fld dword [eax + 0x84]
fadd dword [esi + 0x5c]
mov dword [esi + 0x3c], 0xe8
fstp dword [esi + 0x5c]
jl 0x45a804
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret