Function at 0x14015ca90
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
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov r13, rcx
xor r12d, r12d
mov ebx, r12d
call fcn.14015d670
cmp byte [r13 + 0x10], bl
jne 0x14015cbc1
lea rcx, [r13 + 8]
call fcn.14000de70
cmp eax, 0x3c
jne 0x14015cca6
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [r13 + 8], rcx
test dl, dl
jns 0x14015cb01
mov al, 0x40
test al, dl
je 0x14015cb01
nop
cmp al, 8
jbe 0x14015cb01
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x14015caf0
mov rdx, qword [r13 + 8]
lea rcx, [rbp - 0x41]
call fcn.14015e700
mov rdi, qword [rbp - 0x41]
cmp rdi, qword [r13 + 8]
jne 0x14015cbd7
mov rcx, r13
call fcn.14015d670
mov rdx, qword [r13 + 8]
lea rcx, [rbp + 7]
call fcn.14015e700
mov rdi, qword [rax]
mov qword [rbp - 0x41], rdi
cmp rdi, qword [r13 + 8]
jne 0x14015cbd7
lea rdx, str.tag_name_missing
lea rcx, [rbp + 0x77]
call fcn.1400199a0
mov rcx, qword [rbp + 0x77]
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14015cb65
lock inc dword [rcx - 0x10]
mov rcx, qword [rbp + 0x77]
xchg qword [r13 + 0x18], rcx
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
mov rdx, 0xffffffffffffffff
test eax, 0x30000000
jne 0x14015cb9a
mov eax, edx
lock xadd dword [rcx], eax
dec eax
cmp eax, edx
jne 0x14015cb9a
call fcn.1400daaa8
mov rdx, 0xffffffffffffffff
mov byte [r13 + 0x11], 1
mov rcx, qword [rbp + 0x77]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015cbc1
lock xadd dword [rcx], edx
dec edx
cmp edx, 0xffffffff
jne 0x14015cbc1
call fcn.1400daaa8
xor eax, eax
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x20
call fcn.1400daadc
mov qword [rbp + 0x77], 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 - 0x49], r14
call fcn.140164f30
mov rcx, rax
mov r9, rdi
mov r8, rbx
mov rdx, r14
call fcn.140165350
nop
mov qword [r13 + 8], rdi
nop word [rax + rax]
mov rcx, r13
call fcn.14015d670
lea rcx, [r13 + 8]
call fcn.14000de70
mov ebx, eax
cmp eax, 0x2f
jne 0x14015ccae
lea edx, [rax - 0x2e]
lea rcx, [r13 + 8]
call fcn.14000e020
cmp eax, 0x3e
jne 0x14015ccb7
mov rax, qword [r13 + 8]
movzx r8d, byte [rax]
inc rax
mov qword [r13 + 8], rax
mov rcx, rax
test r8b, r8b
jns 0x14015cc7d
mov dl, 0x40
test dl, r8b
je 0x14015cc7d
cmp dl, 8
jbe 0x14015cc7d
inc rax
mov rcx, rax
mov qword [r13 + 8], rax
shr dl, 1
test r8b, dl
jne 0x14015cc67
movzx edx, byte [rcx]
inc rcx
mov qword [r13 + 8], rcx
test dl, dl
jns 0x14015cca2
mov al, 0x40
test al, dl
je 0x14015cca2
cmp al, 8
jbe 0x14015cca2
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x14015cc91
mov rbx, qword [rbp + 0x77]
mov rax, rbx
jmp 0x14015cbc3
cmp ebx, 0x3e
je 0x14015d2e8
mov ecx, ebx
call fcn.14015e830
test al, al
je 0x14015d171
mov rdx, qword [r13 + 8]
lea rcx, [rbp - 0x11]
call fcn.14015e700
mov rdi, qword [r13 + 8]
mov rbx, qword [rbp - 0x11]
cmp rbx, rdi
je 0x14015cca2
mov qword [r13 + 8], rbx
mov rcx, r13
call fcn.14015d670
lea rcx, [r13 + 8]
call fcn.14000df20
test eax, eax
je 0x14015d060
cmp eax, 0x3d
jne 0x14015d08c
mov rcx, r13
call fcn.14015d670
lea rcx, [r13 + 8]
call fcn.14000de70
cmp eax, 0x22
je 0x14015cd21
cmp eax, 0x27
jne 0x14015cca2
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400daadc
mov qword [rbp - 0x39], rax
mov qword [rax], r12
lea r14, [rax + 8]
mov qword [rbp + 0x67], r14
call fcn.140164f30
mov rcx, rax
mov r9, rbx
mov r8, rdi
mov rdx, r14
call fcn.140165350
mov r14, qword [rbp - 0x39]
add r14, 0x10
mov qword [rbp + 0x7f], r14
lea rax, [0x140370a58]
mov qword [r14], rax
lea rcx, [r13 + 8]
call fcn.14000df20
mov edi, eax
mov dword [rbp + 0x67], eax
test eax, eax
jne 0x14015cd9c
mov byte [r13 + 0x10], 1
mov r8d, r12d
dec qword [r13 + 8]
mov rcx, qword [r13 + 8]
movzx edx, byte [rcx]
and dl, 0xc0
cmp dl, 0x80
jne 0x14015cd9c
inc r8d
cmp r8d, 4
jl 0x14015cd80
cmp byte [r13 + 0x10], 0
jne 0x14015d051
lea rcx, [r13 + 8]
call fcn.14000df20
mov r9d, eax
test eax, eax
jne 0x14015cddc
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 0x14015cddc
inc r8d
cmp r8d, 4
jl 0x14015cdc0
cmp r9d, edi
je 0x14015d051
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 0x14015ce0b
inc ecx
cmp ecx, 4
jl 0x14015cdf0
cmp r9d, 0x26
jne 0x14015ce21
mov rdx, r14
mov rcx, r13
call fcn.14015b070
jmp 0x14015cfc1
mov rdx, rbx
movzx ecx, byte [rdx]
mov eax, ecx
test cl, cl
jns 0x14015ce96
mov ecx, 0x40
lea r9d, [rcx + 0x3f]
mov r8d, r12d
test cl, al
je 0x14015ce51
nop dword [rax]
cmp ecx, 8
jbe 0x14015ce51
shr r9d, 1
inc r8d
shr ecx, 1
test eax, ecx
jne 0x14015ce40
and eax, r9d
mov r9d, 1
cmp r8d, r9d
jl 0x14015ce96
movsxd r10, r8d
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [r9 + rdx]
mov ecx, r8d
and cl, 0xc0
cmp cl, 0x80
jne 0x14015ce96
and r8d, 0x3f
mov ecx, eax
shl ecx, 6
mov eax, r8d
or eax, ecx
inc r9
cmp r9, r10
jle 0x14015ce70
cmp eax, edi
je 0x14015cfdb
cmp eax, 0x26
je 0x14015cf70
test eax, eax
je 0x14015ceef
movzx r8d, byte [rdx]
lea rcx, [rdx + 1]
mov qword [r13 + 8], rcx
mov rdx, rcx
test r8b, r8b
jns 0x14015ce24
mov al, 0x40
test al, r8b
je 0x14015ce24
nop
cmp al, 8
jbe 0x14015ce24
lea rdx, [rcx + 1]
mov rcx, rdx
mov qword [r13 + 8], rdx
shr al, 1
test r8b, al
jne 0x14015ced0
jmp 0x14015ce24
lea rdx, str.unmatched_quotes
lea rcx, [rbp - 0x51]
call fcn.1400199a0
mov rcx, qword [rbp - 0x51]
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14015cf12
lock inc dword [rcx - 0x10]
mov rcx, qword [rbp - 0x51]
xchg qword [r13 + 0x18], rcx
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015cf3d
mov eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015cf3d
call fcn.1400daaa8
mov byte [r13 + 0x11], 1
mov rcx, qword [rbp - 0x51]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015cf69
mov eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015cf69
call fcn.1400daaa8
mov byte [r13 + 0x10], 1
jmp 0x14015cfc1
mov ecx, dword [r13 + 8]
sub ecx, ebx
test ecx, ecx
jle 0x14015cfc1
mov rax, qword [r14]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], 0
jne 0x14015cf84
movsxd r14, ecx
lea rdx, [rdi + r14]
mov rcx, qword [rbp + 0x7f]
call fcn.14016ca30
movsxd rdi, edi
mov rax, qword [rbp + 0x7f]
add rdi, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.1400dd3e0
mov byte [r14 + rdi], 0
mov edi, dword [rbp + 0x67]
mov r14, qword [rbp + 0x7f]
cmp byte [r13 + 0x10], 0
je 0x14015cda7
mov rax, qword [rbp - 0x39]
mov qword [rsi], rax
mov rsi, rax
jmp 0x14015cc20
mov ecx, dword [r13 + 8]
sub ecx, ebx
test ecx, ecx
jle 0x14015d026
mov rax, qword [r14]
mov rdi, 0xffffffffffffffff
nop
inc rdi
cmp byte [rax + rdi], 0
jne 0x14015cff0
movsxd r14, ecx
lea rdx, [rdi + r14]
mov rcx, qword [rbp + 0x7f]
call fcn.14016ca30
movsxd rdi, edi
mov rax, qword [rbp + 0x7f]
add rdi, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.1400dd3e0
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 0x14015d051
mov al, 0x40
test al, dl
je 0x14015d051
nop
cmp al, 8
jbe 0x14015d051
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test al, dl
jne 0x14015d040
mov rax, qword [rbp - 0x39]
mov qword [rsi], rax
mov rsi, rax
jmp 0x14015cc20
mov byte [r13 + 0x10], 1
nop word [rax + rax]
dec qword [r13 + 8]
mov rax, qword [r13 + 8]
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x14015d08c
inc r12d
cmp r12d, 4
jl 0x14015d070
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp - 0x49]
call fcn.14016c680
nop
mov r8, rax
lea rdx, str.expected__after_attribute_
lea rcx, [rbp - 9]
call fcn.14017e590
mov rbx, rax
mov qword [rbp + 0x67], rax
lea r8, [0x14036fcd5]
lea rdx, [0x14036fcd4]
mov rcx, rax
call fcn.14016b200
mov rdx, qword [rbx]
mov qword [rbp - 0x31], rdx
mov ecx, dword [rdx - 0x10]
nop
test ecx, 0x30000000
jne 0x14015d0e3
lock inc dword [rdx - 0x10]
mov rcx, qword [rbx]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
mov r14, 0xffffffffffffffff
test eax, 0x30000000
jne 0x14015d10e
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x14015d10e
call fcn.1400daaa8
xor r8d, r8d
lea rdx, [rbp - 0x31]
mov rcx, r13
call fcn.14015e2d0
mov rcx, qword [rbp - 0x31]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015d143
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015d143
call fcn.1400daaa8
nop
mov rcx, qword [rbp - 0x49]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015d168
lock xadd dword [rcx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x14015d168
call fcn.1400daaa8
mov rax, qword [rbp + 0x77]
jmp 0x14015cbc3
cmp byte [r13 + 0x10], 0
jne 0x14015cca2
lea rdx, str.illegal_character_found_in
lea rcx, [rbp - 0x29]
call fcn.1400199a0
nop
mov rdx, qword [rbp - 0x49]
lea rcx, [rbp - 0x29]
call fcn.140181250
mov rcx, qword [rax]
mov qword [rbp - 0x59], rcx
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14015d1b0
lock inc dword [rcx - 0x10]
mov rcx, qword [rbp - 0x29]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
mov r14, 0xffffffffffffffff
test eax, 0x30000000
jne 0x14015d1dc
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x14015d1dc
call fcn.1400daaa8
lea rax, [rbp - 0x59]
mov qword [rbp + 0x67], rax
lea r8, [0x14036fd67]
lea rdx, [0x14036fd64]
lea rcx, [rbp - 0x59]
call fcn.14016b200
mov rax, qword [rbp - 0x59]
mov qword [rbp - 0x21], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14015d213
lock inc dword [rax - 0x10]
mov rcx, qword [rbp - 0x59]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015d238
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015d238
call fcn.1400daaa8
mov r8d, ebx
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 1]
call fcn.14016afd0
mov rbx, rax
mov qword [rbp + 0x67], rax
lea r8, [0x14036fd9d]
lea rdx, [0x14036fd9c]
mov rcx, rax
call fcn.14016b200
mov rdx, qword [rbx]
mov qword [rbp - 0x19], rdx
mov ecx, dword [rdx - 0x10]
nop
test ecx, 0x30000000
jne 0x14015d27c
lock inc dword [rdx - 0x10]
mov rcx, qword [rbx]
sub rcx, 0x10
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015d2a0
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14015d2a0
call fcn.1400daaa8
xor r8d, r8d
lea rdx, [rbp - 0x19]
mov rcx, r13
call fcn.14015e2d0
mov rcx, qword [rbp - 0x19]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14015cca2
lock xadd dword [rcx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x14015cca2
call fcn.1400daaa8
mov rbx, qword [rbp + 0x77]
mov rax, rbx
jmp 0x14015cbc3
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
inc rax
mov qword [r13 + 8], rax
test dl, dl
jns 0x14015d312
mov cl, 0x40
test cl, dl
je 0x14015d312
cmp cl, 8
jbe 0x14015d312
inc rax
mov qword [r13 + 8], rax
shr cl, 1
test dl, cl
jne 0x14015d300
mov rbx, qword [rbp + 0x77]
cmp byte [rbp + 0x6f], 0
je 0x14015cca6
mov rdx, rbx
mov rcx, r13
call fcn.14015ba30
mov rax, rbx
jmp 0x14015cbc3