Function at 0x10042007
Capabilities:
Encode data using base64

Disassembly:
push 0x2c
mov eax, 0x100d28f5
call fcn.100c74ca
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x20]
mov dword [ebp - 0x38], eax
xor edx, edx
mov dword [ebp - 0x28], eax
xor esi, esi
mov eax, dword [ebp + 0x10]
push 3
pop ecx
div ecx
mov dword [ebp - 4], esi
mov eax, edx
and edx, 1
shr eax, 1
and eax, 1
lea ecx, [eax + edx*2]
xor eax, eax
stosd dword es:[edi], eax
mov dword [ebp - 0x34], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edi
mov byte [ebp - 4], 1
mov ebx, esi
lea eax, [ebx + 3]
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp + 0x10]
ja 0x1004214e
mov ecx, dword [ebp + 0xc]
mov al, byte [ebx + ecx]
mov dl, byte [ebx + ecx + 1]
mov cl, byte [ebx + ecx + 2]
movzx ebx, al
mov eax, ebx
mov byte [ebp - 0x22], dl
shr eax, 2
mov byte [ebp - 0x21], cl
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x23], al
cmp esi, edi
je 0x10042094
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x100420aa
lea eax, [ebp - 0x23]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov dl, byte [ebp - 0x22]
movzx ecx, dl
and ebx, 3
mov eax, ecx
mov dword [ebp - 0x2c], ecx
shr eax, 4
add ebx, ebx
mov al, byte [eax + ebx*8 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x22], al
cmp esi, edi
je 0x100420d0
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x100420e6
lea eax, [ebp - 0x22]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
movzx ebx, byte [ebp - 0x21]
and ecx, 0xf
mov eax, ebx
shr eax, 6
mov al, byte [eax + ecx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x10042108
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x1004211b
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
and ebx, 0x3f
mov al, byte [ebx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x10042133
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x10042146
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x30]
jmp 0x10042054
mov ecx, dword [ebp - 0x34]
cmp ecx, 2
jne 0x100421f7
mov eax, dword [ebp + 0xc]
movzx eax, byte [ebx + eax]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x10042179
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x1004218c
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
movzx eax, byte [ebx + eax]
and eax, 3
shl eax, 4
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x100421ae
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x100421c1
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
cmp byte [ebp + 0x14], 0
je 0x100422cd
mov byte [ebp - 0x21], 0x3d
cmp esi, edi
je 0x100421df
mov byte [esi], 0x3d
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x100422a9
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x100422a9
cmp ecx, 1
jne 0x100422cd
mov eax, dword [ebp + 0xc]
movzx eax, byte [ebx + eax]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x1004221f
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x10042232
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [ebx + eax]
movzx eax, byte [ebx + eax + 1]
and ecx, 3
add ecx, ecx
shr eax, 4
mov al, byte [eax + ecx*8 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x1004225c
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x1004226f
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
movzx eax, byte [ebx + eax + 1]
and eax, 0xf
mov al, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp esi, edi
je 0x10042290
mov byte [esi], al
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x100422a3
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
cmp byte [ebp + 0x14], 0
je 0x100422cd
mov byte [ebp - 0x21], 0x3d
cmp esi, edi
je 0x100422ba
mov byte [esi], 0x3d
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x100422cd
lea eax, [ebp - 0x21]
push eax
push esi
lea ecx, [ebp - 0x20]
call fcn.100c8a78
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x38]
lea eax, [ebp - 0x21]
push eax
push esi
mov esi, dword [ebp - 0x20]
mov ecx, ebx
push esi
call fcn.100c8a78
test esi, esi
je 0x100422ef
sub edi, esi
push edi
push esi
call fcn.100c8a78
pop ecx
pop ecx
mov eax, ebx
jmp 0x10042309
call fcn.100c7417
ret 0x10