Function at 0x6e8c3540
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, ecx
push ebx
lea ecx, [edx*8 + 5]
sub esp, 0x4c
mov dword [ebp - 0x28], eax
mov eax, ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x24], edx
sar ecx, 0x1f
mov edx, 0x2aaaaaab
mov dword [ebp - 0x2c], 0
imul edx
sub edx, ecx
test dl, 3
mov edi, edx
je 0x6e8c3591
mov eax, edx
sar eax, 0x1f
shr eax, 0x1e
lea ecx, [edx + eax]
and ecx, 3
sub eax, ecx
lea edi, [eax + 4]
mov dword [ebp - 0x2c], edi
lea edi, [edx + eax + 4]
test byte [0x6e926018], 8
jne 0x6e8c3780
xor edx, edx
mov eax, edi
test edi, 0x3f
setne dl
shr eax, 6
add edx, eax
cmp word [esi], 0
je 0x6e8c3840
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x6e8c35c0
sub eax, esi
sar eax, 1
imul eax, edx
lea eax, [edi + eax + 1]
mov edi, dword [ebp + 0xc]
cmp dword [edi], eax
jb 0x6e8c3828
mov edi, dword [ebp + 0xc]
mov edx, 0x55555556
mov dword [edi], eax
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x24]
imul edx
mov eax, edi
sar eax, 0x1f
sub edx, eax
cmp edi, 2
mov dword [ebp - 0x30], edx
jle 0x6e8c3847
mov eax, dword [ebp - 0x30]
xor edi, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
jmp 0x6e8c361b
mov ebx, dword [ebp - 0x1c]
movzx edx, byte [eax]
add edi, 4
add eax, 3
shr dl, 2
movzx edx, dl
movsx dx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [ebx], dx
movzx ecx, byte [eax - 3]
movzx edx, byte [eax - 2]
shl ecx, 4
shr dl, 4
and ecx, 0x30
movzx edx, dl
or edx, ecx
movsx dx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [ebx + 2], dx
movzx ecx, byte [eax - 2]
movzx edx, byte [eax - 1]
shl ecx, 2
shr dl, 6
and ecx, 0x3c
movzx edx, dl
or edx, ecx
movsx dx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
lea ecx, [ebx + 8]
mov dword [ebp - 0x1c], ecx
mov word [ebx + 4], dx
movzx edx, byte [eax - 1]
and edx, 0x3f
movsx dx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
dec dword [ebp - 0x20]
mov word [ebx + 6], dx
je 0x6e8c36e8
mov edx, edi
and edx, 0x3f
jne 0x6e8c3618
lea esi, [esi]
lea edi, [edi]
movzx ecx, word [esi + edx]
mov word [ebx + edx + 8], cx
add edx, 2
test ecx, ecx
jne 0x6e8c36b0
cmp word [esi], 0
je 0x6e8c3618
mov edx, esi
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x6e8c36d0
sub edx, esi
add dword [ebp - 0x1c], edx
jmp 0x6e8c3618
mov eax, dword [ebp - 0x30]
mov edx, 3
mov edi, ecx
cmp dword [ebp - 0x24], 2
lea eax, [eax + eax*2]
cmovle eax, edx
add dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 1
je 0x6e8c37c0
cmp eax, 2
je 0x6e8c3740
xor eax, eax
lea esi, [esi]
lea edi, [edi]
movzx edx, word [esi + eax]
mov word [edi + eax], dx
add eax, 2
test edx, edx
jne 0x6e8c3720
add esp, 0x4c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x28]
add edi, 8
movzx eax, byte [ebx]
mov byte [ebp - 0x1c], al
shr al, 2
movzx eax, al
movsx ax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [edi - 8], ax
movzx eax, byte [ebx]
mov dword [edi - 4], 0x3d003d
shl eax, 4
and eax, 0x30
movsx ax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [edi - 6], ax
jmp 0x6e8c3710
mov dword [esp + 0x10], edx
mov eax, dword [ebp - 0x2c]
mov edx, str.encodeBase64W
mov dword [esp + 8], edx
mov ecx, 0x6e926018
mov dword [esp + 4], ecx
mov dword [esp], 3
mov dword [esp + 0x14], eax
mov eax, str.bytes_is__d__pad_bytes_is__d_n
mov dword [esp + 0xc], eax
call fcn.6e8c34b0
jmp 0x6e8c359e
mov ecx, dword [ebp - 0x28]
add edi, 8
movzx eax, byte [ecx]
shr al, 2
movzx eax, al
movsx ax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [edi - 8], ax
movzx ebx, byte [ecx + 1]
movzx eax, byte [ecx]
mov byte [ebp - 0x1c], bl
mov dl, bl
shl eax, 4
shr dl, 4
and eax, 0x30
movzx edx, dl
or eax, edx
movsx ax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [edi - 6], ax
movzx eax, byte [ecx + 1]
mov word [edi - 2], 0x3d
shl eax, 2
and eax, 0x3c
movsx ax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov word [edi - 4], ax
jmp 0x6e8c3710
mov dword [edi], eax
add esp, 0x4c
mov eax, 0x7a
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
jmp 0x6e8c35d0
mov edi, ebx
jmp 0x6e8c36ff