Function at 0x1009ae30
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x18
push esi
push edi
mov edi, ecx
mov ecx, 0x101471de
call fcn.100e5245
mov esi, dword [edi]
movzx eax, byte [esi]
cmp byte [eax + 0x10115e10], 0
je 0x1009ae5e
nop
movzx eax, byte [esi + 1]
inc esi
cmp byte [eax + 0x10115e10], 0
jne 0x1009ae50
mov dword [edi], esi
mov ecx, esi
mov dl, byte [esi]
movzx eax, dl
mov dword [esp + 8], ecx
cmp byte [eax + 0x10115f10], 0
je 0x1009aff8
nop dword [eax + eax]
cmp dl, 0x26
jne case.0x1009aea0.36
movsx eax, byte [esi + 1]
add eax, 0xffffffdd
cmp eax, 0x4e
ja case.0x1009aea0.36
movzx eax, byte [eax + 0x1009b038]
jmp dword [eax*4 + 0x1009b020]
mov al, byte [esi + 2]
cmp al, 0x6d
jne 0x1009aece
cmp byte [esi + 3], 0x70
jne case.0x1009aea0.36
cmp byte [esi + 4], 0x3b
jne case.0x1009aea0.36
mov byte [ecx], 0x26
inc ecx
add esi, 5
jmp 0x1009afe2
cmp al, 0x70
jne case.0x1009aea0.36
cmp byte [esi + 3], 0x6f
jne case.0x1009aea0.36
cmp byte [esi + 4], 0x73
jne case.0x1009aea0.36
cmp byte [esi + 5], 0x3b
jne case.0x1009aea0.36
mov byte [ecx], 0x27
inc ecx
add esi, 6
jmp 0x1009afe2
cmp byte [esi + 2], 0x75
jne case.0x1009aea0.36
cmp byte [esi + 3], 0x6f
jne case.0x1009aea0.36
cmp byte [esi + 4], 0x74
jne case.0x1009aea0.36
cmp byte [esi + 5], 0x3b
jne case.0x1009aea0.36
mov byte [ecx], 0x22
inc ecx
add esi, 6
jmp 0x1009afe2
cmp byte [esi + 2], 0x74
jne case.0x1009aea0.36
cmp byte [esi + 3], 0x3b
jne case.0x1009aea0.36
mov byte [ecx], 0x3e
inc ecx
add esi, 4
jmp 0x1009afe2
cmp byte [esi + 2], 0x74
jne case.0x1009aea0.36
cmp byte [esi + 3], 0x3b
jne case.0x1009aea0.36
mov byte [ecx], 0x3c
inc ecx
add esi, 4
jmp 0x1009afe2
mov cl, byte [esi + 2]
xor edx, edx
cmp cl, 0x78
jne 0x1009afa0
movzx eax, byte [esi + 3]
add esi, 3
mov al, byte [eax + 0x10115610]
cmp al, 0xff
je 0x1009afc7
inc esi
movzx eax, al
shl edx, 4
add edx, eax
movzx eax, byte [esi]
mov al, byte [eax + 0x10115610]
cmp al, 0xff
jne 0x1009af88
jmp 0x1009afc7
movzx eax, cl
add esi, 2
mov al, byte [eax + 0x10115610]
cmp al, 0xff
je 0x1009afc7
movzx eax, al
lea ecx, [edx + edx*4]
inc esi
lea edx, [eax + ecx*2]
movzx eax, byte [esi]
mov al, byte [eax + 0x10115610]
cmp al, 0xff
jne 0x1009afb0
lea ecx, [esp + 8]
call fcn.1009aa70
cmp byte [esi], 0x3b
jne 0x1009b002
mov ecx, dword [esp + 8]
inc esi
jmp 0x1009afe6
mov al, byte [esi]
mov byte [ecx], al
inc ecx
inc esi
mov dword [esp + 8], ecx
mov dl, byte [esi]
movzx eax, dl
cmp byte [eax + 0x10115f10], 0
jne 0x1009ae80
mov dword [edi], esi
mov eax, ecx
pop edi
pop esi
add esp, 0x18
ret
push esi
push str.expected__
lea ecx, [esp + 0x14]
call fcn.10095c70
push 0x101409c4
lea eax, [esp + 0x10]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
insd dword es:[edi], dx
scasd eax, dword es:[edi]
or dword [eax], edx
cmpsd dword [esi], dword es:[edi]
scasb al, byte es:[edi]
or dword [eax], edx
xor al, 0xaf
or dword [eax], edx
push esp
scasd eax, dword es:[edi]
or dword [eax], edx
add byte [edi - 0x5023eff7], ch
or dword [eax], edx
add byte [0x5050505], al
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215041
add eax, 84214277
add eax, 84214533
add eax, -859044859
int3