Function at 0x100a74a0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, dword [0x1017f528]
xor ecx, esp
mov dword [esp + 0x28], ecx
test eax, eax
mov esi, 6
cmovns esi, eax
mov ebx, dword [esp + 0x48]
mov ecx, ebx
and ecx, 0x7fffff
lea eax, [ecx + ecx]
cmp ebx, 0x7fffff
ja 0x100a74e8
test ecx, ecx
mov ebx, 0xffffff82
cmove ebx, ecx
jmp 0x100a74f3
shr ebx, 0x17
or eax, 0x1000000
add ebx, 0xffffff81
mov edi, ebx
neg edi
cmovs edi, ebx
mov dword [esp + 4], edx
mov ecx, edx
sub ecx, dword [esp + 0x40]
mov ebp, 0x84
sub ecx, esi
jl 0x100a7729
mov dword [esp], eax
xor edx, edx
cmp edi, 0x64
setb dl
xor edx, 3
cmp edi, 0xa
mov eax, 1
cmovae eax, edx
cmp esi, 1
sbb eax, 0
add eax, 4
cmp ecx, eax
jl 0x100a7729
shr ebx, 0x1f
add bl, bl
add bl, 0x2b
cmp esi, 5
ja 0x100a75b1
lea ecx, [esi*4]
mov ebp, dword [esp]
mov eax, ebp
add eax, ebp
lea edx, [ebp - 1]
add edx, ebp
or edx, ebp
and edx, eax
mov al, 0x18
sub al, cl
mov ecx, 1
shlx ecx, ecx, eax
and ecx, edx
add ecx, ebp
mov eax, ecx
shr eax, 0x18
add al, 0x30
mov edx, dword [esp + 0x40]
mov byte [edx], al
test esi, esi
je 0x100a7652
mov byte [edx + 1], 0x2e
mov eax, ecx
shr eax, 0x14
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [edx + 2], al
cmp esi, 1
jne 0x100a7655
add edx, 3
jmp 0x100a76bc
mov ecx, dword [esp]
mov eax, ecx
shr eax, 0x18
or al, 0x30
mov ebp, dword [esp + 0x40]
mov byte [ebp], al
mov byte [ebp + 1], 0x2e
mov eax, ecx
shr eax, 0x14
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [ebp + 2], al
mov eax, ecx
shr eax, 0x10
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [ebp + 3], al
mov eax, ecx
shr eax, 0xc
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [ebp + 4], al
mov eax, ecx
shr eax, 8
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [ebp + 5], al
mov eax, ecx
shr eax, 4
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [ebp + 6], al
and ecx, 0xf
movzx eax, byte [ecx + str.0123456789abcdefghijklmnopqrstuvwxyz]
lea edx, [ebp + 8]
mov byte [ebp + 7], al
mov eax, esi
add eax, 0xfffffffa
je 0x100a76bc
add ebp, 7
push eax
push 0x30
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea edx, [esi + ebp]
add edx, 0xfffffffb
jmp 0x100a76bc
inc edx
jmp 0x100a76bc
mov eax, ecx
shr eax, 0x10
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [edx + 3], al
cmp esi, 2
jne 0x100a7671
add edx, 4
jmp 0x100a76bc
mov eax, ecx
shr eax, 0xc
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [edx + 4], al
cmp esi, 3
jne 0x100a768d
add edx, 5
jmp 0x100a76bc
mov eax, ecx
shr eax, 8
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [edx + 5], al
cmp esi, 4
jne 0x100a76a9
add edx, 6
jmp 0x100a76bc
shr ecx, 4
and ecx, 0xf
movzx eax, byte [ecx + str.0123456789abcdefghijklmnopqrstuvwxyz]
mov byte [edx + 6], al
add edx, 7
mov byte [edx], 0x70
mov ebp, edx
mov byte [edx + 1], bl
xor esi, esi
mov eax, 0xcccccccd
nop dword [eax + eax]
mov edx, edi
mulx ecx, ecx, eax
shr ecx, 3
lea edx, [ecx + ecx]
lea edx, [edx + edx*4]
mov ebx, edi
sub ebx, edx
or bl, 0x30
mov byte [esp + esi + 0x27], bl
dec esi
cmp edi, 9
mov edi, ecx
ja 0x100a76d0
lea eax, [ebp + 2]
mov ecx, esi
neg ecx
mov edx, dword [esp + 0x44]
sub edx, eax
cmp edx, ecx
jge 0x100a770b
mov ebp, 0x84
jmp 0x100a7729
mov edi, ebp
lea edx, [esp + esi]
add edx, 0x28
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
sub edi, esi
add edi, 2
xor ebp, ebp
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.100d7fe0
mov eax, dword [esp + 4]
mov edx, ebp
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret