Function at 0x6e8c3b00
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, edx
push esi
push ebx
mov ebx, eax
sub esp, 0x5c
mov dword [ebp - 0x38], ecx
lea ecx, [edx*8 + 5]
mov edx, 0x2aaaaaab
mov dword [ebp - 0x44], 0
mov eax, ecx
mov esi, dword [ebp + 0xc]
imul edx
sar ecx, 0x1f
sub edx, ecx
test dl, 3
je 0x6e8c3b4a
mov eax, edx
sar eax, 0x1f
shr eax, 0x1e
lea ecx, [edx + eax]
and ecx, 3
sub eax, ecx
add eax, 4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x6e8c3e60
mov eax, edi
mov edx, 0x55555556
mov ecx, dword [esi]
imul edx
mov eax, edi
sar eax, 0x1f
sub edx, eax
mov eax, dword [ebp + 8]
add eax, ecx
cmp edi, 2
mov dword [ebp - 0x2c], eax
jle 0x6e8c3ed0
cmp dword [ebp + 8], eax
jae 0x6e8c3ed0
mov dword [ebp - 0x34], edx
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [ebp - 0x30], 0
mov edx, dword [ebp + 8]
mov dword [ebp - 0x40], eax
lea esi, [esi]
lea edi, [edi]
movzx ecx, byte [ebx]
lea edi, [edx + 4]
mov al, cl
shr al, 2
shl ecx, 4
movzx eax, al
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov esi, ecx
and esi, 0x30
mov byte [ebp - 0x1c], al
movzx eax, byte [ebx + 1]
mov cl, al
shr cl, 4
shl eax, 2
movzx ecx, cl
or ecx, esi
and eax, 0x3c
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov esi, eax
mov byte [ebp - 0x1b], cl
movzx ecx, byte [ebx + 2]
mov al, cl
and cl, 0x3f
shr al, 6
movzx ecx, cl
movzx eax, al
or eax, esi
mov esi, dword [ebp - 0x2c]
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
cmp esi, edi
mov byte [ebp - 0x1a], al
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x19], al
jae 0x6e8c3cd0
mov ecx, dword [ebp - 0x2c]
lea esi, [ebp - 0x1c]
mov edi, edx
sub ecx, edx
cmp ecx, 8
jae 0x6e8c3d60
rep movsb byte es:[edi], byte [esi]
add ebx, 3
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
cmp eax, 1
je 0x6e8c3dd0
cmp eax, 2
jne 0x6e8c3c8f
mov word [ebp - 0x1a], 0x3d3d
movzx eax, byte [ebx]
mov dl, al
shr dl, 2
shl eax, 4
movzx edx, dl
and eax, 0x30
movzx ebx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x1c], bl
mov byte [ebp - 0x1b], al
mov ebx, dword [ebp - 0x2c]
lea eax, [edi + 4]
mov ecx, 4
cmp ebx, eax
jae 0x6e8c3c7f
mov ecx, ebx
mov eax, ebx
sub ecx, edi
lea esi, [ebp - 0x1c]
cmp ecx, 8
jae 0x6e8c3e20
rep movsb byte es:[edi], byte [esi]
mov edi, eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
mov eax, dword [ebp - 0x40]
call eax
mov ebx, dword [ebp - 0x2c]
mov ecx, eax
lea eax, [edi + eax]
cmp ebx, eax
jae 0x6e8c3cac
mov ecx, ebx
mov eax, ebx
sub ecx, edi
cmp ecx, 8
mov esi, dword [ebp - 0x38]
jae 0x6e8c3d98
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 8]
add esp, 0x5c
pop ebx
pop esi
sub eax, edx
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x1c]
add ebx, 3
add dword [ebp - 0x30], 4
cmp esi, edi
mov dword [edx], eax
jbe 0x6e8c3c2e
cmp dword [ebp - 0x34], 1
jle 0x6e8c3c2e
test byte [ebp - 0x30], 0x3f
mov edx, edi
jne 0x6e8c3d21
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
mov eax, dword [ebp - 0x40]
call eax
mov edx, edi
add edx, eax
mov ecx, eax
mov eax, dword [ebp - 0x2c]
cmp eax, edx
jae 0x6e8c3d17
mov ecx, eax
mov edx, eax
sub ecx, edi
cmp ecx, 8
mov esi, dword [ebp - 0x38]
jae 0x6e8c3d30
rep movsb byte es:[edi], byte [esi]
dec dword [ebp - 0x34]
jmp 0x6e8c3ba0
test edi, 1
jne 0x6e8c3ee0
test edi, 2
jne 0x6e8c3ef1
test edi, 4
je 0x6e8c3d1f
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
jmp 0x6e8c3d1f
test dl, 1
jne 0x6e8c3ec0
test edi, 2
jne 0x6e8c3ea8
test edi, 4
je 0x6e8c3c26
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
jmp 0x6e8c3c26
test edi, 1
jne 0x6e8c3f68
test edi, 2
jne 0x6e8c3f76
test edi, 4
je 0x6e8c3cb8
mov edx, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], edx
jmp 0x6e8c3cb8
mov byte [ebp - 0x19], 0x3d
movzx eax, byte [ebx]
mov dl, al
shr dl, 2
shl eax, 4
movzx edx, dl
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
and eax, 0x30
mov byte [ebp - 0x1c], dl
movzx edx, byte [ebx + 1]
mov cl, dl
shr cl, 4
shl edx, 2
movzx ecx, cl
or eax, ecx
and edx, 0x3c
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x1b], al
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x1a], al
jmp 0x6e8c3c6a
test edi, 1
jne 0x6e8c3f58
test edi, 2
jne 0x6e8c3f43
test edi, 4
je 0x6e8c3c8b
mov edx, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], edx
jmp 0x6e8c3c8b
test byte [0x6e926018], 8
jne 0x6e8c3f06
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
add ebx, edx
mov dword [esi], ebx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strlen]
mov ecx, ebx
mov edx, eax
xor eax, eax
test bl, 0x3f
setne al
shr ecx, 6
add eax, ecx
imul eax, edx
lea eax, [ebx + eax + 1]
mov dword [esi], eax
add esp, 0x5c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0x6e8c3d75
movzx eax, byte [esi]
inc edi
dec ecx
lea esi, [ebp - 0x1b]
mov byte [edx], al
jmp 0x6e8c3d69
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x40], eax
jmp 0x6e8c3c2e
movzx eax, byte [esi]
inc edi
inc esi
dec ecx
mov byte [ebp - 0x3c], al
mov byte [edi - 1], al
jmp 0x6e8c3d3c
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0x6e8c3d48
mov eax, dword [ebp - 0x44]
mov ebx, str.bytes_is__d__pad_bytes_is__d_n
mov edi, str.encodeBase64A
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp + 0x14], eax
mov eax, 0x6e926018
mov dword [esp + 4], eax
mov dword [esp], 3
mov dword [ebp - 0x2c], edx
call fcn.6e8c34b0
mov edx, dword [ebp - 0x2c]
jmp 0x6e8c3e6d
movzx edx, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], dx
jmp 0x6e8c3e38
movzx ebx, byte [esi]
inc edi
dec ecx
lea esi, [ebp - 0x1b]
mov byte [edi - 1], bl
jmp 0x6e8c3e2c
movzx ebx, byte [esi]
inc edi
inc esi
dec ecx
mov byte [edi - 1], bl
jmp 0x6e8c3da4
movzx edx, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], dx
jmp 0x6e8c3db0