Function at 0x438180
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov bx, word [ebp + 8]
call fcn.0041d2d0
sub esp, 8
push eax
test esi, esi
sets al
mov ecx, esi
sub ecx, 1
sete cl
or al, cl
mov ecx, esi
sub ecx, 0x25
setge cl
or al, cl
test al, 1
jne 0x4381b8
jmp 0x4381bd
jmp 0x43835c
mov ecx, ebx
movzx eax, bx
mov ebx, edi
mov edx, dword [ebp + 0x10]
add ebx, edx
add ebx, 0xffffffff
mov byte [edi + edx - 1], 0
cmp eax, 0
jne 0x4381e4
mov edi, ebx
add edi, 0xffffffff
mov byte [ebx - 1], 0x30
jmp 0x43835a
cmp esi, 0xa
jne 0x43827d
mov eax, ecx
jmp 0x4381f1
movzx ecx, ax
cmp ecx, 0x64
jb 0x438231
mov esi, 0x64
mov eax, ecx
xor edx, edx
div esi
shl edx, 1
mov al, byte [edx + 0x44c761]
mov esi, ebx
add esi, 0xffffffff
mov byte [ebx - 1], al
mov al, byte [edx + 0x44c760]
add esi, 0xffffffff
mov byte [ebx - 2], al
mov edi, 0x64
mov eax, ecx
xor edx, edx
div edi
mov ebx, esi
jmp 0x4381f1
cmp ecx, 0xa
setb al
test al, 1
jne 0x43823d
jmp 0x438254
lea eax, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
add eax, ecx
jmp 0x438247
mov al, byte [eax]
jmp 0x43824b
add ebx, 0xffffffff
jmp 0x438250
mov byte [ebx], al
jmp 0x438276
shl ecx, 1
mov dl, byte [ecx + 0x44c761]
mov eax, ebx
add eax, 0xffffffff
mov byte [ebx - 1], dl
mov cl, byte [ecx + 0x44c760]
add eax, 0xffffffff
mov byte [ebx - 2], cl
mov ebx, eax
jmp 0x438276
mov edi, ebx
jmp 0x43835a
cmp esi, 0x10
sete al
test al, 1
jne 0x43828e
jmp 0x438289
jmp 0x43832d
jmp 0x438290
movzx ecx, cx
mov esi, ecx
cmp ecx, 0x100
setge al
test al, 1
jne 0x4382a4
jmp 0x4382d3
mov ecx, esi
and ecx, 0xff
shl ecx, 1
mov dl, byte [ecx + 0x44c82a]
mov eax, ebx
add eax, 0xffffffff
mov byte [ebx - 1], dl
mov cl, byte [ecx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add eax, 0xffffffff
mov byte [ebx - 2], cl
shr esi, 8
mov ecx, esi
mov ebx, eax
jmp 0x438290
cmp esi, 0x10
setl al
test al, 1
jne 0x4382df
jmp 0x4382f0
mov al, byte [esi + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edi, ebx
add edi, 0xffffffff
mov byte [ebx - 1], al
jmp 0x43835a
mov edx, esi
mov ecx, edx
and ecx, 0xfffffffd
mov eax, edx
or eax, 0xfffffffd
xor eax, 0xffffffff
imul eax, ecx
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
add edx, eax
mov al, byte [edx + 0x44c82a]
mov edi, ebx
add edi, 0xffffffff
mov byte [ebx - 1], al
mov al, byte [edx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add edi, 0xffffffff
mov byte [ebx - 2], al
jmp 0x43835a
movzx ecx, cx
cmp ecx, 0
jbe 0x438356
mov eax, ecx
xor edx, edx
div esi
mov al, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edi, ebx
add edi, 0xffffffff
mov byte [ebx - 1], al
mov eax, ecx
xor edx, edx
div esi
mov ecx, eax
mov ebx, edi
jmp 0x43832d
mov edi, ebx
jmp 0x43835a
jmp 0x43835c
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret