Function at 0x469b00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, eax
push edi
xor edi, edi
push esi
push ebx
sub esp, 0x24
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x10], edx
xor edx, edx
mov dword [esp + 0x18], esi
mov dword [esp], esi
jmp 0x469b5b
shl ecx, 2
shld ebx, eax, 2
add eax, ecx
adc edx, ebx
add edi, 1
movzx ecx, byte [ebp + edi + 9]
shld edx, eax, 1
add eax, eax
add eax, ecx
movzx ecx, byte [esp + 0x10]
adc edx, 0
mov ebx, eax
mov esi, edx
shrd ebx, esi, cl
shr esi, cl
test cl, 0x20
je 0x469b55
mov ebx, esi
xor esi, esi
mov ecx, ebx
or ecx, esi
jne 0x469bcb
mov ecx, eax
mov ebx, edx
cmp dword [esp], edi
jne 0x469b20
or ecx, edx
je 0x469d9c
movzx ecx, byte [esp + 0x10]
mov esi, edx
mov ebx, eax
shrd ebx, esi, cl
shr esi, cl
test cl, 0x20
je 0x469b83
mov ebx, esi
xor esi, esi
mov ecx, ebx
or ecx, esi
jne 0x469bcb
mov ecx, dword [esp + 0x10]
mov ebx, edi
nop
mov esi, eax
mov edi, edx
shld edi, esi, 2
shl esi, 2
add eax, esi
adc edx, edi
add ebx, 1
shld edx, eax, 1
add eax, eax
mov edi, edx
mov esi, eax
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
je 0x469bba
mov esi, edi
xor edi, edi
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
mov dword [esp], esi
or esi, edi
je 0x469b90
mov edi, ebx
mov esi, dword [ebp + 4]
lea ecx, [esi + 1]
sub ecx, edi
mov dword [ebp + 4], ecx
cmp ecx, 0xfffff801
jl 0x469d88
movzx ecx, byte [esp + 0x10]
mov esi, ecx
shr esi, 5
and esi, 1
mov ebx, esi
shl esi, cl
xor ebx, 1
shl ebx, cl
mov ecx, ebx
mov ebx, esi
add ecx, 0xffffffff
adc ebx, 0xffffffff
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x18]
cmp edi, ebx
jae 0x469db8
lea ecx, [ebx + ebp]
mov dword [esp + 8], edi
mov esi, ebp
sub ecx, edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ecx
lea esi, cs:[esi]
movzx ecx, byte [esp + 0x10]
mov edi, eax
mov ebp, edx
shrd edi, edx, cl
shr ebp, cl
test cl, 0x20
cmovne edi, ebp
and eax, dword [esp]
and edx, dword [esp + 4]
mov ecx, eax
mov ebx, edx
shl ecx, 2
shld ebx, eax, 2
add eax, ecx
adc edx, ebx
mov ebx, dword [esp + 8]
shld edx, eax, 1
add eax, eax
movzx ecx, byte [esi + ebx + 0xa]
mov ebx, edi
mov edi, dword [esp + 0x14]
mov byte [esi + 0xa], bl
add eax, ecx
adc edx, 0
add esi, 1
cmp esi, edi
jne 0x469c30
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov ecx, eax
mov ebp, dword [esp + 0x1c]
sub esi, edi
or ecx, edx
mov dword [esp + 0x18], esi
je 0x469e01
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
movzx ecx, byte [esp + 0x10]
mov esi, eax
mov edi, edx
shrd esi, edx, cl
shr edi, cl
test cl, 0x20
cmovne esi, edi
and eax, dword [esp]
and edx, dword [esp + 4]
mov ecx, eax
mov ebx, esi
shl ecx, 2
mov byte [esp + 8], bl
mov ebx, edx
shld ebx, eax, 2
add eax, ecx
adc edx, ebx
shld edx, eax, 1
add eax, eax
cmp ebp, 0x2ff
ja 0x469d08
lea ebx, [ebp + 1]
mov ecx, dword [esp + 0x14]
mov dword [esp + 8], ebx
mov ebx, esi
mov byte [ecx + ebp + 0xa], bl
mov ebx, eax
or ebx, edx
je 0x469dd8
mov ebp, dword [esp + 8]
jmp 0x469ca2
cmp byte [esp + 8], 0
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x14]
jne 0x469da8
test edx, edx
je 0x469e05
lea esi, cs:[esi]
movzx ecx, byte [esp + 0x10]
mov esi, eax
mov edi, edx
shrd esi, edx, cl
shr edi, cl
test cl, 0x20
cmovne esi, edi
and eax, dword [esp]
and edx, dword [esp + 4]
mov ecx, eax
mov ebx, edx
shl ecx, 2
shld ebx, eax, 2
add ecx, eax
adc ebx, edx
shld ebx, ecx, 1
add ecx, ecx
mov dword [esp + 0xc], ebx
mov edx, ebx
mov ebx, esi
mov eax, ecx
mov dword [esp + 8], ecx
test bl, bl
je 0x469d6e
mov byte [ebp + 9], 1
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ecx, esi
or ecx, edi
jne 0x469d28
mov ecx, dword [esp + 0x18]
jmp 0x469dde
xor eax, eax
mov dword [ebp], 0
mov dword [ebp + 4], 0
mov word [ebp + 8], ax
add esp, 0x24
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, eax
mov byte [ebp + 9], 1
or ecx, edx
jne 0x469d28
jmp 0x469d7c
mov ebx, eax
mov dword [esp + 0x18], 0
or ebx, edx
jne 0x469c9a
mov dword [ebp], 0
jmp 0x469d9c
mov ebp, ecx
mov ecx, dword [esp + 8]
mov dword [ebp], ecx
jmp 0x469def
mov dword [ebp], ecx
test ecx, ecx
je 0x469d9c
sub ecx, 1
cmp byte [ebp + ecx + 0xa], 0
je 0x469de8
add esp, 0x24
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, esi
jmp 0x469dde
test eax, eax
jne 0x469d28
jmp 0x469d7c