Function at 0x435fd0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
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 0x436006
jmp 0x43600b
jmp 0x436196
mov esi, ecx
add esi, edx
add esi, 0xffffffff
mov byte [ecx + edx - 1], 0
cmp eax, 0
jne 0x43602a
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], 0x30
jmp 0x436196
cmp edi, 0xa
sete cl
jmp 0x436032
test cl, 1
jne 0x43603c
jmp 0x4360e1
jmp 0x43603e
cmp eax, 0x64
setae cl
test cl, 1
jne 0x43604b
jmp 0x436085
mov edi, 0x64
mov ecx, eax
mov eax, ecx
xor edx, edx
div edi
shl edx, 1
mov al, byte [edx + 0x44c761]
mov edi, esi
add edi, 0xffffffff
mov byte [esi - 1], al
mov al, byte [edx + 0x44c760]
add edi, 0xffffffff
mov byte [esi - 2], al
mov esi, 0x64
mov eax, ecx
xor edx, edx
div esi
mov esi, edi
jmp 0x43603e
cmp eax, 0xa
setb cl
test cl, 1
jne 0x436092
jmp 0x4360a3
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x4360dc
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 2
mov edx, eax
and edx, 0xfffffffd
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
add eax, edx
mov dl, byte [eax + 0x44c761]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], dl
mov al, byte [eax + 0x44c760]
add ecx, 0xffffffff
mov byte [esi - 2], al
jmp 0x436196
cmp edi, 0x10
sete cl
test cl, 1
jne 0x4360f0
jmp 0x4360ee
jmp 0x43616c
jmp 0x4360f2
cmp eax, 0x100
setae cl
test cl, 1
jne 0x436101
jmp 0x43612e
mov edx, eax
and edx, 0xff
shl edx, 1
mov bl, byte [edx + 0x44c82a]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], bl
mov dl, byte [edx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add ecx, 0xffffffff
mov byte [esi - 2], dl
shr eax, 8
mov esi, ecx
jmp 0x4360f2
cmp eax, 0x10
setb cl
test cl, 1
jne 0x43613b
jmp 0x43614c
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x436196
shl eax, 1
mov dl, byte [eax + 0x44c82a]
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 0x436196
cmp eax, 0
jbe 0x436192
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 0x43616c
mov ecx, esi
jmp 0x436196
mov eax, ecx
add esp, 0xc
pop esi
pop edi
pop ebx
ret