Function at 0x1005ab58
Capabilities:
Encode data using base64

Disassembly:
push 0x2c
mov eax, 0x1011e6c7
call fcn.1011094a
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x20]
mov dword [ebp - 0x2c], eax
xor edx, edx
mov dword [ebp - 0x28], eax
xor esi, esi
mov eax, dword [ebp + 0x10]
push 3
pop ecx
div ecx
and dword [ebp - 4], 0
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
xor edx, edx
mov dword [ebp - 0x38], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
and dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], esi
mov ebx, dword [ebp + 0xc]
xor edi, edi
mov byte [ebp - 4], 1
lea eax, [edi + 3]
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp + 0x10]
ja 0x1005ac9f
mov ah, byte [edi + ebx + 2]
mov cl, byte [edi + ebx + 1]
movzx edi, byte [edi + ebx]
mov byte [ebp - 0x21], ah
mov eax, edi
shr eax, 2
mov byte [ebp - 0x22], cl
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x23], al
cmp edx, esi
je 0x1005abe5
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005abfb
lea eax, [ebp - 0x23]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x22]
movzx ecx, cl
and edi, 3
mov eax, ecx
mov dword [ebp - 0x30], ecx
shr eax, 4
add edi, edi
mov al, byte [eax + edi*8 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x22], al
cmp edx, esi
je 0x1005ac21
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ac37
lea eax, [ebp - 0x22]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
movzx edi, byte [ebp - 0x21]
and ecx, 0xf
mov eax, edi
shr eax, 6
mov al, byte [eax + ecx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005ac59
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ac6c
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
and edi, 0x3f
mov al, byte [edi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005ac84
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ac97
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
jmp 0x1005abaa
mov ecx, dword [ebp - 0x38]
cmp ecx, 2
jne 0x1005ad42
movzx eax, byte [edi + ebx]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005acc7
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005acda
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edi + ebx]
and eax, 3
shl eax, 4
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005acf9
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ad0c
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
cmp byte [ebp + 0x14], 0
je 0x1005ae0f
mov byte [ebp - 0x21], 0x3d
cmp edx, esi
je 0x1005ad2a
mov byte [edx], 0x3d
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005adeb
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
jmp 0x1005adeb
cmp ecx, 1
jne 0x1005ae0f
movzx eax, byte [edi + ebx]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005ad67
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ad7a
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
movzx ecx, byte [edi + ebx]
movzx eax, byte [edi + ebx + 1]
and ecx, 3
add ecx, ecx
shr eax, 4
mov al, byte [eax + ecx*8 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005ada1
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005adb4
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edi + ebx + 1]
and eax, 0xf
mov al, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ebp - 0x21], al
cmp edx, esi
je 0x1005add2
mov byte [edx], al
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ade5
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
cmp byte [ebp + 0x14], 0
je 0x1005ae0f
mov byte [ebp - 0x21], 0x3d
cmp edx, esi
je 0x1005adfc
mov byte [edx], 0x3d
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1005ae0f
lea eax, [ebp - 0x21]
push eax
push edx
lea ecx, [ebp - 0x20]
call fcn.1003a3c0
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov ecx, ebx
push dword [ebp - 0x2c]
mov edi, dword [ebp - 0x20]
push edx
and dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
push edi
mov byte [ebx], 0
call fcn.1003a3c0
test edi, edi
je 0x1005ae3e
sub esi, edi
push esi
push edi
call fcn.1003a3c0
pop ecx
pop ecx
mov eax, ebx
jmp 0x1005ae58
call fcn.10110897
ret 0x10