Function at 0x721660
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov al, byte [0xc7c70c]
sub esp, 0x28
test al, al
push esi
je 0x72192f
fild dword [0xc17048]
sub esp, 8
fmul dword [0x859524]
fmul dword [0x858ce8]
fstp dword [esp + 4]
fild dword [0xc17044]
fmul dword [0x859520]
fmul dword [0x858ce8]
fstp dword [esp]
call fcn.00719380
push 0
push 0
call fcn.007195c0
push 1
call fcn.007195b0
push 1
call fcn.00719610
add esp, 0x18
push 0xc8
push 0
push 0xff
push 0
lea ecx, [esp + 0x20]
call fcn.007170c0
mov eax, dword [eax]
push eax
call fcn.00719430
push 1
call fcn.00719490
mov ecx, dword [0xb7cb4c]
and ecx, 0x3f
push ecx
push 0x859508
push 0xb71670
call fcn.00821bb5
push 0xc1b100
push 0xb71670
call fcn.00718600
mov ecx, dword [0xc17048]
shl ecx, 3
mov eax, 0x66666667
imul ecx
mov ecx, dword [0xc17044]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x24], edx
shl ecx, 3
mov eax, 0x66666667
fild dword [esp + 0x24]
imul ecx
sar edx, 2
mov ecx, edx
add esp, 0x1c
shr ecx, 0x1f
push 0xc1b100
sub esp, 8
add edx, ecx
mov dword [esp + 0x14], edx
fstp dword [esp + 4]
fild dword [esp + 0x14]
fstp dword [esp]
call fcn.0071a700
mov eax, dword [0xc17048]
add esp, 0xc
test eax, eax
jle 0x721879
mov esi, 3
mov dword [esp + 8], esi
mov edx, dword [0xc97b24]
push 2
push 0xa
call dword [edx + 0x20]
mov eax, dword [0xc97b24]
push 2
push 0xb
call dword [eax + 0x20]
lea ecx, [esi - 2]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
add esp, 0x10
push 0x64
lea edx, [esi - 3]
fstp dword [esp + 0x14]
mov dword [esp + 0x10], edx
fild dword [0xc17044]
push 0
push 0x64
push 0
fstp dword [esp + 0x14]
lea ecx, [esp + 0x24]
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0
push eax
push ecx
push eax
push 0
call fcn.007285b0
mov eax, dword [0xc97b24]
push 5
push 0xa
call dword [eax + 0x20]
mov ecx, dword [0xc97b24]
push 6
push 0xb
call dword [ecx + 0x20]
fild dword [esp + 0x3c]
add esp, 0x34
push 0x96
fstp dword [esp + 0x10]
lea edx, [esi - 1]
fild dword [0xc17044]
mov dword [esp + 0x14], edx
push 0
push 0
fstp dword [esp + 0x10]
push 0
fild dword [esp + 0x20]
lea ecx, [esp + 0x28]
fstp dword [esp + 0x20]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x10]
push eax
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0
push eax
push ecx
push eax
push 0
call fcn.007285b0
mov ecx, dword [0xc17048]
add esi, 4
lea eax, [esi - 3]
add esp, 0x24
cmp eax, ecx
mov dword [esp + 8], esi
jl 0x721780
fild dword [0xc17048]
mov ecx, dword [0xb7cb84]
and ecx, 0x7ff
test ecx, ecx
fadd dword [0x858ce0]
mov dword [esp + 0x18], ecx
fmul dword [0x863990]
fild dword [esp + 0x18]
jge 0x7218a9
fadd dword [0x858c54]
fmulp st(1)
call fcn.00821b40
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub dword [0x858ce0]
call fcn.00821b40
mov edx, dword [0xc97b24]
push 5
push 0xa
mov dword [esp + 0x18], eax
call dword [edx + 0x20]
mov eax, dword [0xc97b24]
push 6
push 0xb
call dword [eax + 0x20]
fild dword [esp + 0x20]
add esp, 0x10
push 0x3c
fst dword [esp + 0xc]
push 0
fadd dword [0x858ce0]
push 0x64
push 0
lea ecx, [esp + 0x28]
fstp dword [esp + 0x20]
fild dword [0xc17044]
fstp dword [esp + 0x14]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push eax
mov eax, dword [esp + 0x18]
push 0
push eax
push ecx
push eax
push 0
call fcn.007285b0
add esp, 0x24
mov al, byte [0xc7c70d]
test al, al
je 0x721bfc
fild dword [0xc17048]
sub esp, 8
fmul dword [0x859524]
fmul dword [0x858ce8]
fstp dword [esp + 4]
fild dword [0xc17044]
fmul dword [0x859520]
fmul dword [0x858ce8]
fstp dword [esp]
call fcn.00719380
push 0
push 0
call fcn.007195c0
push 1
call fcn.00719610
push 1
call fcn.007195b0
add esp, 0x18
push 0xc8
push 0x64
push 0x64
push 0x64
lea ecx, [esp + 0x28]
call fcn.007170c0
mov ecx, dword [eax]
push ecx
call fcn.00719430
push 1
call fcn.00719490
mov eax, dword [0xc17048]
add esp, 8
test eax, eax
jle 0x721abe
mov esi, 3
mov dword [esp + 8], esi
mov edx, dword [0xc97b24]
push 2
push 0xa
call dword [edx + 0x20]
mov eax, dword [0xc97b24]
push 2
push 0xb
call dword [eax + 0x20]
lea ecx, [esi - 2]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
add esp, 0x10
push 0x64
fstp dword [esp + 0x10]
lea edx, [esi - 3]
fild dword [0xc17044]
mov dword [esp + 0x14], edx
push 0x64
push 0x64
fstp dword [esp + 0x10]
push 0x64
fild dword [esp + 0x20]
lea ecx, [esp + 0x28]
fstp dword [esp + 0x20]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x10]
push eax
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0
push eax
push ecx
push eax
push 0
call fcn.007285b0
mov eax, dword [0xc97b24]
push 5
push 0xa
call dword [eax + 0x20]
mov ecx, dword [0xc97b24]
push 6
push 0xb
call dword [ecx + 0x20]
fild dword [esp + 0x3c]
add esp, 0x34
push 0x96
fstp dword [esp + 0x10]
lea edx, [esi - 1]
fild dword [0xc17044]
mov dword [esp + 0x14], edx
push 0
push 0
fstp dword [esp + 0x10]
push 0
fild dword [esp + 0x20]
lea ecx, [esp + 0x24]
fstp dword [esp + 0x20]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x10]
push eax
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0
push eax
push ecx
push eax
push 0
call fcn.007285b0
mov ecx, dword [0xc17048]
add esi, 4
lea eax, [esi - 3]
add esp, 0x24
cmp eax, ecx
mov dword [esp + 8], esi
jl 0x7219c5
fild dword [0xc17048]
mov ecx, dword [0xb7cb84]
and ecx, 0x7ff
test ecx, ecx
fadd dword [0x858ce0]
mov dword [esp + 0x18], ecx
fmul dword [0x863990]
fild dword [esp + 0x18]
jge 0x721aee
fadd dword [0x858c54]
fmulp st(1)
call fcn.00821b40
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub dword [0x858ce0]
call fcn.00821b40
mov edx, dword [0xc97b24]
push 5
push 0xa
mov dword [esp + 0x18], eax
call dword [edx + 0x20]
mov eax, dword [0xc97b24]
push 6
push 0xb
call dword [eax + 0x20]
fild dword [esp + 0x20]
add esp, 0x10
push 0x3c
fst dword [esp + 0xc]
push 0x64
fadd dword [0x858ce0]
push 0x64
push 0x64
lea ecx, [esp + 0x28]
fstp dword [esp + 0x20]
fild dword [0xc17044]
fstp dword [esp + 0x14]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push eax
mov eax, dword [esp + 0x18]
push 0
push eax
push ecx
push eax
push 0
call fcn.007285b0
add esp, 0x24
mov esi, 0xc8
push edi
lea ebx, [ebx]
call fcn.00821b1e
cdq
idiv dword [0xc17044]
mov edi, edx
mov dword [esp + 0x14], edi
call fcn.00821b1e
fild dword [esp + 0x14]
cdq
idiv dword [0xc17048]
fstp dword [esp + 0x20]
add edi, 0x14
mov dword [esp + 0x14], edi
push 0x40
push 0xff
push 0xff
push 0xff
lea ecx, [esp + 0x2c]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
add edx, 2
fstp dword [esp + 0x3c]
fild dword [esp + 0x24]
mov dword [esp + 0x24], edx
fstp dword [esp + 0x38]
fild dword [esp + 0x24]
fstp dword [esp + 0x34]
call fcn.007170c0
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.00727b60
add esp, 8
dec esi
jne 0x721b80
pop edi
mov al, byte [0xc7c714]
test al, al
je 0x721d1c
movzx edx, byte [0xb6f081]
mov ecx, dword [0xc7c710]
imul edx, edx, 0x238
mov dword [edx + 0xb6f24c], 0
movzx eax, byte [0xb6f081]
imul eax, eax, 0x238
inc ecx
cmp ecx, 0x14
mov dword [eax + 0xb6f25c], 0
mov dword [0xc7c710], ecx
jbe 0x721c5f
mov byte [0xc7c714], 0
mov dword [0xb7cb64], 0x3f800000
pop esi
add esp, 0x28
ret
cmp ecx, 0xa
mov dword [0xb7cb64], 0
jae 0x721d1c
imul ecx, ecx, 0xff
mov eax, 0xcccccccd
mul ecx
shr edx, 3
mov ecx, 0xff
sub ecx, edx
test ecx, ecx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jge 0x721c9b
fadd dword [0x858c54]
fmul dword [0x858f50]
call fcn.00821b40
mov edx, dword [0xc97b24]
push 2
push 0xa
mov esi, eax
call dword [edx + 0x20]
mov eax, dword [0xc97b24]
push 2
push 0xb
call dword [eax + 0x20]
fild dword [0xc17048]
add esp, 0x10
push esi
push esi
fstp dword [esp + 0x18]
fild dword [0xc17044]
push esi
push esi
lea ecx, [esp + 0x28]
fstp dword [esp + 0x14]
call fcn.007170c0
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push eax
push 0
push 0
push ecx
push 0
push 0
call fcn.007285b0
mov ecx, dword [0xc97b24]
push 5
push 0xa
call dword [ecx + 0x20]
mov edx, dword [0xc97b24]
push 6
push 0xb
call dword [edx + 0x20]
add esp, 0x34
pop esi
add esp, 0x28
ret