Function at 0x14015a660
Capabilities:
Encode data using base64

Disassembly:
mov byte [rsp + 0x10], dl
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x48
mov r13, rcx
xor r12d, r12d
mov ebx, r12d
call fcn.14015b230
cmp byte [r13 + 0x10], bl
jne 0x14015a791
lea rcx, [r13 + 8]
call fcn.14000e5c0
cmp eax, 0x3c
jne 0x14015a875
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [r13 + 8], rcx
test dl, dl
jns 0x14015a6d1
mov al, 0x40
test al, dl
je 0x14015a6d1
nop word [rax + rax]
cmp al, 8
jbe 0x14015a6d1
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x14015a6c0
mov rdx, qword [r13 + 8]
lea rcx, [rbp + 0x48]
call fcn.14015c380
mov rdi, qword [rbp + 0x48]
cmp rdi, qword [r13 + 8]
jne 0x14015a7a4
mov rcx, r13
call fcn.14015b230
mov rdx, qword [r13 + 8]
lea rcx, [rbp + 0x48]
call fcn.14015c380
mov rdi, qword [rax]
mov qword [rbp + 0x48], rdi
cmp rdi, qword [r13 + 8]
jne 0x14015a7a4
lea rdx, str.tag_name_missing
lea rcx, [rbp + 0x48]
call fcn.140019df0
mov rcx, qword [rbp + 0x48]
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14015a735
lock inc dword [rcx - 0x10]
mov rcx, qword [rbp + 0x48]
xchg qword [r13 + 0x18], rcx
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
mov rdx, 0xffffffffffffffff
test eax, 0x30000000
jne 0x14015a76a
mov eax, edx
lock xadd dword [rcx], eax
dec eax
cmp eax, edx
jne 0x14015a76a
call fcn.1400da0f0
mov rdx, 0xffffffffffffffff
mov byte [r13 + 0x11], 1
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015a791
lock xadd dword [rcx], edx
dec edx
cmp edx, 0xffffffff
jne 0x14015a791
call fcn.1400da0f0
xor eax, eax
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x20
call fcn.1400da124
mov qword [rbp + 0x58], rax
mov rbx, qword [r13 + 8]
mov qword [rax], r12
mov qword [rax + 8], r12
lea rsi, [rax + 0x10]
mov qword [rsi], r12
lea r14, [rax + 0x18]
mov qword [rbp - 0x10], r14
call fcn.140162e70
mov rcx, rax
mov r9, rdi
mov r8, rbx
mov rdx, r14
call fcn.1401632b0
nop
mov qword [r13 + 8], rdi
mov rcx, r13
call fcn.14015b230
lea rcx, [r13 + 8]
call fcn.14000e5c0
mov ebx, eax
cmp eax, 0x2f
jne 0x14015a87d
mov edx, 1
lea rcx, [r13 + 8]
call fcn.14000e780
cmp eax, 0x3e
jne 0x14015a886
mov rax, qword [r13 + 8]
movzx r8d, byte [rax]
inc rax
mov qword [r13 + 8], rax
mov rcx, rax
test r8b, r8b
jns 0x14015a846
mov dl, 0x40
test dl, r8b
je 0x14015a846
cmp dl, 8
jbe 0x14015a846
inc rax
mov rcx, rax
mov qword [r13 + 8], rax
shr dl, 1
test r8b, dl
jne 0x14015a830
movzx edx, byte [rcx]
inc rcx
mov qword [r13 + 8], rcx
test dl, dl
jns 0x14015a871
mov al, 0x40
test al, dl
je 0x14015a871
nop word [rax + rax]
cmp al, 8
jbe 0x14015a871
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x14015a860
mov rbx, qword [rbp + 0x58]
mov rax, rbx
jmp 0x14015a793
cmp ebx, 0x3e
je 0x14015aea8
mov ecx, ebx
call fcn.14015c4b0
test al, al
je 0x14015ad31
mov rdx, qword [r13 + 8]
lea rcx, [rbp - 0x18]
call fcn.14015c380
mov rdi, qword [r13 + 8]
mov rbx, qword [rbp - 0x18]
cmp rbx, rdi
je 0x14015a871
mov qword [r13 + 8], rbx
mov rcx, r13
call fcn.14015b230
lea rcx, [r13 + 8]
call fcn.14000e670
test eax, eax
je 0x14015ac26
cmp eax, 0x3d
jne 0x14015ac4c
mov rcx, r13
call fcn.14015b230
lea rcx, [r13 + 8]
call fcn.14000e5c0
cmp eax, 0x22
je 0x14015a8f0
cmp eax, 0x27
jne 0x14015a871
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400da124
mov qword [rbp - 0x20], rax
mov qword [rax], r12
lea r14, [rax + 8]
mov qword [rbp + 0x48], r14
call fcn.140162e70
mov rcx, rax
mov r9, rbx
mov r8, rdi
mov rdx, r14
call fcn.1401632b0
mov r14, qword [rbp - 0x20]
add r14, 0x10
mov qword [rbp + 0x60], r14
lea rax, [0x140379908]
mov qword [r14], rax
lea rcx, [r13 + 8]
call fcn.14000e670
mov edi, eax
mov dword [rbp + 0x48], eax
test eax, eax
jne 0x14015a96c
mov byte [r13 + 0x10], 1
mov r8d, r12d
nop
dec qword [r13 + 8]
mov rcx, qword [r13 + 8]
movzx edx, byte [rcx]
and dl, 0xc0
cmp dl, 0x80
jne 0x14015a96c
inc r8d
cmp r8d, 4
jl 0x14015a950
cmp byte [r13 + 0x10], 0
jne 0x14015ac17
lea rcx, [r13 + 8]
call fcn.14000e670
mov r9d, eax
test eax, eax
jne 0x14015a9ac
mov byte [r13 + 0x10], 1
mov r8d, r12d
nop
dec qword [r13 + 8]
mov rcx, qword [r13 + 8]
movzx edx, byte [rcx]
and dl, 0xc0
cmp dl, 0x80
jne 0x14015a9ac
inc r8d
cmp r8d, 4
jl 0x14015a990
cmp r9d, edi
je 0x14015ac17
mov ecx, r12d
nop dword [rax + rax]
mov rbx, qword [r13 + 8]
dec rbx
mov qword [r13 + 8], rbx
movzx eax, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x14015a9db
inc ecx
cmp ecx, 4
jl 0x14015a9c0
cmp r9d, 0x26
jne 0x14015a9f1
mov rdx, r14
mov rcx, r13
call fcn.140158f10
jmp 0x14015ab8d
mov rcx, rbx
movzx r11d, byte [rcx]
mov edx, r11d
test r11b, r11b
jns 0x14015aa65
mov eax, 0x40
mov r8d, 0x7f
mov ecx, r12d
test al, dl
je 0x14015aa22
cmp eax, 8
jbe 0x14015aa22
shr r8d, 1
inc ecx
shr eax, 1
test edx, eax
jne 0x14015aa12
and edx, r8d
mov r8d, 1
cmp ecx, r8d
jl 0x14015aa61
mov r9, qword [r13 + 8]
movsxd r10, ecx
nop word [rax + rax]
movzx ecx, byte [r9 + r8]
mov eax, ecx
and al, 0xc0
cmp al, 0x80
jne 0x14015aa61
and ecx, 0x3f
mov eax, edx
shl eax, 6
mov edx, ecx
or edx, eax
inc r8
cmp r8, r10
jle 0x14015aa40
mov rcx, qword [r13 + 8]
cmp edx, edi
je 0x14015aba7
cmp edx, 0x26
je 0x14015ab40
test edx, edx
je 0x14015aabf
lea rdx, [rcx + 1]
mov qword [r13 + 8], rdx
mov rcx, rdx
test r11b, r11b
jns 0x14015a9f4
mov al, 0x40
test al, r11b
je 0x14015a9f4
nop dword [rax]
cmp al, 8
jbe 0x14015a9f4
lea rcx, [rdx + 1]
mov rdx, rcx
mov qword [r13 + 8], rcx
shr al, 1
test r11b, al
jne 0x14015aaa0
jmp 0x14015a9f4
lea rdx, str.unmatched_quotes
lea rcx, [rbp - 0x28]
call fcn.140019df0
mov rcx, qword [rbp - 0x28]
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14015aae2
lock inc dword [rcx - 0x10]
mov rcx, qword [rbp - 0x28]
xchg qword [r13 + 0x18], rcx
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015ab0d
mov eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015ab0d
call fcn.1400da0f0
mov byte [r13 + 0x11], 1
mov rcx, qword [rbp - 0x28]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015ab39
mov eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015ab39
call fcn.1400da0f0
mov byte [r13 + 0x10], 1
jmp 0x14015ab8d
sub ecx, ebx
test ecx, ecx
jle 0x14015ab8d
mov rax, qword [r14]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], 0
jne 0x14015ab50
movsxd r14, ecx
lea rdx, [rdi + r14]
mov rcx, qword [rbp + 0x60]
call fcn.14016a9f0
movsxd rdi, edi
mov rax, qword [rbp + 0x60]
add rdi, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.1402a26b0
mov byte [r14 + rdi], 0
mov edi, dword [rbp + 0x48]
mov r14, qword [rbp + 0x60]
cmp byte [r13 + 0x10], 0
je 0x14015a977
mov rax, qword [rbp - 0x20]
mov qword [rsi], rax
mov rsi, rax
jmp 0x14015a7e7
sub ecx, ebx
test ecx, ecx
jle 0x14015abed
mov rax, qword [r14]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], 0
jne 0x14015abb7
movsxd r14, ecx
lea rdx, [rdi + r14]
mov rcx, qword [rbp + 0x60]
call fcn.14016a9f0
movsxd rdi, edi
mov rax, qword [rbp + 0x60]
add rdi, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.1402a26b0
mov byte [rdi + r14], 0
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [r13 + 8], rcx
test dl, dl
jns 0x14015ac17
mov al, 0x40
test al, dl
je 0x14015ac17
cmp al, 8
jbe 0x14015ac17
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x14015ac06
mov rax, qword [rbp - 0x20]
mov qword [rsi], rax
mov rsi, rax
jmp 0x14015a7e7
mov byte [r13 + 0x10], 1
nop dword [rax + rax]
dec qword [r13 + 8]
mov rax, qword [r13 + 8]
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x14015ac4c
inc r12d
cmp r12d, 4
jl 0x14015ac30
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp - 0x18]
call fcn.14016a630
nop
mov r8, rax
lea rdx, str.expected__after_attribute_
lea rcx, [rbp + 0x60]
call fcn.14017c670
mov rbx, rax
mov qword [rbp + 0x48], rax
lea r8, [0x140378acd]
lea rdx, [0x140378acc]
mov rcx, rax
call fcn.1401691c0
mov rdx, qword [rbx]
mov qword [rbp + 0x48], rdx
mov ecx, dword [rdx - 0x10]
nop
test ecx, 0x30000000
jne 0x14015aca3
lock inc dword [rdx - 0x10]
mov rcx, qword [rbx]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
mov r14, 0xffffffffffffffff
test eax, 0x30000000
jne 0x14015acce
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x14015acce
call fcn.1400da0f0
xor r8d, r8d
lea rdx, [rbp + 0x48]
mov rcx, r13
call fcn.14015bf30
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015ad03
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015ad03
call fcn.1400da0f0
nop
mov rcx, qword [rbp - 0x18]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015ad28
lock xadd dword [rcx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x14015ad28
call fcn.1400da0f0
mov rax, qword [rbp + 0x58]
jmp 0x14015a793
cmp byte [r13 + 0x10], 0
jne 0x14015a871
lea rdx, str.illegal_character_found_in
lea rcx, [rbp + 0x60]
call fcn.140019df0
nop
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp + 0x60]
call fcn.14017f700
mov rcx, qword [rax]
mov qword [rbp + 0x48], rcx
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14015ad70
lock inc dword [rcx - 0x10]
mov rcx, qword [rbp + 0x60]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
mov r14, 0xffffffffffffffff
test eax, 0x30000000
jne 0x14015ad9c
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x14015ad9c
call fcn.1400da0f0
lea rax, [rbp + 0x48]
mov qword [rbp + 0x60], rax
lea r8, [0x140378b4b]
lea rdx, [0x140378b48]
lea rcx, [rbp + 0x48]
call fcn.1401691c0
mov rax, qword [rbp + 0x48]
mov qword [rbp - 0x20], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14015add3
lock inc dword [rax - 0x10]
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015adf8
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015adf8
call fcn.1400da0f0
mov r8d, ebx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x18]
call fcn.140168f80
mov rbx, rax
mov qword [rbp + 0x60], rax
lea r8, [0x140378b91]
lea rdx, [0x140378b90]
mov rcx, rax
call fcn.1401691c0
mov rdx, qword [rbx]
mov qword [rbp + 0x60], rdx
mov ecx, dword [rdx - 0x10]
nop
test ecx, 0x30000000
jne 0x14015ae3c
lock inc dword [rdx - 0x10]
mov rcx, qword [rbx]
sub rcx, 0x10
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015ae60
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015ae60
call fcn.1400da0f0
xor r8d, r8d
lea rdx, [rbp + 0x60]
mov rcx, r13
call fcn.14015bf30
mov rcx, qword [rbp + 0x60]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015a871
lock xadd dword [rcx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x14015a871
call fcn.1400da0f0
mov rbx, qword [rbp + 0x58]
mov rax, rbx
jmp 0x14015a793
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
inc rax
mov qword [r13 + 8], rax
test dl, dl
jns 0x14015aed2
mov cl, 0x40
test cl, dl
je 0x14015aed2
cmp cl, 8
jbe 0x14015aed2
inc rax
mov qword [r13 + 8], rax
shr cl, 1
test dl, cl
jne 0x14015aec0
cmp byte [rbp + 0x50], 0
je 0x14015a871
mov rbx, qword [rbp + 0x58]
mov rdx, rbx
mov rcx, r13
call fcn.140159890
mov rax, rbx
jmp 0x14015a793