Function at 0x42d430
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov bx, word [esp + 0x14]
call fcn.00415f20
test ebp, ebp
sets al
mov ecx, ebp
sub ecx, 1
sete cl
or al, cl
mov ecx, ebp
sub ecx, 0x25
setge cl
or al, cl
test al, 1
jne 0x42d469
jmp 0x42d46e
jmp 0x42d61a
mov eax, ebx
movzx ecx, ax
mov ebx, edi
add ebx, esi
add ebx, 0xffffffff
mov byte [edi + esi - 1], 0
cmp ecx, 0
sete cl
test cl, 1
jne 0x42d48c
jmp 0x42d499
add ebx, 0xffffffff
mov byte [ebx], 0x30
jmp 0x42d494
jmp 0x42d616
cmp ebp, 0xa
sete cl
test cl, 1
jne 0x42d4a9
jmp 0x42d536
jmp 0x42d4ab
movzx ecx, ax
cmp ecx, 0x64
setae al
test al, 1
jne 0x42d4ba
jmp 0x42d4f2
mov esi, 0x64
mov eax, ecx
xor edx, edx
div esi
shl edx, 1
mov al, byte [edx + 0x442319]
mov esi, ebx
add esi, 0xffffffff
mov byte [ebx - 1], al
mov al, byte [edx + 0x442318]
add esi, 0xffffffff
mov byte [ebx - 2], al
mov edi, 0x64
mov eax, ecx
xor edx, edx
div edi
mov ebx, esi
jmp 0x42d4ab
cmp ecx, 0xa
jae 0x42d50f
lea eax, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
add eax, ecx
jmp 0x42d501
mov cl, byte [eax]
jmp 0x42d505
mov eax, ebx
add eax, 0xffffffff
mov byte [ebx - 1], cl
jmp 0x42d52f
shl ecx, 1
mov dl, byte [ecx + 0x442319]
mov eax, ebx
add eax, 0xffffffff
mov byte [ebx - 1], dl
mov cl, byte [ecx + 0x442318]
add eax, 0xffffffff
mov byte [ebx - 2], cl
jmp 0x42d52f
mov ebx, eax
jmp 0x42d616
cmp ebp, 0x10
sete cl
test cl, 1
jne 0x42d548
jmp 0x42d543
jmp 0x42d5e6
jmp 0x42d54a
movzx eax, ax
cmp eax, 0x100
setge cl
test cl, 1
jne 0x42d55c
jmp 0x42d5a4
mov esi, eax
and esi, 0xff
mov ecx, esi
and ecx, 0xfffffffd
mov edx, esi
or edx, 0xfffffffd
xor edx, 0xffffffff
imul edx, ecx
mov ecx, esi
and ecx, 2
or esi, 2
imul esi, ecx
add esi, edx
mov dl, byte [esi + 0x4423e2]
mov ecx, ebx
add ecx, 0xffffffff
mov byte [ebx - 1], dl
mov dl, byte [esi + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add ecx, 0xffffffff
mov byte [ebx - 2], dl
shr eax, 8
mov ebx, ecx
jmp 0x42d54a
cmp eax, 0x10
setl cl
test cl, 1
jne 0x42d5b1
jmp 0x42d5c4
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, ebx
add ecx, 0xffffffff
mov byte [ebx - 1], al
mov ebx, ecx
jmp 0x42d616
shl eax, 1
mov cl, byte [eax + 0x4423e2]
mov edx, ebx
add edx, 0xffffffff
mov byte [ebx - 1], cl
mov cl, byte [eax + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add edx, 0xffffffff
mov byte [ebx - 2], cl
mov ebx, edx
jmp 0x42d616
movzx ecx, ax
cmp ecx, 0
seta al
test al, 1
jne 0x42d5f5
jmp 0x42d614
mov eax, ecx
xor edx, edx
div ebp
mov al, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov esi, ebx
add esi, 0xffffffff
mov byte [ebx - 1], al
mov eax, ecx
xor edx, edx
div ebp
mov ebx, esi
jmp 0x42d5e6
jmp 0x42d616
mov edi, ebx
jmp 0x42d61a
mov eax, edi
pop esi
pop edi
pop ebx
pop ebp
ret