Function at 0x10008f60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
mov eax, dword [0x1008dd90]
xor eax, ebp
mov dword [ebp - 4], eax
lea ecx, [ebp + 8]
call fcn.10001424
mov dword [ebp - 0x134], eax
lea ecx, [ebp + 8]
call fcn.100015c9
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x118], eax
xor ecx, ecx
mov word [ebp - 0x11c], cx
jmp 0x10008fb8
mov dx, word [ebp - 0x11c]
add dx, 1
mov word [ebp - 0x11c], dx
movsx eax, word [ebp - 0x11c]
cmp eax, 0x100
jge 0x10008fde
movsx ecx, word [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
mov al, byte [ebp - 0x11c]
mov byte [edx + ecx], al
jmp 0x10008fa6
mov byte [ebp - 0x10], 0
mov byte [ebp - 0xf], 0
mov byte [ebp - 0x111], 0
mov byte [ebp - 0x112], 0
xor ecx, ecx
mov word [ebp - 0x120], cx
jmp 0x10009011
mov dx, word [ebp - 0x120]
add dx, 1
mov word [ebp - 0x120], dx
movsx eax, word [ebp - 0x120]
cmp eax, 0x100
jge 0x100090d2
movzx ecx, byte [ebp - 0x111]
mov edx, dword [ebp - 0x130]
movzx eax, byte [edx + ecx]
movsx ecx, word [ebp - 0x120]
mov edx, dword [ebp - 0x118]
movzx ecx, byte [edx + ecx]
add eax, ecx
movzx edx, byte [ebp - 0x112]
add eax, edx
and eax, 0x800000ff
jns 0x1000905e
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x112], al
movzx eax, byte [ebp - 0x112]
add eax, dword [ebp - 0x118]
mov dword [ebp - 0x12c], eax
movsx ecx, word [ebp - 0x120]
add ecx, dword [ebp - 0x118]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x128]
mov al, byte [edx]
mov byte [ebp - 0x121], al
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x12c]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x12c]
mov dl, byte [ebp - 0x121]
mov byte [ecx], dl
movzx eax, byte [ebp - 0x111]
add eax, 1
cdq
idiv dword [ebp - 0x134]
mov byte [ebp - 0x111], dl
jmp 0x10008fff
mov al, byte [ebp - 0x10]
mov byte [ebp - 0x136], al
mov cl, byte [ebp - 0xf]
mov byte [ebp - 0x135], cl
lea edx, [ebp - 0x110]
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x13c], 0
jmp 0x1000910b
mov eax, dword [ebp - 0x13c]
add eax, 1
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp + 0x28]
jge 0x10009223
movzx edx, byte [ebp - 0x136]
add edx, 1
and edx, 0x800000ff
jns 0x10009134
dec edx
or edx, 0xffffff00
inc edx
mov byte [ebp - 0x136], dl
movzx eax, byte [ebp - 0x136]
mov ecx, dword [ebp - 0x144]
movzx edx, byte [ecx + eax]
movzx eax, byte [ebp - 0x135]
add edx, eax
and edx, 0x800000ff
jns 0x10009164
dec edx
or edx, 0xffffff00
inc edx
mov byte [ebp - 0x135], dl
movzx ecx, byte [ebp - 0x135]
add ecx, dword [ebp - 0x144]
mov dword [ebp - 0x150], ecx
movzx edx, byte [ebp - 0x136]
add edx, dword [ebp - 0x144]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x14c]
mov cl, byte [eax]
mov byte [ebp - 0x145], cl
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x150]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x150]
mov al, byte [ebp - 0x145]
mov byte [edx], al
movzx ecx, byte [ebp - 0x136]
mov edx, dword [ebp - 0x144]
movzx eax, byte [edx + ecx]
movzx ecx, byte [ebp - 0x135]
mov edx, dword [ebp - 0x144]
movzx ecx, byte [edx + ecx]
add eax, ecx
and eax, 0x800000ff
jns 0x100091ee
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13d], al
movzx edx, byte [ebp - 0x13d]
mov eax, dword [ebp - 0x144]
movzx ecx, byte [eax + edx]
mov edx, dword [ebp + 0x24]
add edx, dword [ebp - 0x13c]
movzx eax, byte [edx]
xor eax, ecx
mov ecx, dword [ebp + 0x24]
add ecx, dword [ebp - 0x13c]
mov byte [ecx], al
jmp 0x100090fc
mov dl, byte [ebp - 0x136]
mov byte [ebp - 0x10], dl
mov al, byte [ebp - 0x135]
mov byte [ebp - 0xf], al
lea ecx, [ebp + 8]
call fcn.1000141a
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005097c
mov esp, ebp
pop ebp
ret