Function at 0x573f40
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push ebp
sub esp, 0x48
cmp byte [0xa10b72], 0
je 0x5742ce
fild dword [0x9b48f0]
push eax
fmul dword [0x699410]
fmul dword [0x699388]
fstp dword [esp]
fild dword [0x9b48ec]
push eax
fmul dword [0x699414]
fmul dword [0x699388]
fstp dword [esp]
call fcn.00550250
pop ecx
pop ecx
call fcn.00550160
call fcn.005500f0
mov eax, dword [0x9b48ec]
add eax, 0xffffffec
mov dword [esp + 8], eax
push eax
fild dword [esp + 0xc]
fstp dword [esp]
call fcn.00550110
pop ecx
call fcn.00550130
call fcn.00550040
lea ecx, [esp + 0x10]
push 0xc8
push 0
push 0xff
push 0
call fcn.00541590
lea eax, [esp + 0x10]
push eax
call fcn.00550190
pop ecx
push 1
call fcn.00550000
mov eax, dword [0xa0d8a0]
pop ecx
and eax, 0x3f
push eax
push 0x699418
push 0x7f8380
call fcn.00648c60
add esp, 0xc
push 0x821070
push 0x7f8380
call fcn.00552520
mov edx, dword [0x9b48f0]
mov eax, 0x66666667
lea edx, [edx*8]
pop ecx
mov ebp, edx
pop ecx
imul edx
shr ebp, 0x1f
push 0x821070
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 [0x9b48ec]
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.00551060
add esp, 0xc
xor ebx, ebx
jmp 0x5741a6
push 2
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
lea ecx, [esp + 0x14]
push 0x64
push 0
push 0x64
push 0
call fcn.00541590
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 [0x9b48ec]
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.00578540
add esp, 0x24
push 5
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
lea ecx, [esp + 0x18]
push 0x96
push 0
push 0
push 0
call fcn.00541590
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 [0x9b48ec]
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.00578540
add esp, 0x24
add ebx, 4
mov edx, dword [0x9b48f0]
cmp ebx, edx
jl 0x574072
mov esi, dword [0x974b34]
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.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
lea ecx, [esp + 0x1c]
push 0x3c
push 0
push 0x64
push 0
call fcn.00541590
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 [0x9b48ec]
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.00578540
add esp, 0x24
cmp byte [0xa10b71], 0
je 0x574660
fild dword [0x9b48f0]
push eax
fmul dword [0x699410]
fmul dword [0x699388]
fstp dword [esp]
fild dword [0x9b48ec]
push eax
fmul dword [0x699414]
fmul dword [0x699388]
fstp dword [esp]
call fcn.00550250
pop ecx
pop ecx
call fcn.00550160
call fcn.005500f0
mov eax, dword [0x9b48ec]
add eax, 0xffffffec
mov dword [esp + 8], eax
push eax
fild dword [esp + 0xc]
fstp dword [esp]
call fcn.00550110
pop ecx
call fcn.00550130
call fcn.00550040
lea ecx, [esp + 0x20]
push 0xc8
push 0x64
push 0x64
push 0x64
call fcn.00541590
lea eax, [esp + 0x20]
push eax
call fcn.00550190
pop ecx
push 1
call fcn.00550000
xor ebx, ebx
pop ecx
jmp 0x5744a4
push 2
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
lea ecx, [esp + 0x24]
push 0x64
push 0x64
push 0x64
push 0x64
call fcn.00541590
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 [0x9b48ec]
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.00578540
add esp, 0x24
push 5
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
lea ecx, [esp + 0x28]
push 0x96
push 0
push 0
push 0
call fcn.00541590
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 [0x9b48ec]
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.00578540
add esp, 0x24
add ebx, 4
mov esi, dword [0x9b48f0]
cmp ebx, esi
jl 0x574370
mov ecx, dword [0x974b34]
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.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
lea ecx, [esp + 0x2c]
push 0x3c
push 0x64
push 0x64
push 0x64
call fcn.00541590
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 [0x9b48ec]
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.00578540
add esp, 0x24
xor ebx, ebx
mov eax, eax
call fcn.00649a40
movzx eax, ax
cdq
idiv dword [0x9b48ec]
mov esi, edx
call fcn.00649a40
movzx eax, ax
lea ecx, [esp + 0x40]
push 0x40
cdq
push 0xff
push 0xff
idiv dword [0x9b48f0]
push 0xff
mov ebp, edx
call fcn.00541590
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.00577b20
inc ebx
pop ecx
cmp ebx, 0xc8
pop ecx
jl 0x5745d0
cmp byte [0xa10ae5], 0
je 0x5747a3
inc dword [0x974b3c]
cmp dword [0x974b3c], 0x14
jbe 0x574692
mov dword [0x97f26c], 0x3f800000
mov byte [0xa10ae5], 0
jmp 0x5747a3
cmp dword [0x974b3c], 0xa
mov dword [0x97f26c], 0
jae 0x5747a3
mov ecx, dword [0x974b3c]
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.00649bf0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649bf0
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.00541590
mov esi, dword [0x9b48f0]
lea eax, [esp + 0x44]
mov dword [esp + 8], esi
push eax
fild dword [esp + 0xc]
push eax
fstp dword [esp]
mov ebp, dword [0x9b48ec]
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.00578540
add esp, 0x24
push 5
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
add esp, 0x48
pop ebp
pop esi
pop ebx
ret