Function at 0x433640
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
call fcn.0041a2a0
test ebx, ebx
sets al
mov ecx, ebx
sub ecx, 1
sete cl
or al, cl
mov ecx, ebx
sub ecx, 0x25
setge cl
or al, cl
test al, 1
jne 0x433678
jmp 0x43367d
jmp 0x433807
mov ecx, edi
add ecx, ebp
add ecx, 0xffffffff
mov byte [edi + ebp - 1], 0
cmp esi, 0
sete al
test al, 1
jne 0x433695
jmp 0x4336a3
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], 0x30
jmp 0x433807
cmp ebx, 0xa
jne 0x433736
jmp 0x4336ae
cmp esi, 0x64
setae al
test al, 1
jne 0x4336ba
jmp 0x4336f4
mov edi, 0x64
mov eax, esi
xor edx, edx
div edi
shl edx, 1
mov al, byte [edx + 0x446761]
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], al
mov al, byte [edx + 0x446760]
add edi, 0xffffffff
mov byte [ecx - 2], al
mov ecx, 0x64
mov eax, esi
xor edx, edx
div ecx
mov esi, eax
mov ecx, edi
jmp 0x4336ae
cmp esi, 0xa
setb al
test al, 1
jne 0x433700
jmp 0x433711
mov al, byte [esi + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], al
jmp 0x433731
shl esi, 1
mov al, byte [esi + 0x446761]
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], al
mov al, byte [esi + 0x446760]
add edi, 0xffffffff
mov byte [ecx - 2], al
jmp 0x433731
jmp 0x433807
cmp ebx, 0x10
sete al
test al, 1
jne 0x433747
jmp 0x433742
jmp 0x4337dd
jmp 0x433749
cmp esi, 0x100
setae al
test al, 1
jne 0x433758
jmp 0x433785
mov edx, esi
and edx, 0xff
shl edx, 1
mov bl, byte [edx + 0x44682a]
mov eax, ecx
add eax, 0xffffffff
mov byte [ecx - 1], bl
mov dl, byte [edx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add eax, 0xffffffff
mov byte [ecx - 2], dl
shr esi, 8
mov ecx, eax
jmp 0x433749
cmp esi, 0x10
setb al
test al, 1
jne 0x433791
jmp 0x4337a2
mov al, byte [esi + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], al
jmp 0x433807
mov eax, esi
and eax, 0xfffffffd
mov edx, esi
or edx, 0xfffffffd
xor edx, 0xffffffff
imul edx, eax
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
add esi, edx
mov al, byte [esi + 0x44682a]
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], al
mov al, byte [esi + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add edi, 0xffffffff
mov byte [ecx - 2], al
jmp 0x433807
cmp esi, 0
jbe 0x433803
mov eax, esi
xor edx, edx
div ebx
mov al, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edi, ecx
add edi, 0xffffffff
mov byte [ecx - 1], al
mov eax, esi
xor edx, edx
div ebx
mov esi, eax
mov ecx, edi
jmp 0x4337dd
mov edi, ecx
jmp 0x433807
mov eax, edi
pop esi
pop edi
pop ebx
pop ebp
ret