Function at 0x100093c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x14
xor ecx, ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x28]
xor eax, eax
mov al, byte [edi]
shl eax, 1
je 0x100093d6
inc edi
mov byte [esp + ecx + 0x10], al
inc ecx
cmp ecx, 8
jl 0x100093cd
lea eax, [esp + 0x10]
push eax
call fcn.10009640
add esp, 4
test eax, eax
je 0x100093fb
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov ebx, dword [esp + 0x2c]
mov esi, 0x10053558
cmp byte [ebx], 0x23
je 0x1000941c
mov ebp, 0x19
mov ecx, 2
mov dword [esp + 0x28], ebp
jmp 0x100094b9
cmp byte [edi], 0
je 0x10009472
push 1
lea ecx, [esp + 0x14]
push 0
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.10009750
add esp, 0x10
test eax, eax
jne 0x10009515
xor ecx, ecx
mov cl, byte [edi]
shl ecx, 1
je 0x10009448
inc edi
mov dl, byte [esp + eax + 0x10]
xor dl, cl
mov byte [esp + eax + 0x10], dl
inc eax
cmp eax, 8
jl 0x1000943f
lea eax, [esp + 0x10]
push eax
call fcn.10009640
add esp, 4
test eax, eax
jne 0x10009515
cmp byte [edi], 0
jne 0x10009421
mov cl, byte [ebx]
inc ebx
mov byte [0x10053558], cl
xor ebp, ebp
mov ecx, 3
xor eax, eax
mov al, byte [ecx + ebx]
test eax, eax
jne 0x10009490
mov eax, 0x2e
xor edx, edx
mov byte [ecx + 0x10053559], al
mov dl, byte [eax + 0x10055210]
mov eax, edx
shl ebp, 6
or ebp, eax
dec ecx
jns 0x10009482
mov dword [esp + 0x28], ebp
add ebx, 4
mov esi, 0x1005355d
mov ecx, 4
lea eax, [ecx - 1]
xor edi, edi
test eax, eax
mov dword [esp + 0x2c], ecx
jl 0x100094fb
mov ebp, ebx
lea ecx, [esi + eax]
sub ebp, esi
lea edx, [eax + 1]
xor eax, eax
mov al, byte [ecx + ebp]
test eax, eax
jne 0x100094de
mov eax, 0x2e
xor ebx, ebx
mov byte [ecx], al
mov bl, byte [eax + 0x10055210]
mov eax, ebx
shl edi, 6
or edi, eax
dec ecx
dec edx
jne 0x100094d0
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
add esi, ecx
push ebp
lea ecx, [esp + 0x1c]
push edi
push ecx
push 0x10053550
call fcn.10009750
add esp, 0x10
test eax, eax
je 0x1000951f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov edx, dword [esp + 0x19]
mov ecx, dword [esp + 0x1a]
xor eax, eax
and edx, 0xff
mov ah, byte [esp + 0x18]
and ecx, 0xff
or eax, edx
add esi, 4
shl eax, 8
or eax, ecx
add esi, 4
mov edx, eax
pop edi
and edx, 0x3f
sar eax, 6
mov cl, byte [edx + 0x10047658]
mov edx, eax
and edx, 0x3f
mov byte [esi - 5], cl
sar eax, 6
mov cl, byte [edx + 0x10047658]
mov edx, eax
and edx, 0x3f
mov byte [esi - 6], cl
sar eax, 6
mov cl, byte [edx + 0x10047658]
mov byte [esi - 7], cl
mov dl, byte [eax + 0x10047658]
mov byte [esi - 8], dl
mov eax, dword [esp + 0x17]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x19]
and eax, 0xff
and ecx, 0xff
shl eax, 8
or eax, ecx
and edx, 0xff
shl eax, 8
or eax, edx
mov ecx, eax
and ecx, 0x3f
sar eax, 6
mov dl, byte [ecx + 0x10047658]
mov ecx, eax
and ecx, 0x3f
mov byte [esi - 1], dl
sar eax, 6
mov dl, byte [ecx + 0x10047658]
mov ecx, eax
and ecx, 0x3f
mov byte [esi - 2], dl
sar eax, 6
mov dl, byte [ecx + 0x10047658]
mov byte [esi - 3], dl
mov al, byte [eax + 0x10047658]
mov byte [esi - 4], al
mov eax, dword [esp + 0x1a]
mov ecx, dword [esp + 0x1b]
and eax, 0xff
shl eax, 8
and ecx, 0xff
or eax, ecx
shl eax, 2
mov edx, eax
and edx, 0x3f
sar eax, 6
mov cl, byte [edx + 0x10047658]
mov edx, eax
and edx, 0x3f
mov byte [esi + 2], cl
sar eax, 6
mov cl, byte [edx + 0x10047658]
mov byte [esi + 1], cl
mov dl, byte [eax + 0x10047658]
mov byte [esi], dl
mov byte [esi + 3], 0
pop esi
pop ebp
mov eax, 0x10053558
pop ebx
add esp, 0x14
ret