Function at 0x435ca0
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 ax, word [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 0x435cd7
jmp 0x435cdc
jmp 0x435e73
movzx ebx, ax
add ecx, edx
mov esi, ecx
add esi, 0xffffffff
jmp 0x435ce8
mov byte [esi], 0
jmp 0x435ced
jmp 0x435cef
cmp ebx, 0
sete cl
jmp 0x435cf7
jmp 0x435cf9
test cl, 1
jne 0x435d00
jmp 0x435d0e
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], 0x30
jmp 0x435e71
cmp edi, 0xa
jne 0x435db7
jmp 0x435d19
movzx ecx, ax
cmp ecx, 0x64
jb 0x435d79
mov edi, 0x64
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
lea eax, [0x448760]
add eax, edx
mov dl, byte [edx + 0x448761]
mov edi, esi
add edi, 0xffffffff
mov byte [esi - 1], dl
mov al, byte [eax]
add edi, 0xffffffff
mov byte [esi - 2], al
mov esi, 0x64
mov eax, ecx
xor edx, edx
div esi
jmp 0x435d75
mov esi, edi
jmp 0x435d19
cmp ecx, 0xa
jae 0x435d8f
mov al, byte [ecx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x435db2
shl ecx, 1
lea eax, [0x448760]
add eax, ecx
jmp 0x435d9b
mov dl, byte [eax + 1]
jmp 0x435da0
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], dl
mov al, byte [eax]
add ecx, 0xffffffff
mov byte [esi - 2], al
jmp 0x435db2
jmp 0x435e71
cmp edi, 0x10
sete cl
test cl, 1
jne 0x435dc6
jmp 0x435dc4
jmp 0x435e3d
jmp 0x435dc8
movzx eax, ax
cmp eax, 0x100
setge cl
test cl, 1
jne 0x435dda
jmp 0x435e07
mov edx, eax
and edx, 0xff
shl edx, 1
mov bl, byte [edx + 0x44882a]
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 0x435dc8
cmp eax, 0x10
jge 0x435e1d
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x435e71
shl eax, 1
mov dl, byte [eax + 0x44882a]
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 0x435e71
movzx ecx, ax
cmp ecx, 0
seta al
test al, 1
jne 0x435e4c
jmp 0x435e6d
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
jmp 0x435e69
mov esi, ebx
jmp 0x435e3d
mov ecx, esi
jmp 0x435e71
jmp 0x435e73
mov eax, ecx
add esp, 0xc
pop esi
pop edi
pop ebx
ret