Function at 0x573f20
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push ebp
sub esp, 0x48
cmp byte [0xa10b69], 0
je 0x5742ae
fild dword [0x9b48e8]
push eax
fmul dword [0x699410]
fmul dword [0x699388]
fstp dword [esp]
fild dword [0x9b48e4]
push eax
fmul dword [0x699414]
fmul dword [0x699388]
fstp dword [esp]
call fcn.00550230
pop ecx
pop ecx
call fcn.00550140
call fcn.005500d0
mov eax, dword [0x9b48e4]
add eax, 0xffffffec
mov dword [esp + 8], eax
push eax
fild dword [esp + 0xc]
fstp dword [esp]
call fcn.005500f0
pop ecx
call fcn.00550110
call fcn.00550020
lea ecx, [esp + 0x10]
push 0xc8
push 0
push 0xff
push 0
call fcn.00541570
lea eax, [esp + 0x10]
push eax
call fcn.00550170
pop ecx
push 1
call fcn.0054ffe0
mov eax, dword [0xa0d898]
pop ecx
and eax, 0x3f
push eax
push 0x699418
push 0x7f8378
call fcn.00648c10
add esp, 0xc
push 0x821068
push 0x7f8378
call fcn.00552500
mov edx, dword [0x9b48e8]
mov eax, 0x66666667
lea edx, [edx*8]
pop ecx
mov ebp, edx
pop ecx
imul edx
shr ebp, 0x1f
push 0x821068
sar edx, 2
push eax
add ebp, edx
mov eax, 0x66666667
mov dword [esp + 0x10], ebp
fild dword [esp + 0x10]
fstp dword [esp]
mov edx, dword [0x9b48e4]
lea edx, [edx*8]
mov esi, edx
imul edx
shr esi, 0x1f
sar edx, 2
push eax
add esi, edx
mov dword [esp + 0x14], esi
fild dword [esp + 0x14]
fstp dword [esp]
call fcn.00551040
add esp, 0xc
xor ebx, ebx
jmp 0x574186
push 2
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
lea ecx, [esp + 0x14]
push 0x64
push 0
push 0x64
push 0
call fcn.00541570
mov eax, ebx
lea ecx, [esp + 0x14]
inc eax
push ecx
mov dword [esp + 0xc], eax
push eax
fild dword [esp + 0x10]
fstp dword [esp]
mov edx, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], edx
mov eax, ebx
fild dword [esp + 0x14]
inc eax
fstp dword [esp]
mov dword [esp + 0x14], eax
push eax
fild dword [esp + 0x18]
fstp dword [esp]
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
push dword [0x699340]
push eax
fstp dword [esp]
mov dword [esp + 0x20], edx
push eax
fild dword [esp + 0x24]
fstp dword [esp]
mov dword [esp + 0x24], ebx
push eax
fild dword [esp + 0x28]
fstp dword [esp]
push dword [0x699340]
call fcn.00578520
add esp, 0x24
push 5
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
lea ecx, [esp + 0x18]
push 0x96
push 0
push 0
push 0
call fcn.00541570
lea eax, [ebx + 3]
lea ebp, [esp + 0x18]
mov dword [esp + 8], eax
push ebp
fild dword [esp + 0xc]
push eax
fstp dword [esp]
mov ecx, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fstp dword [esp]
lea eax, [ebx + 3]
mov dword [esp + 0x14], eax
push eax
fild dword [esp + 0x18]
fstp dword [esp]
lea eax, [ebx + 2]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
push dword [0x699340]
push eax
fstp dword [esp]
mov dword [esp + 0x20], ecx
push eax
fild dword [esp + 0x24]
fstp dword [esp]
lea eax, [ebx + 2]
mov dword [esp + 0x24], eax
push eax
fild dword [esp + 0x28]
fstp dword [esp]
push dword [0x699340]
call fcn.00578520
add esp, 0x24
add ebx, 4
mov edx, dword [0x9b48e8]
cmp ebx, edx
jl 0x574052
mov esi, dword [0x974b2c]
mov dword [esp + 0xc], 0
and esi, 0x7ff
mov eax, esi
mov dword [esp + 8], esi
mov dword [esp + 8], eax
fild qword [esp + 8]
mov dword [esp + 8], edx
fild dword [esp + 8]
push 5
push 0xa
fadd dword [0x69941c]
fmul dword [0x699420]
fmulp st(1)
fnstcw word [esp + 0xc]
mov eax, dword [esp + 0xc]
or byte [esp + 0xd], 0xc
fldcw word [esp + 0xc]
fistp dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
fldcw word [esp + 0xc]
fild dword [esp + 0x10]
fsub dword [0x69941c]
fnstcw word [esp + 0xc]
mov eax, dword [esp + 0xc]
or byte [esp + 0xd], 0xc
fldcw word [esp + 0xc]
mov dword [esp + 0xc], eax
fistp qword [esp + 0x10]
fldcw word [esp + 0xc]
mov ebp, dword [esp + 0x10]
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
lea ecx, [esp + 0x1c]
push 0x3c
push 0
push 0x64
push 0
call fcn.00541570
mov dword [esp + 8], ebp
lea eax, [esp + 0x1c]
fldz
fild dword [esp + 8]
push eax
push eax
fadd dword [0x69941c]
fstp st(1)
fst dword [esp]
mov ecx, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fstp dword [esp]
push eax
fst dword [esp]
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
push dword [0x699340]
push eax
fstp dword [esp]
mov dword [esp + 0x20], ecx
push eax
fild dword [esp + 0x24]
fstp dword [esp]
mov dword [esp + 0x24], ebp
push eax
fild dword [esp + 0x28]
fstp dword [esp]
push dword [0x699340]
fstp st(0)
call fcn.00578520
add esp, 0x24
cmp byte [0xa10b68], 0
je 0x574640
fild dword [0x9b48e8]
push eax
fmul dword [0x699410]
fmul dword [0x699388]
fstp dword [esp]
fild dword [0x9b48e4]
push eax
fmul dword [0x699414]
fmul dword [0x699388]
fstp dword [esp]
call fcn.00550230
pop ecx
pop ecx
call fcn.00550140
call fcn.005500d0
mov eax, dword [0x9b48e4]
add eax, 0xffffffec
mov dword [esp + 8], eax
push eax
fild dword [esp + 0xc]
fstp dword [esp]
call fcn.005500f0
pop ecx
call fcn.00550110
call fcn.00550020
lea ecx, [esp + 0x20]
push 0xc8
push 0x64
push 0x64
push 0x64
call fcn.00541570
lea eax, [esp + 0x20]
push eax
call fcn.00550170
pop ecx
push 1
call fcn.0054ffe0
xor ebx, ebx
pop ecx
jmp 0x574484
push 2
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
lea ecx, [esp + 0x24]
push 0x64
push 0x64
push 0x64
push 0x64
call fcn.00541570
mov eax, ebx
lea ebp, [esp + 0x24]
inc eax
push ebp
mov dword [esp + 0xc], eax
push eax
fild dword [esp + 0x10]
fstp dword [esp]
mov esi, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], esi
mov eax, ebx
fild dword [esp + 0x14]
inc eax
fstp dword [esp]
mov dword [esp + 0x14], eax
push eax
fild dword [esp + 0x18]
fstp dword [esp]
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
push dword [0x699340]
push eax
fstp dword [esp]
mov dword [esp + 0x20], esi
push eax
fild dword [esp + 0x24]
fstp dword [esp]
mov dword [esp + 0x24], ebx
push eax
fild dword [esp + 0x28]
fstp dword [esp]
push dword [0x699340]
call fcn.00578520
add esp, 0x24
push 5
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
lea ecx, [esp + 0x28]
push 0x96
push 0
push 0
push 0
call fcn.00541570
lea eax, [ebx + 3]
lea edx, [esp + 0x28]
mov dword [esp + 8], eax
push edx
fild dword [esp + 0xc]
push eax
fstp dword [esp]
mov ebp, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fstp dword [esp]
lea eax, [ebx + 3]
mov dword [esp + 0x14], eax
push eax
fild dword [esp + 0x18]
fstp dword [esp]
lea eax, [ebx + 2]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
push dword [0x699340]
push eax
fstp dword [esp]
mov dword [esp + 0x20], ebp
push eax
fild dword [esp + 0x24]
fstp dword [esp]
lea eax, [ebx + 2]
mov dword [esp + 0x24], eax
push eax
fild dword [esp + 0x28]
fstp dword [esp]
push dword [0x699340]
call fcn.00578520
add esp, 0x24
add ebx, 4
mov esi, dword [0x9b48e8]
cmp ebx, esi
jl 0x574350
mov ecx, dword [0x974b2c]
mov dword [esp + 0xc], 0
and ecx, 0x7ff
mov eax, ecx
mov dword [esp + 8], ecx
mov dword [esp + 8], eax
fild qword [esp + 8]
mov dword [esp + 8], esi
fild dword [esp + 8]
push 5
push 0xa
fadd dword [0x69941c]
fmul dword [0x699420]
fmulp st(1)
fnstcw word [esp + 0xc]
mov eax, dword [esp + 0xc]
or byte [esp + 0xd], 0xc
fldcw word [esp + 0xc]
fistp dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
fldcw word [esp + 0xc]
fild dword [esp + 0x10]
fsub dword [0x69941c]
fnstcw word [esp + 0xc]
mov eax, dword [esp + 0xc]
or byte [esp + 0xd], 0xc
fldcw word [esp + 0xc]
mov dword [esp + 0xc], eax
fistp qword [esp + 0x10]
fldcw word [esp + 0xc]
mov ebp, dword [esp + 0x10]
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
lea ecx, [esp + 0x2c]
push 0x3c
push 0x64
push 0x64
push 0x64
call fcn.00541570
mov dword [esp + 8], ebp
lea eax, [esp + 0x2c]
fldz
fild dword [esp + 8]
push eax
push eax
fadd dword [0x69941c]
fstp st(1)
fst dword [esp]
mov edx, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fstp dword [esp]
push eax
fst dword [esp]
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
push dword [0x699340]
push eax
fstp dword [esp]
mov dword [esp + 0x20], edx
push eax
fild dword [esp + 0x24]
fstp dword [esp]
mov dword [esp + 0x24], ebp
push eax
fild dword [esp + 0x28]
fstp dword [esp]
push dword [0x699340]
fstp st(0)
call fcn.00578520
add esp, 0x24
xor ebx, ebx
mov eax, eax
call fcn.006499f0
movzx eax, ax
cdq
idiv dword [0x9b48e4]
mov esi, edx
call fcn.006499f0
movzx eax, ax
lea ecx, [esp + 0x40]
push 0x40
cdq
push 0xff
push 0xff
idiv dword [0x9b48e8]
push 0xff
mov ebp, edx
call fcn.00541570
mov dword [esp + 8], esi
add esi, 0x14
fild dword [esp + 8]
mov dword [esp + 8], ebp
add ebp, 2
lea edx, [esp + 0x40]
fstp dword [esp + 0x30]
fild dword [esp + 8]
mov dword [esp + 8], esi
lea eax, [esp + 0x30]
push edx
push eax
fstp dword [esp + 0x44]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ebp
fstp dword [esp + 0x40]
fild dword [esp + 0x10]
fstp dword [esp + 0x3c]
call fcn.00577b00
inc ebx
pop ecx
cmp ebx, 0xc8
pop ecx
jl 0x5745b0
cmp byte [0xa10add], 0
je 0x574783
inc dword [0x974b34]
cmp dword [0x974b34], 0x14
jbe 0x574672
mov dword [0x97f264], 0x3f800000
mov byte [0xa10add], 0
jmp 0x574783
cmp dword [0x974b34], 0xa
mov dword [0x97f264], 0
jae 0x574783
mov ecx, dword [0x974b34]
mov eax, 0xcccccccd
imul ecx, ecx, 0xff
mov ebx, 0xff
mov dword [esp + 0xc], 0
push 2
push 0xa
mul ecx
shr edx, 3
sub ebx, edx
mov eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], eax
fild qword [esp + 0x10]
fmul dword [0x699424]
fnstcw word [esp + 0xc]
mov eax, dword [esp + 0xc]
or byte [esp + 0xd], 0xc
fldcw word [esp + 0xc]
mov dword [esp + 0xc], eax
fistp qword [esp + 0x10]
fldcw word [esp + 0xc]
mov ebx, dword [esp + 0x10]
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649ba0
mov al, bl
pop ecx
mov dl, bl
pop ecx
push eax
mov al, bl
lea ecx, [esp + 0x48]
push edx
push eax
push ebx
call fcn.00541570
mov esi, dword [0x9b48e8]
lea eax, [esp + 0x44]
mov dword [esp + 8], esi
push eax
fild dword [esp + 0xc]
push eax
fstp dword [esp]
mov ebp, dword [0x9b48e4]
push eax
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fstp dword [esp]
mov dword [esp + 0x14], esi
push eax
fild dword [esp + 0x18]
fstp dword [esp]
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
push dword [0x699340]
push dword [0x699340]
push eax
fstp dword [esp]
push dword [0x699340]
push dword [0x699340]
call fcn.00578520
add esp, 0x24
push 5
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
add esp, 0x48
pop ebp
pop esi
pop ebx
ret