Function at 0x41d340
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push edi
push esi
push eax
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
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 0x41d374
jmp 0x41d379
jmp 0x41d4db
mov esi, ecx
add esi, edx
add esi, 0xffffffff
mov byte [ecx + edx - 1], 0
cmp eax, 0
jne 0x41d398
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], 0x30
jmp 0x41d4db
cmp edi, 0xa
jne 0x41d436
jmp 0x41d3a3
cmp eax, 0x64
jb 0x41d3fd
mov edi, 0x64
mov ecx, eax
mov eax, ecx
xor edx, edx
div edi
mov eax, edx
xor eax, 0xffffffff
and eax, 2
mov edi, edx
and edi, 0xfffffffd
imul edi, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
mov al, byte [edx + 0x43f2bd]
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 0x41d3a3
cmp eax, 0xa
jae 0x41d413
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x41d431
shl eax, 1
mov dl, byte [eax + 0x43f2bd]
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 0x41d4db
cmp edi, 0x10
je 0x41d43d
jmp 0x41d4a9
jmp 0x41d43f
cmp eax, 0x100
jb 0x41d473
mov ecx, eax
and ecx, 0xff
shl ecx, 1
mov dl, byte [ecx + 0x43f386]
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 0x41d43f
cmp eax, 0x10
jae 0x41d489
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x41d4db
shl eax, 1
mov dl, byte [eax + 0x43f386]
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 0x41d4db
cmp eax, 0
seta cl
test cl, 1
jne 0x41d4b6
jmp 0x41d4d7
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 0x41d4a9
mov ecx, esi
jmp 0x41d4db
mov eax, ecx
add esp, 4
pop esi
pop edi
pop ebx
ret