// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::cleanup_escapes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
inline bool cleanup_escapes(std::string& s)
      {
         typedef std::string::iterator str_itr_t;

         str_itr_t itr1 = s.begin();
         str_itr_t itr2 = s.begin();
         str_itr_t end  = s.end  ();

         std::size_t removal_count  = 0;

         while (end != itr1)
         {
            if ('\\' == (*itr1))
            {
               if (end == ++itr1)
               {
                  return false;
               }
               else if (parse_hex(itr1, end, *itr2))
               {
                  itr1 += 4;
                  itr2 += 1;
                  removal_count += 4;
               }
               else if ('a' == (*itr1)) { (*itr2++) = '\a'; ++itr1; ++removal_count; }
               else if ('b' == (*itr1)) { (*itr2++) = '\b'; ++itr1; ++removal_count; }
               else if ('f' == (*itr1)) { (*itr2++) = '\f'; ++itr1; ++removal_count; }
               else if ('n' == (*itr1)) { (*itr2++) = '\n'; ++itr1; ++removal_count; }
               else if ('r' == (*itr1)) { (*itr2++) = '\r'; ++itr1; ++removal_count; }
               else if ('t' == (*itr1)) { (*itr2++) = '\t'; ++itr1; ++removal_count; }
               else if ('v' == (*itr1)) { (*itr2++) = '\v'; ++itr1; ++removal_count; }
               else if ('0' == (*itr1)) { (*itr2++) = '\0'; ++itr1; ++removal_count; }
               else
               {
                  (*itr2++) = (*itr1++);
                  ++removal_count;
               }

               continue;
            }
            else
               (*itr2++) = (*itr1++);
         }

         if ((removal_count > s.size()) || (0 == removal_count))
            return false;

         s.resize(s.size() - removal_count);

         return true;
      }

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xa8(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x11b3a0
movq %rax, 0xa0(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x11b3a0
movq %rax, 0x98(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x11b440
movq %rax, 0x90(%rsp)
movq $0x0, 0x88(%rsp)
leaq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x378090
testb $0x1, %al
jne 0x377ad8
jmp 0x377f5a
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x5c, %eax
cmpl %ecx, %eax
jne 0x377f0d
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq %rax, %rsi
leaq 0x90(%rsp), %rdi
callq 0x374bb0
testb $0x1, %al
jne 0x377b18
jmp 0x377b25
movb $0x0, 0xb7(%rsp)
jmp 0x377fce
movq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x374cf0
movq %rax, %rdx
movq 0x80(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x3780d0
testb $0x1, %al
jne 0x377b60
jmp 0x377b9d
leaq 0xa0(%rsp), %rdi
movl $0x4, %esi
callq 0x3782e0
leaq 0x98(%rsp), %rdi
movl $0x1, %esi
callq 0x3782e0
movq 0x88(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x88(%rsp)
jmp 0x377f06
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x61, %eax
cmpl %ecx, %eax
jne 0x377bfd
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x78(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x374cf0
movb $0x7, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377f04
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x62, %eax
cmpl %ecx, %eax
jne 0x377c5d
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x70(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x374cf0
movb $0x8, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377f02
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x66, %eax
cmpl %ecx, %eax
jne 0x377cbd
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x68(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x374cf0
movb $0xc, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377f00
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x6e, %eax
cmpl %ecx, %eax
jne 0x377d1d
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x60(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x374cf0
movb $0xa, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377efe
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x72, %eax
cmpl %ecx, %eax
jne 0x377d7d
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x58(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x374cf0
movb $0xd, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377efc
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x74, %eax
cmpl %ecx, %eax
jne 0x377ddd
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x374cf0
movb $0x9, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377efa
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x76, %eax
cmpl %ecx, %eax
jne 0x377e3d
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x48(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x374cf0
movb $0xb, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377ef8
leaq 0xa0(%rsp), %rdi
callq 0x374cf0
movsbl (%rax), %ecx
movl $0x30, %eax
cmpl %ecx, %eax
jne 0x377e9a
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x40(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x374cf0
movb $0x0, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x374c90
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377ef6
leaq 0xa0(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x38(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x374cf0
movb (%rax), %al
movb %al, 0x1f(%rsp)
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x374cf0
movb 0x1f(%rsp), %cl
movb %cl, (%rax)
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x377ef8
jmp 0x377efa
jmp 0x377efc
jmp 0x377efe
jmp 0x377f00
jmp 0x377f02
jmp 0x377f04
jmp 0x377f06
jmp 0x377f08
jmp 0x377aba
leaq 0xa0(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
callq 0x374cf0
movb (%rax), %al
movb %al, 0x1e(%rsp)
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x378300
movq %rax, 0x20(%rsp)
leaq 0x20(%rsp), %rdi
callq 0x374cf0
movb 0x1e(%rsp), %cl
movb %cl, (%rax)
jmp 0x377aba
movq 0x88(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x11b270
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
ja 0x377f8d
xorl %eax, %eax
cmpq 0x88(%rsp), %rax
jne 0x377f97
movb $0x0, 0xb7(%rsp)
jmp 0x377fce
movq 0xa8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x11b270
movq 0x8(%rsp), %rdi
movq %rax, %rsi
subq 0x88(%rsp), %rsi
callq 0x11b350
movb $0x1, 0xb7(%rsp)
movb 0xb7(%rsp), %al
andb $0x1, %al
addq $0xb8, %rsp
retq
nop