Function at 0x450100
Capabilities:
Encode data using base64
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, eax
push 2
mov ebx, ebp
call fcn.00449130
mov edi, eax
add esp, 4
test edi, edi
je 0x450129
mov byte [edi], 0
mov al, byte [esp + 0x24]
test al, al
jne 0x4501bc
cmp ebp, 0x14
jge 0x45013f
mov ebx, 0x14
lea esi, [ebx + 2]
lea eax, [esi + 1]
push edi
call fcn.00449190
mov edx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x10], edx
je 0x45015c
mov byte [esi + edx], 0
mov ecx, esi
shr ecx, 2
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, dword [esp + 0x1c]
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp + 1]
mov eax, ecx
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
test ebx, ebx
mov dword [esp + 0x14], edx
jle 0x4501b2
nop
xor edx, edx
mov eax, ecx
mov esi, 0x14
div esi
mov esi, dword [esp + 0x10]
mov al, byte [ecx + esi]
mov dl, byte [edx + 0x4f8124]
xor al, dl
mov byte [ecx + esi], al
inc ecx
cmp ecx, ebx
jl 0x450190
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ebp, ebx
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
lea ebp, [ebp + ebp*2 + 0xd]
lea eax, [ebp + ebp + 2]
push edx
call fcn.00449190
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
mov dword [ecx], eax
je 0x4501e3
mov word [eax + ebp*2], 0
mov ebp, dword [ecx]
mov word [ebp], 0
add ebp, 2
mov word [ebp], 0
cmp byte [esi], 0
jne 0x450219
test edi, edi
je 0x45020f
mov eax, dword [0x51d3c8]
add edi, 0xfffffff8
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 8
ret
mov dl, byte [esp + 0x24]
test dl, dl
jne 0x45022a
mov word [ebp], 0x23
add ebp, 2
lea eax, [ebx + esi]
mov word [ebp], 0
movzx ebx, byte [esi]
mov dword [esp + 0x1c], eax
inc esi
mov cl, 8
jmp 0x450243
mov dl, byte [esp + 0x24]
cmp cl, 6
jge 0x450250
test cl, cl
jle 0x4502ab
cmp esi, eax
jne 0x4502ad
mov al, bl
and al, 0x3f
test dl, dl
je 0x450263
movzx eax, al
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
jmp 0x450289
test al, al
jne 0x45026b
mov al, 0x2b
jmp 0x450289
cmp al, 1
jne 0x450273
mov al, 0x2f
jmp 0x450289
cmp al, 0xc
jae 0x45027b
add al, 0x2e
jmp 0x450289
cmp al, 0x26
jae 0x450283
add al, 0x35
jmp 0x450289
cmp al, 0x40
jae 0x450289
add al, 0x3b
movzx ax, al
mov word [ebp], ax
mov eax, dword [esp + 0x1c]
add ebp, 2
shr ebx, 6
add cl, 0xfa
jns 0x450243
mov word [ebp], 0x3d
add ebp, 2
jmp 0x450243
cmp esi, eax
jae 0x4502d8
movzx edx, byte [esi]
shl edx, cl
add cl, 8
or ebx, edx
inc esi
cmp esi, eax
jae 0x4502d8
movzx edx, byte [esi]
shl edx, cl
add cl, 8
or ebx, edx
inc esi
cmp esi, eax
jae 0x4502d8
movzx edx, byte [esi]
shl edx, cl
or ebx, edx
inc esi
add cl, 8
test cl, cl
jg 0x45023f
test edi, edi
mov eax, dword [esp + 0x20]
mov word [ebp], 0
mov esi, dword [eax]
je 0x450303
mov ecx, dword [0x51d3c8]
add edi, 0xfffffff8
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret