Function at 0x18016e520
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 qword [rbp + 0x60], r12
call fcn.18016f0d0
cmp byte [r13 + 0x10], r12b
jne 0x18016e645
lea rcx, [r13 + 8]
call fcn.18000f280
cmp eax, 0x3c
jne 0x18016ebe7
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [r13 + 8], rcx
test dl, dl
jns 0x18016e591
mov al, 0x40
test al, dl
je 0x18016e591
nop dword [rax + rax]
cmp al, 8
jbe 0x18016e591
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x18016e580
mov rdx, qword [r13 + 8]
lea rcx, [rbp + 0x48]
call fcn.180170070
mov rdi, qword [rbp + 0x48]
cmp rdi, qword [r13 + 8]
jne 0x18016e658
mov rcx, r13
call fcn.18016f0d0
mov rdx, qword [r13 + 8]
lea rcx, [rbp + 0x48]
call fcn.180170070
mov rdi, qword [rax]
mov qword [rbp + 0x48], rdi
cmp rdi, qword [r13 + 8]
jne 0x18016e658
lea rdx, str.tag_name_missing
lea rcx, [rbp + 0x48]
call fcn.18001d070
mov rax, qword [rbp + 0x48]
lea rbx, [rax - 0x10]
lea rdi, [0x180660020]
cmp rbx, rdi
je 0x18016e5fd
lock inc dword [rbx]
mov rax, qword [rbp + 0x48]
xchg qword [r13 + 0x18], rax
lea rcx, [rax - 0x10]
mov rax, 0xffffffffffffffff
cmp rcx, rdi
je 0x18016e628
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016e621
call fcn.18011d9c0
mov rax, 0xffffffffffffffff
mov byte [r13 + 0x11], 1
cmp rbx, rdi
je 0x18016e645
lock xadd dword [rbx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016e645
mov rcx, rbx
call fcn.18011d9c0
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.18011dae8
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x48], rax
mov rbx, qword [r13 + 8]
mov qword [rax], r12
mov qword [rax + 8], r12
lea rsi, [rax + 0x10]
mov qword [rsi], r12
call fcn.180175840
mov r14, qword [rbp + 0x60]
add r14, 0x18
mov qword [rbp - 0x10], r14
mov r9, rdi
mov r8, rbx
mov rdx, r14
mov rcx, rax
call fcn.180175d80
nop
mov qword [r13 + 8], rdi
mov rcx, r13
call fcn.18016f0d0
lea rcx, [r13 + 8]
call fcn.18000f280
mov ebx, eax
cmp eax, 0x2f
jne 0x18016e740
mov edx, 1
lea rcx, [r13 + 8]
call fcn.18000f440
cmp eax, 0x3e
jne 0x18016e749
mov rax, qword [r13 + 8]
movzx r8d, byte [rax]
inc rax
mov qword [r13 + 8], rax
mov rcx, rax
test r8b, r8b
jns 0x18016e706
mov dl, 0x40
test dl, r8b
je 0x18016e706
cmp dl, 8
jbe 0x18016e706
inc rax
mov rcx, rax
mov qword [r13 + 8], rax
shr dl, 1
test r8b, dl
jne 0x18016e6f0
movzx edx, byte [rcx]
inc rcx
mov qword [r13 + 8], rcx
test dl, dl
jns 0x18016ebe7
mov al, 0x40
test al, dl
je 0x18016ebe7
cmp al, 8
jbe 0x18016ebe7
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x18016e722
mov rax, qword [rbp + 0x60]
jmp 0x18016e647
cmp ebx, 0x3e
je 0x18016ed43
mov ecx, ebx
call fcn.1801701a0
test al, al
je 0x18016ebf0
mov rdx, qword [r13 + 8]
lea rcx, [rbp - 0x18]
call fcn.180170070
mov rdi, qword [r13 + 8]
mov rbx, qword [rbp - 0x18]
cmp rbx, rdi
je 0x18016ebe7
mov qword [r13 + 8], rbx
mov rcx, r13
call fcn.18016f0d0
lea rcx, [r13 + 8]
call fcn.18000f330
test eax, eax
je 0x18016eaf6
cmp eax, 0x3d
jne 0x18016eb1c
mov rcx, r13
call fcn.18016f0d0
lea rcx, [r13 + 8]
call fcn.18000f280
cmp eax, 0x22
je 0x18016e7bb
cmp eax, 0x27
jne 0x18016ebe7
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.18011dae8
mov qword [rbp - 0x20], rax
mov qword [rax], r12
lea r14, [rax + 8]
call fcn.180175840
mov r9, rbx
mov r8, rdi
mov rdx, r14
mov rcx, rax
call fcn.180175d80
mov r14, qword [rbp - 0x20]
add r14, 0x10
mov qword [rbp + 0x58], r14
lea rax, [0x180660030]
mov qword [r14], rax
lea rcx, [r13 + 8]
call fcn.18000f330
mov edi, eax
mov dword [rbp + 0x48], eax
test eax, eax
jne 0x18016e83c
mov byte [r13 + 0x10], 1
mov r8d, r12d
nop word [rax + rax]
dec qword [r13 + 8]
mov rcx, qword [r13 + 8]
movzx edx, byte [rcx]
and dl, 0xc0
cmp dl, 0x80
jne 0x18016e83c
inc r8d
cmp r8d, 4
jl 0x18016e820
cmp byte [r13 + 0x10], 0
jne 0x18016eae7
lea rcx, [r13 + 8]
call fcn.18000f330
mov r9d, eax
test eax, eax
jne 0x18016e87c
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 0x18016e87c
inc r8d
cmp r8d, 4
jl 0x18016e860
cmp r9d, edi
je 0x18016eae7
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 0x18016e8ab
inc ecx
cmp ecx, 4
jl 0x18016e890
cmp r9d, 0x26
jne 0x18016e8c1
mov rdx, r14
mov rcx, r13
call fcn.18016cba0
jmp 0x18016ea5d
mov rcx, rbx
movzx r11d, byte [rcx]
mov edx, r11d
test r11b, r11b
jns 0x18016e935
mov eax, 0x40
mov r8d, 0x7f
mov ecx, r12d
test al, dl
je 0x18016e8f2
cmp eax, 8
jbe 0x18016e8f2
shr r8d, 1
inc ecx
shr eax, 1
test edx, eax
jne 0x18016e8e2
and edx, r8d
mov r8d, 1
cmp ecx, r8d
jl 0x18016e931
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 0x18016e931
and ecx, 0x3f
mov eax, edx
shl eax, 6
mov edx, ecx
or edx, eax
inc r8
cmp r8, r10
jle 0x18016e910
mov rcx, qword [r13 + 8]
cmp edx, edi
je 0x18016ea77
cmp edx, 0x26
je 0x18016ea0c
test edx, edx
je 0x18016e98f
lea rdx, [rcx + 1]
mov qword [r13 + 8], rdx
mov rcx, rdx
test r11b, r11b
jns 0x18016e8c4
mov al, 0x40
test al, r11b
je 0x18016e8c4
nop dword [rax]
cmp al, 8
jbe 0x18016e8c4
lea rcx, [rdx + 1]
mov rdx, rcx
mov qword [r13 + 8], rcx
shr al, 1
test r11b, al
jne 0x18016e970
jmp 0x18016e8c4
lea rdx, str.unmatched_quotes
lea rcx, [rbp - 0x28]
call fcn.18001d070
mov rax, qword [rbp - 0x28]
lea rbx, [rax - 0x10]
lea rdx, [0x180660020]
cmp rbx, rdx
je 0x18016e9ba
lock inc dword [rbx]
mov rax, qword [rbp - 0x28]
xchg qword [r13 + 0x18], rax
lea rcx, [rax - 0x10]
cmp rcx, rdx
je 0x18016e9e3
mov eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016e9e3
call fcn.18011d9c0
lea rdx, [0x180660020]
mov byte [r13 + 0x11], 1
cmp rbx, rdx
je 0x18016ea05
mov eax, 0xffffffff
lock xadd dword [rbx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016ea05
mov rcx, rbx
call fcn.18011d9c0
mov byte [r13 + 0x10], 1
jmp 0x18016ea5d
sub ecx, ebx
test ecx, ecx
jle 0x18016ea5d
mov rax, qword [r14]
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x18016ea20
movsxd r14, ecx
lea rdx, [r14 + rdi]
mov rcx, qword [rbp + 0x58]
call fcn.18017e6c0
movsxd rdi, edi
mov rax, qword [rbp + 0x58]
add rdi, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.18037edb0
mov byte [rdi + r14], 0
mov edi, dword [rbp + 0x48]
mov r14, qword [rbp + 0x58]
cmp byte [r13 + 0x10], 0
je 0x18016e847
mov rax, qword [rbp - 0x20]
mov qword [rsi], rax
mov rsi, rax
jmp 0x18016e6a3
sub ecx, ebx
test ecx, ecx
jle 0x18016eabd
mov rax, qword [r14]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], 0
jne 0x18016ea87
movsxd r14, ecx
lea rdx, [r14 + rdi]
mov rcx, qword [rbp + 0x58]
call fcn.18017e6c0
movsxd rdi, edi
mov rax, qword [rbp + 0x58]
add rdi, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.18037edb0
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 0x18016eae7
mov al, 0x40
test al, dl
je 0x18016eae7
cmp al, 8
jbe 0x18016eae7
inc rcx
mov qword [r13 + 8], rcx
shr al, 1
test dl, al
jne 0x18016ead6
mov rax, qword [rbp - 0x20]
mov qword [rsi], rax
mov rsi, rax
jmp 0x18016e6a3
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 0x18016eb1c
inc r12d
cmp r12d, 4
jl 0x18016eb00
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp - 0x18]
call fcn.18017e320
nop
mov r8, rax
lea rdx, str.expected__after_attribute_
lea rcx, [rbp + 0x48]
call fcn.180193500
mov rdi, rax
mov qword [rbp + 0x58], rax
lea r8, [0x1803ac6b5]
lea rdx, [0x1803ac6b4]
mov rcx, rax
call fcn.18017cea0
mov rcx, qword [rdi]
mov qword [rbp + 0x58], rcx
lea rbx, [rcx - 0x10]
lea rsi, [0x180660020]
cmp rbx, rsi
je 0x18016eb76
lock inc dword [rbx]
mov rcx, qword [rdi]
add rcx, 0xfffffffffffffff0
mov r14, 0xffffffffffffffff
cmp rcx, rsi
je 0x18016eb9c
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x18016eb9c
call fcn.18011d9c0
xor r8d, r8d
lea rdx, [rbp + 0x58]
mov rcx, r13
call fcn.18016fd40
cmp rbx, rsi
je 0x18016ebc7
mov eax, r14d
lock xadd dword [rbx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016ebc7
mov rcx, rbx
call fcn.18011d9c0
nop
mov rcx, qword [rbp - 0x18]
add rcx, 0xfffffffffffffff0
cmp rcx, rsi
je 0x18016ebe7
lock xadd dword [rcx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x18016ebe7
call fcn.18011d9c0
mov rax, qword [rbp + 0x60]
jmp 0x18016e647
cmp byte [r13 + 0x10], 0
jne 0x18016ebe7
lea rdx, str.illegal_character_found_in
lea rcx, [rbp + 0x58]
call fcn.18001d070
nop
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp + 0x58]
call fcn.1801936e0
mov rcx, qword [rax]
mov qword [rbp + 0x48], rcx
add rcx, 0xfffffffffffffff0
lea rsi, [0x180660020]
cmp rcx, rsi
je 0x18016ec2f
lock inc dword [rcx]
mov rcx, qword [rbp + 0x58]
add rcx, 0xfffffffffffffff0
mov r14, 0xffffffffffffffff
cmp rcx, rsi
je 0x18016ec56
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x18016ec56
call fcn.18011d9c0
lea rax, [rbp + 0x48]
mov qword [rbp + 0x58], rax
lea r8, [0x1803ac6df]
lea rdx, [0x1803ac6dc]
lea rcx, [rbp + 0x48]
call fcn.18017cea0
mov rax, qword [rbp + 0x48]
mov qword [rbp - 0x20], rax
lea rcx, [rax - 0x10]
cmp rcx, rsi
je 0x18016ec8d
lock inc dword [rcx]
mov rax, qword [rbp + 0x48]
lea rcx, [rax - 0x10]
cmp rcx, rsi
je 0x18016eca9
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016eca9
call fcn.18011d9c0
mov r8d, ebx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x18]
call fcn.18017cc60
mov rdi, rax
mov qword [rbp + 0x58], rax
lea r8, [0x1803ac6d9]
lea rdx, [0x1803ac6d8]
mov rcx, rax
call fcn.18017cea0
mov rcx, qword [rdi]
mov qword [rbp + 0x58], rcx
lea rbx, [rcx - 0x10]
cmp rbx, rsi
je 0x18016ece9
lock inc dword [rbx]
mov rcx, qword [rdi]
sub rcx, 0x10
cmp rcx, rsi
je 0x18016ed08
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18016ed08
call fcn.18011d9c0
xor r8d, r8d
lea rdx, [rbp + 0x58]
mov rcx, r13
call fcn.18016fd40
cmp rbx, rsi
je 0x18016ebe7
lock xadd dword [rbx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x18016ebe7
mov rcx, rbx
call fcn.18011d9c0
mov rax, qword [rbp + 0x60]
jmp 0x18016e647
mov rax, qword [r13 + 8]
movzx edx, byte [rax]
inc rax
mov qword [r13 + 8], rax
test dl, dl
jns 0x18016ed72
mov cl, 0x40
test cl, dl
je 0x18016ed72
nop dword [rax + rax]
cmp cl, 8
jbe 0x18016ed72
inc rax
mov qword [r13 + 8], rax
shr cl, 1
test dl, cl
jne 0x18016ed60
cmp byte [rbp + 0x50], 0
je 0x18016ebe7
mov rdx, qword [rbp + 0x60]
mov rcx, r13
call fcn.18016d4e0
mov rax, qword [rbp + 0x60]
jmp 0x18016e647