Function at 0x41fea0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
test edi, edi
sets bl
mov esi, edi
sub esi, 1
sete bh
or bl, bh
mov esi, edi
sub esi, 0x25
setge bh
or bl, bh
test bl, 1
jne 0x41fed6
jmp 0x41fedb
jmp 0x42005c
mov esi, ecx
add esi, edx
add esi, 0xffffffff
mov byte [ecx + edx - 1], 0
cmp eax, 0
sete cl
test cl, 1
jne 0x41fef4
jmp 0x41ff02
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], 0x30
jmp 0x42005c
cmp edi, 0xa
sete cl
test cl, 1
jne 0x41ff12
jmp 0x41ffaf
jmp 0x41ff14
cmp eax, 0x64
jb 0x41ff6e
mov edi, 0x64
mov ecx, eax
mov eax, ecx
xor edx, edx
div edi
mov eax, edx
and eax, 0xfffffffd
mov edi, edx
or edi, 0xfffffffd
xor edi, 0xffffffff
imul edi, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
mov al, byte [edx + 0x4442bd]
mov edi, esi
add edi, 0xffffffff
mov byte [esi - 1], al
mov al, byte [edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
add edi, 0xffffffff
mov byte [esi - 2], al
mov esi, 0x64
mov eax, ecx
xor edx, edx
div esi
mov esi, edi
jmp 0x41ff14
cmp eax, 0xa
setb cl
test cl, 1
jne 0x41ff7b
jmp 0x41ff8c
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x41ffaa
shl eax, 1
mov dl, byte [eax + 0x4442bd]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], dl
mov al, byte [eax + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
add ecx, 0xffffffff
mov byte [esi - 2], al
jmp 0x42005c
cmp edi, 0x10
sete cl
test cl, 1
jne 0x41ffbe
jmp 0x41ffbc
jmp 0x420032
jmp 0x41ffc0
cmp eax, 0x100
setae cl
test cl, 1
jne 0x41ffcf
jmp 0x41fffc
mov ecx, eax
and ecx, 0xff
shl ecx, 1
mov dl, byte [ecx + 0x444386]
mov edi, esi
add edi, 0xffffffff
mov byte [esi - 1], dl
mov cl, byte [ecx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add edi, 0xffffffff
mov byte [esi - 2], cl
shr eax, 8
mov esi, edi
jmp 0x41ffc0
cmp eax, 0x10
jae 0x420012
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x42005c
shl eax, 1
mov dl, byte [eax + 0x444386]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], dl
mov al, byte [eax + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add ecx, 0xffffffff
mov byte [esi - 2], al
jmp 0x42005c
cmp eax, 0
jbe 0x420058
mov ecx, eax
mov eax, ecx
xor edx, edx
div edi
mov al, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ebx, esi
add ebx, 0xffffffff
mov byte [esi - 1], al
mov eax, ecx
xor edx, edx
div edi
mov esi, ebx
jmp 0x420032
mov ecx, esi
jmp 0x42005c
mov eax, ecx
add esp, 8
pop esi
pop edi
pop ebx
ret