Function at 0x4afa60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x10], ecx
cmp dword [ebp + 8], 0
js 0x4afeca
mov eax, dword [ebp - 0x2c]
movzx esi, word [eax + 2]
xor edx, edx
test esi, esi
sete dl
mov eax, 0x8a
mov ecx, 7
cmove ecx, eax
mov eax, 4
sub eax, edx
mov dword [ebp - 0x14], eax
xor edi, edi
dec edi
xor edx, edx
xor eax, eax
mov ebx, esi
mov esi, edx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], esi
movzx esi, word [edx + esi*4 + 6]
mov dword [ebp - 0x18], eax
lea edx, [eax + 1]
cmp edx, ecx
mov dword [ebp - 0x1c], esi
jge 0x4afac9
cmp ebx, esi
je 0x4afc4d
cmp edx, dword [ebp - 0x14]
jge 0x4afb77
mov edi, dword [ebp - 0x10]
mov ecx, dword [edi + 0x170c]
mov dword [ebp - 0x28], ebx
movzx eax, word [edi + ebx*4 + 0xace]
mov esi, 0x10
sub esi, eax
movzx ebx, word [edi + ebx*4 + 0xacc]
mov dword [ebp - 0x18], ebx
shl ebx, cl
or bx, word [edi + 0x1708]
mov word [edi + 0x1708], bx
cmp ecx, esi
jg 0x4afb26
add ecx, eax
mov edi, dword [ebp - 0x10]
mov dword [edi + 0x170c], ecx
dec edx
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x28]
je 0x4afc31
jmp 0x4afade
mov edi, dword [ebp - 0x10]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x14], ecx
mov esi, dword [edi + 0x14]
lea ecx, [esi + 1]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov byte [ecx + esi], bl
mov cl, byte [edi + 0x1709]
mov byte [ebp - 0x14], cl
mov esi, dword [edi + 8]
mov ebx, dword [edi + 0x14]
lea ecx, [ebx + 1]
mov dword [edi + 0x14], ecx
mov cl, byte [ebp - 0x14]
mov byte [esi + ebx], cl
mov ebx, dword [edi + 0x170c]
mov cl, 0x10
sub cl, bl
mov esi, dword [ebp - 0x18]
shr esi, cl
mov word [edi + 0x1708], si
lea ecx, [eax + ebx]
add ecx, 0xfffffff0
jmp 0x4afb11
test ebx, ebx
je 0x4afda5
cmp ebx, edi
je 0x4afd25
mov edi, dword [ebp - 0x10]
movzx eax, word [edi + ebx*4 + 0xace]
mov ecx, dword [edi + 0x170c]
mov esi, 0x10
sub esi, eax
movzx edx, word [edi + ebx*4 + 0xacc]
mov dword [ebp - 0x14], edx
shl edx, cl
or dx, word [edi + 0x1708]
mov word [edi + 0x1708], dx
cmp ecx, esi
jg 0x4afccd
add ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x170c], eax
movzx edx, word [ecx + 0xb0e]
mov esi, 0x10
mov edi, ecx
movzx eax, word [ecx + 0xb0c]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x14]
shl eax, cl
sub esi, edx
or ax, word [edi + 0x1708]
cmp ecx, esi
jg 0x4afc76
add ecx, edx
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [edi + 0x170c], ecx
add edx, 0xfffd
cmp ecx, 0xf
jge 0x4afd39
shl edx, cl
or eax, edx
mov word [edi + 0x1708], ax
add ecx, 2
mov dword [edi + 0x170c], ecx
xor edx, edx
test esi, esi
je 0x4afc68
xor ecx, ecx
cmp ebx, esi
sete cl
mov eax, 4
sub eax, ecx
mov dword [ebp - 0x14], eax
xor ecx, 7
mov edi, ebx
mov ebx, dword [ebp - 0x30]
lea esi, [ebx + 1]
mov eax, edx
cmp ebx, dword [ebp + 8]
mov edx, esi
mov esi, dword [ebp - 0x1c]
jne 0x4afaa5
jmp 0x4afeca
mov ecx, 0x8a
mov dword [ebp - 0x14], 3
jmp 0x4afc4b
mov edi, dword [ebp - 0x10]
mov word [edi + 0x1708], ax
mov ecx, dword [edi + 8]
mov dword [ebp - 0x14], ecx
mov esi, dword [edi + 0x14]
lea ecx, [esi + 1]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov byte [ecx + esi], al
mov al, byte [edi + 0x1709]
mov byte [ebp - 0x14], al
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0x14]
lea eax, [esi + 1]
mov dword [edi + 0x14], eax
mov al, byte [ebp - 0x14]
mov byte [ecx + esi], al
mov eax, dword [edi + 0x170c]
mov cl, 0x10
sub cl, al
add eax, edx
add eax, 0xfffffff0
mov edx, dword [ebp - 0x20]
shr edx, cl
mov ecx, eax
mov eax, edx
jmp 0x4afc02
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x20], ecx
mov edi, dword [esi + 0x14]
lea ecx, [edi + 1]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebp - 0x20]
mov byte [ecx + edi], dl
mov cl, byte [esi + 0x1709]
mov byte [ebp - 0x20], cl
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x14]
lea ecx, [edi + 1]
mov dword [esi + 0x14], ecx
mov cl, byte [ebp - 0x20]
mov byte [edx + edi], cl
mov edx, dword [esi + 0x170c]
mov cl, 0x10
sub cl, dl
mov edi, dword [ebp - 0x14]
shr edi, cl
mov word [esi + 0x1708], di
mov ecx, esi
add eax, edx
add eax, 0xfffffff0
mov dword [ebp - 0x14], eax
jmp 0x4afbca
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x170c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edx
jmp 0x4afbd3
mov esi, edx
movzx edx, si
shl esi, cl
or eax, esi
mov word [edi + 0x1708], ax
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0x14]
lea edi, [esi + 1]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x14], edi
mov byte [ecx + esi], al
mov eax, dword [ebp - 0x10]
mov al, byte [eax + 0x1709]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi + 0x14]
lea edi, [esi + 1]
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x14], edi
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x10]
mov byte [ecx + esi], al
mov esi, dword [ebp - 0x1c]
mov eax, dword [edi + 0x170c]
mov cl, 0x10
sub cl, al
shr edx, cl
mov ecx, eax
mov word [edi + 0x1708], dx
add ecx, 0xfffffff2
jmp 0x4afc2b
mov edi, dword [ebp - 0x10]
mov edx, dword [edi + 0x170c]
movzx eax, word [edi + 0x1708]
cmp dword [ebp - 0x18], 9
jg 0x4afe35
movzx ecx, word [edi + 0xb12]
mov dword [ebp - 0x14], ecx
movzx esi, word [edi + 0xb10]
mov dword [ebp - 0x20], esi
mov ecx, edx
shl esi, cl
or eax, esi
mov esi, dword [ebp - 0x14]
mov ecx, 0x10
sub ecx, esi
cmp edx, ecx
jg 0x4afe62
mov ecx, edx
add ecx, esi
mov esi, dword [ebp - 0x1c]
mov dword [edi + 0x170c], ecx
mov edx, dword [ebp - 0x18]
add edx, 0xfffe
cmp ecx, 0xe
jge 0x4afedb
shl edx, cl
or eax, edx
mov word [edi + 0x1708], ax
add ecx, 3
jmp 0x4afc2b
mov esi, dword [ebp - 0x1c]
mov dword [edi + 0x170c], ecx
mov edx, dword [ebp - 0x18]
add edx, 0xfff6
cmp ecx, 0xa
jl 0x4aff3d
jmp 0x4aff50
movzx ecx, word [edi + 0xb16]
mov dword [ebp - 0x14], ecx
movzx esi, word [edi + 0xb14]
mov dword [ebp - 0x20], esi
mov ecx, edx
shl esi, cl
or eax, esi
mov esi, dword [ebp - 0x14]
mov ecx, 0x10
sub ecx, esi
cmp edx, ecx
jle 0x4afed2
jmp 0x4affb2
mov word [edi + 0x1708], ax
mov ecx, dword [edi + 8]
mov dword [ebp - 0x24], ecx
mov edx, esi
mov esi, dword [edi + 0x14]
lea edi, [esi + 1]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x14], edi
mov ecx, dword [ebp - 0x24]
mov byte [ecx + esi], al
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx + 0x1709]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x10]
mov edi, dword [ecx + 0x14]
lea ecx, [edi + 1]
mov esi, dword [ebp - 0x10]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebp - 0x24]
mov byte [ecx + edi], al
mov edi, dword [ebp - 0x10]
mov eax, dword [edi + 0x170c]
mov cl, 0x10
sub cl, al
add eax, edx
add eax, 0xfffffff0
mov edx, dword [ebp - 0x20]
shr edx, cl
mov ecx, eax
mov eax, edx
jmp 0x4afde7
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edx
add ecx, esi
jmp 0x4afe15
movzx esi, dx
mov dword [ebp - 0x18], esi
shl edx, cl
or eax, edx
mov word [edi + 0x1708], ax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x14]
lea esi, [edx + 1]
mov dword [edi + 0x14], esi
mov byte [ecx + edx], al
mov al, byte [edi + 0x1709]
mov edx, dword [edi + 8]
mov esi, dword [edi + 0x14]
lea edi, [esi + 1]
mov ecx, ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x14], edi
mov ebx, ecx
mov edi, dword [ebp - 0x10]
mov byte [edx + esi], al
mov esi, dword [ebp - 0x1c]
mov edx, dword [edi + 0x170c]
mov cl, 0x10
sub cl, dl
mov eax, dword [ebp - 0x18]
shr eax, cl
mov ecx, edx
mov word [edi + 0x1708], ax
add ecx, 0xfffffff3
jmp 0x4afc2b
shl edx, cl
or eax, edx
mov word [edi + 0x1708], ax
add ecx, 7
jmp 0x4afc2b
movzx esi, dx
mov dword [ebp - 0x18], esi
shl edx, cl
or eax, edx
mov word [edi + 0x1708], ax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x14]
lea esi, [edx + 1]
mov dword [edi + 0x14], esi
mov byte [ecx + edx], al
mov al, byte [edi + 0x1709]
mov edx, dword [edi + 8]
mov esi, dword [edi + 0x14]
lea edi, [esi + 1]
mov ecx, ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x14], edi
mov ebx, ecx
mov edi, dword [ebp - 0x10]
mov byte [edx + esi], al
mov esi, dword [ebp - 0x1c]
mov edx, dword [edi + 0x170c]
mov cl, 0x10
sub cl, dl
mov eax, dword [ebp - 0x18]
shr eax, cl
mov ecx, edx
mov word [edi + 0x1708], ax
add ecx, 0xfffffff7
jmp 0x4afc2b
mov word [edi + 0x1708], ax
mov ecx, dword [edi + 8]
mov dword [ebp - 0x24], ecx
mov edx, esi
mov esi, dword [edi + 0x14]
lea edi, [esi + 1]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x14], edi
mov ecx, dword [ebp - 0x24]
mov byte [ecx + esi], al
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx + 0x1709]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x10]
mov edi, dword [ecx + 0x14]
lea ecx, [edi + 1]
mov esi, dword [ebp - 0x10]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebp - 0x24]
mov byte [ecx + edi], al
mov edi, dword [ebp - 0x10]
mov eax, dword [edi + 0x170c]
mov cl, 0x10
sub cl, al
add eax, edx
add eax, 0xfffffff0
mov edx, dword [ebp - 0x20]
shr edx, cl
mov ecx, eax
mov eax, edx
jmp 0x4afe15