Function at 0x10091b30
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov edx, dword [ebp + 8]
lea eax, [edx + 0xe8]
mov dword [ebp - 0x10], eax
mov ecx, dword [edx + 0xe8]
mov esi, dword [edx + 0xec]
xor ebx, ebx
mov eax, 9
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ebx
movzx ebx, byte [edx + eax]
mov eax, esi
and eax, 0xc0
movzx edi, byte [ebx + eax*2 + 0x102db2d8]
sub esi, edi
mov dword [ebp - 0x20], esi
mov edx, esi
shl edx, 0x11
xor eax, eax
cmp edx, ecx
setl al
neg eax
and edx, eax
sub edi, esi
and edi, eax
xor eax, ebx
mov dword [ebp - 0x14], eax
mov bl, byte [eax + 0x102db558]
mov eax, ecx
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x1c]
mov byte [ecx + esi], bl
sub eax, edx
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0x20]
mov cl, byte [edi + esi + str._t_b_a_a]
add esi, edi
shl esi, cl
mov edi, eax
shl edi, cl
mov dword [edx + 0xec], esi
mov dword [edx + 0xe8], edi
test di, di
je 0x10091bcf
mov ecx, edi
mov ebx, dword [ebp - 0x18]
jmp 0x10091c24
mov edx, dword [edx + 0xf4]
movzx ecx, byte [edx]
shl ecx, 9
movzx ebx, byte [edx + 1]
lea eax, [ecx + ebx*2]
add eax, 0xffff0001
mov ecx, edi
neg ecx
and ecx, edi
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl eax, cl
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, edi
mov dword [eax + 0xe8], ecx
cmp edx, dword [eax + 0xf8]
jae 0x10091c1f
add edx, 2
mov dword [eax + 0xf4], edx
mov ebx, dword [ebp - 0x18]
mov edx, eax
mov eax, dword [ebp - 0x14]
xor edi, edi
test al, 1
je 0x10091e7d
inc ebx
mov eax, 0xa
cmp ebx, 5
jne 0x10091b58
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebx + 4]
mov eax, dword [ebx]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091c75
mov esi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [ebx + 0x10]
jge 0x10091c75
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov ebx, 5
test edx, edx
je 0x10091e7d
mov edi, dword [ebp - 0x10]
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091cb9
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10091cb9
add dword [edi + 0xc], 2
mov dword [edi], eax
test edx, edx
je 0x10091dfc
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091cf5
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10091cf5
add dword [edi + 0xc], 2
mov dword [edi], eax
test edx, edx
je 0x10091e03
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091d31
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10091d31
add dword [edi + 0xc], 2
mov dword [edi], eax
test edx, edx
je 0x10091e0f
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091d6d
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10091d6d
add dword [edi + 0xc], 2
mov dword [edi], eax
test edx, edx
je 0x10091e1b
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091da9
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10091da9
add dword [edi + 0xc], 2
mov dword [edi], eax
test edx, edx
je 0x10091e27
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091de1
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10091de1
add dword [edi + 0xc], 2
mov dword [edi], eax
mov eax, 0xbebbb1b7
test edx, edx
jne 0x10091e81
mov ecx, 6
mov edi, 0x3f
jmp 0x10091e31
xor edi, edi
inc edi
mov ecx, edi
jmp 0x10091e31
mov ecx, 2
mov edi, 3
jmp 0x10091e31
mov ecx, 3
mov edi, 7
jmp 0x10091e31
mov ecx, 4
mov edi, 0xf
jmp 0x10091e31
mov ecx, 5
mov edi, 0x1f
dec ecx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebx + 4]
mov eax, dword [ebx]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10091e6a
mov esi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [ebx + 0x10]
jge 0x10091e6a
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov ecx, dword [ebp - 0x1c]
shl edx, cl
add edi, edx
add ecx, 0xffffffff
jb 0x10091e35
mov ebx, 5
add ebx, edi
mov eax, ebx
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret