Function at 0x64872e
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
pushal
mov esi, dword [0x7d2b70]
mov edi, dword [0x7d2b78]
mov ebp, dword [0x7d2ba8]
mov ebx, dword [0x7d2b4c]
test dword [0x7d2b5c], 0xffffffff
je 0x64876e
xor edx, edx
mov eax, dword [0x7d2b5c]
idiv dword [ebx - 4]
mov dword [0x7d2b5c], edx
lea edx, [ebx + edx*4]
mov esi, dword [edx]
add esi, dword [0x7d2b70]
mov ecx, dword [0x7d2b7c]
and ecx, 0xffff
mov edx, dword [0x7d2bac]
test edx, edx
je 0x648861
xchg ecx, edx
lodsb al, byte [esi]
cmp al, 0xff
jne 0x6487b8
lodsb al, byte [esi]
and eax, 0xff
sub ecx, eax
js 0x64879b
jne 0x64878a
lea edi, [edi + ecx*2]
neg ecx
sub edx, ecx
je 0x64897f
jns 0x64885f
neg edx
lea edi, [edi + edx*2]
jmp 0x64897f
cmp al, 0xfe
jne 0x64881b
lodsb al, byte [esi]
and eax, 0xff
lea esi, [eax + esi]
sub ecx, eax
jns 0x648811
lea esi, [ecx + esi]
neg ecx
mov eax, ecx
sub edx, eax
jns 0x6487d8
add eax, edx
xor edx, edx
push edx
mov ecx, eax
mov dx, word [edi]
mov eax, dword [0x7d2b94]
and edx, 0xf7de
mov al, byte [esi]
mov ax, word [ebp + eax*2]
shr edx, 1
and eax, 0xf7de
shr eax, 1
inc esi
add eax, edx
sub edi, 2
mov word [edi + 2], ax
dec ecx
jne 0x6487db
pop ecx
test ecx, ecx
je 0x64897f
jmp 0x648861
jne 0x64878a
mov ecx, edx
jmp 0x648861
and eax, 0xff
lea esi, [eax + esi]
sub ecx, eax
jns 0x648859
lea esi, [ecx + esi]
neg ecx
mov eax, ecx
sub edx, eax
jns 0x648836
add eax, edx
xor edx, edx
mov ecx, eax
mov eax, dword [0x7d2b94]
sub edi, 2
mov al, byte [esi]
inc esi
mov ax, word [ebp + eax*2]
mov word [edi + 2], ax
dec ecx
jne 0x648838
add ecx, edx
je 0x64897f
jmp 0x648861
jne 0x64878a
mov ecx, edx
lodsb al, byte [esi]
cmp al, 0xff
jne 0x648885
mov al, byte [esi]
inc esi
and eax, 0xff
neg eax
lea edi, [edi + eax*2]
add ecx, eax
jns 0x64887e
neg ecx
lea edi, [edi + ecx*2]
xor ecx, ecx
jne 0x648861
jmp 0x64897f
cmp al, 0xfe
jne 0x6488ce
lodsb al, byte [esi]
and eax, 0xff
sub ecx, eax
jns 0x648897
add eax, ecx
xor ecx, ecx
push ecx
mov ecx, eax
mov edx, dword [edi]
mov eax, dword [0x7d2b94]
and edx, 0xf7de
mov al, byte [esi]
mov ax, word [ebp + eax*2]
shr edx, 1
and eax, 0xf7de
shr eax, 1
inc esi
add eax, edx
sub edi, 2
mov word [edi + 2], ax
dec ecx
jne 0x64889a
pop ecx
test ecx, ecx
jne 0x648861
jmp 0x64897f
mov edx, dword [0x7d2b94]
shl edx, 1
and eax, 0xff
sub ecx, eax
jns 0x6488e3
add eax, ecx
xor ecx, ecx
push ecx
mov ecx, eax
add ebp, edx
cmp ecx, 8
jge 0x648906
mov al, byte [esi]
inc esi
and eax, 0xff
sub edi, 2
mov ax, word [ebp + eax*2]
dec ecx
mov word [edi + 2], ax
jne 0x6488ed
jmp 0x648974
sub edi, 2
test edi, 2
je 0x648926
mov al, byte [esi]
inc esi
and eax, 0xff
sub edi, 2
mov ax, word [ebp + eax*2]
dec ecx
mov word [edi + 4], ax
sub ecx, 2
mov al, byte [esi]
inc esi
and eax, 0xff
sub edi, 4
mov dx, word [ebp + eax*2]
mov al, byte [esi]
shl edx, 0x10
inc esi
mov dx, word [ebp + eax*2]
sub ecx, 2
mov dword [edi + 4], edx
jns 0x648929
add edi, 2
test ecx, 1
je 0x64896c
mov al, byte [esi]
inc esi
and eax, 0xff
sub edi, 2
mov ax, word [ebp + eax*2]
dec ecx
mov word [edi + 2], ax
mov edx, dword [0x7d2b94]
shl edx, 1
pop ecx
sub ebp, edx
test ecx, ecx
jne 0x648861
test dword [0x7d2b50], 0xffffffff
jns 0x6489ab
mov esi, dword [0x7d2b5c]
dec esi
jns 0x648998
mov esi, dword [ebx - 4]
dec esi
mov dword [0x7d2b5c], esi
lea esi, [ebx + esi*4]
mov esi, dword [esi]
add esi, dword [0x7d2b70]
jmp 0x6489ca
mov esi, dword [0x7d2b5c]
inc esi
cmp esi, dword [ebx - 4]
jne 0x6489b9
xor esi, esi
mov dword [0x7d2b5c], esi
lea esi, [ebx + esi*4]
mov esi, dword [esi]
add esi, dword [0x7d2b70]
add edi, dword [0x7d2b98]
sub dword [0x7d2b7c], 0x10000
jns 0x64876e
popal
ret