Function at 0x6cad00
Capabilities:
Encode data using base64

Disassembly:
sub byte [esi - 0x50], al
push es
arpl word [ebx - 0x5ea4f8b9], dx
push edi
push eax
or al, 0xaa
cmpsd dword [esi], dword es:[edi]
in al, 0x3d
and cl, byte [edx]
daa
push edx
inc esi
popal
inc ebx
mov al, byte [0x6f223428]
add ebx, dword [edi + 0x3e897057]
mov ss, word [ebx + 0x3e7d9d06]
sub byte [ecx - 0xe], ah
sub byte [edi - 0x58], 0x3e
cmp al, dl
add esp, edi
sal dword [edi + edi], cl
outsd dx, dword ds:[esi]
push eax
add byte [eax + 0x38], 0x3f
push esi
aas
cmp al, 0x79
jns 0x652ef0
mov dh, 0x3f
call 0x5fa55ebd
push esp
push eax
mov al, byte [0xbc2128b8]
xchg edx, eax
xchg edi, eax
lodsb al, byte [esi]
xchg esi, eax
or byte [edx + 0x40], bl
mov bh, 0x40
mov bh, 0x95
cmp al, 0x90
xchg edi, eax
sub byte [edx + 0x40], bl
mov bh, 0xe4
and eax, 0x3de0e48f
inc eax
mov bh, 0x74
inc eax
cmp eax, 0x4074b740
mov esp, 0x7caf25e4
inc eax
test byte [eax - 0x7c], dl
push eax
sub al, byte [esi]
ja 0x652e2f
adc byte [ebx - 0x17afe8ab], 0x11
or byte [edi + 0x4a853510], bh
lcall 0x3505, 0x396f6d41
inc esi
aas
xlatb
pushal
out dx, eax
pushal
and al, cl
cmpsb byte [esi], byte es:[edi]
retf
leave
adc byte [edx + 0x296d5342], ch
mov byte [0xf1c40835], al
cmpsd dword [esi], dword es:[edi]
pop es
in eax, 0xa2
push es
jo 0x652f29
insb byte es:[edi], dx
inc dword [edx]
cdq
mov cl, byte [esi]
inc ebx
pop ds
xor byte [edx + 0xc], ch
xchg edx, eax
mov ecx, dword [esi + edi*8 - 0x66183934]
inc esp
push es
dec ecx
inc esp
pop es
loop 0x652f61
xchg edx, eax
pop es
jo 0x652f66
push es
cld
inc esp
in eax, dx
cmpsd dword [esi], dword es:[edi]
xor al, 0xfe
inc esp
pop ss
movsb byte es:[edi], byte [esi]
inc byte [edi + edx - 0x5c]
inc ebp
push es
push cs
sub dword [ebp + 0x79], eax
push ecx
adc eax, 0x4452fa7
mov edx, 0x9c95a28
add al, 0xba
dec ecx
push es
xchg edi, eax
sub ah, ah
xor al, ah
xlatb
sbb byte [edi - 0x14f84bbc], al
les ebp, [eax]
stc
and byte [edx + 0x37], ah
dec eax
inc esi
dec ebx
mov byte [0xcf5a9438], al
xlatb
jl 0x652efe
test eax, 0x646fec6
sal dword [ecx + 0x3c98446], 1
fadd qword cs:[bp + 0x17]
invalid
mov cl, 0x46
test cl, cl
add ebp, dword [esi]
fadd qword [bp + 0x17]
stosb byte es:[edi], al
int1
adc eax, 0xfe47683b
inc esi
dec edx
pop esi
pop esi
push ds
test byte [eax + 0x6c], cl
inc edi
mov al, byte [edi - 0x3a]
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x220000]
mov dword [edi + 0x252c20], 0xb08ea74
push edi
or ebp, 0xffffffff
jmp 0x6cad2a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x6cad31
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6cad20
mov eax, 1
add ebx, ebx
jne 0x6cad43
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x6cad54
jne 0x6cad73
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6cad73
dec eax
add ebx, ebx
jne 0x6cad60
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x6cad38
add ebx, ebx
jne 0x6cad6f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x6cadc5
xor ecx, ecx
sub eax, 3
jb 0x6cad8b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x6cadfa
sar eax, 1
mov ebp, eax
jmp 0x6cad96
add ebx, ebx
jne 0x6cad96
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6cad64
inc ecx
add ebx, ebx
jne 0x6cada4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6cad64
add ebx, ebx
jne 0x6cadb1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x6cada6
jne 0x6cadc2
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x6cada6
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x6cade4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x6cadd6
jmp 0x6cad26
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x6cade4
add edi, ecx
jmp 0x6cad26
pop esi
mov edi, esi
mov ecx, 0xaf01
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x6cae02
cmp byte [edi], 0x34
jne 0x6cae02
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x6cae07
lea edi, [esi + 0x2c6000]
mov eax, dword [edi]
or eax, eax
je 0x6cae76
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x2e611c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x2e6224]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x6cae34
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x2e622c]
or eax, eax
je 0x6cae70
mov dword [ebx], eax
add ebx, 4
jmp 0x6cae51
call dword [esi + 0x2e6228]
mov ebp, dword [esi + 0x2e6230]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x21f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x6caeaa
sub esp, 0xffffff80
jmp 0x652e9c