Function at 0x5f2414
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [0x669f14]
cmp dword [eax], 0
je 0x5f26c0
xor eax, eax
push ebp
push 0x5f2648
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
jne 0x5f2455
mov eax, dword [0x669f14]
mov eax, dword [eax]
inc eax
mov dword [ebp - 0x18], eax
jmp 0x5f245b
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 4], 0
jne 0x5f2468
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x5f246e
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x28], eax
mov dl, 1
mov eax, dword [0x41ab08]
call fcn.00403c64
mov dword [ebp - 0x1c], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [ebp - 0xc]
mov edx, eax
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
call fcn.004d0a08
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
xor edx, edx
call fcn.004d0ab8
cmp dword [ebp - 0x18], 0
jbe 0x5f262c
mov eax, dword [ebp - 0xc]
shr eax, 0x18
mov edx, dword [0x66989c]
mov byte [edx + 0x10], al
mov eax, dword [ebp - 0xc]
shr eax, 0x10
mov edx, dword [0x66989c]
mov byte [edx + 0x11], al
mov eax, dword [ebp - 0xc]
shr eax, 8
mov edx, dword [0x66989c]
mov byte [edx + 0x12], al
mov eax, dword [ebp - 0xc]
and eax, 0xff
mov edx, dword [0x66989c]
mov byte [edx + 0x13], al
mov eax, dword [ebp - 0x14]
shr eax, 0x18
mov edx, dword [0x66989c]
mov byte [edx + 0x14], al
mov eax, dword [ebp - 0x14]
shr eax, 0x10
mov edx, dword [0x66989c]
mov byte [edx + 0x15], al
mov eax, dword [ebp - 0x14]
shr eax, 8
mov edx, dword [0x66989c]
mov byte [edx + 0x16], al
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov edx, dword [0x66989c]
mov byte [edx + 0x17], al
mov eax, dword [0x66989c]
add eax, 9
mov edx, 0x10
call fcn.005d5aa8
mov edx, dword [0x66989c]
mov byte [edx + 0x18], al
mov eax, dword [0x66989c]
mov edx, 0x19
call fcn.0064afcc
mov eax, 0xffff
call fcn.0064b010
mov eax, dword [0x66a180]
mov eax, dword [eax]
cmp byte [eax + 9], 0x41
jne 0x5f25d5
mov eax, dword [0x66a180]
mov eax, dword [eax]
cmp byte [eax + 0xa], 0x56
jne 0x5f25d5
mov dword [ebp - 0x24], 0xb
mov eax, dword [0x66a180]
mov eax, dword [eax]
mov edx, dword [ebp - 0x24]
mov al, byte [eax + edx]
mov byte [ebp - 0x1d], al
mov eax, dword [0x66a180]
mov eax, dword [eax]
mov edx, dword [ebp - 0x24]
lea edx, [eax + edx + 1]
xor ecx, ecx
mov cl, byte [ebp - 0x1d]
mov eax, dword [ebp - 0x1c]
call fcn.0042074c
xor eax, eax
mov al, byte [ebp - 0x1d]
add eax, 2
add dword [ebp - 0x24], eax
cmp byte [ebp - 0x1d], 0xff
jae 0x5f2599
sub dword [ebp - 0x18], 0x4000
add dword [ebp - 0x14], 0x4000
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
mov edx, dword [eax + 0x170]
inc edx
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
call fcn.004d0ab8
mov eax, dword [0x669f14]
mov eax, dword [eax]
inc eax
cmp eax, dword [ebp - 0x14]
jbe 0x5f262c
cmp dword [ebp - 0x18], 0
ja 0x5f24c8
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5f2688
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
xor edx, edx
call fcn.004d0ab8
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov eax, dword [eax + 0x208]
mov edx, 1
call fcn.0044e464
xor edx, edx
call fcn.0044e36c
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret