// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::expression<double>::control_block::~control_block()
~control_block()
         {
            if (expr && details::branch_deletable(expr))
            {
               destroy_node(expr);
            }

            if (!local_data_list.empty())
            {
               for (std::size_t i = 0; i < local_data_list.size(); ++i)
               {
                  switch (local_data_list[i].type)
                  {
                     case e_expr      : delete reinterpret_cast<expression_ptr>(local_data_list[i].pointer);
                                        break;

                     case e_vecholder : delete reinterpret_cast<vector_holder_ptr>(local_data_list[i].pointer);
                                        break;

                     case e_data      : delete reinterpret_cast<T*>(local_data_list[i].pointer);
                                        break;

                     case e_vecdata   : delete [] reinterpret_cast<T*>(local_data_list[i].pointer);
                                        break;

                     case e_string    : delete reinterpret_cast<std::string*>(local_data_list[i].pointer);
                                        break;

                     default          : break;
                  }
               }
            }

            if (results)
            {
               delete results;
            }
         }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
cmpq $0x0, 0x8(%rax)
je 0x23c58a
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x23c7e0
movb %al, 0x4f(%rsp)
jmp 0x23c56e
movb 0x4f(%rsp), %al
testb $0x1, %al
jne 0x23c578
jmp 0x23c58a
movq 0x50(%rsp), %rdi
addq $0x8, %rdi
callq 0x23c830
jmp 0x23c588
jmp 0x23c58a
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
callq 0x23c850
testb $0x1, %al
jne 0x23c729
movq $0x0, 0x58(%rsp)
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x40(%rsp)
addq $0x10, %rdi
callq 0x23c8a0
movq %rax, %rcx
movq 0x40(%rsp), %rax
cmpq %rcx, %rax
jae 0x23c727
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
movq 0x58(%rsp), %rsi
callq 0x23c8c0
movl 0x8(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, 0x38(%rsp)
subl $0x4, %eax
ja 0x23c710
movq 0x38(%rsp), %rax
leaq 0x35ebda(%rip), %rcx    # 0x59b1e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
movq 0x58(%rsp), %rsi
callq 0x23c8c0
movq (%rax), %rax
movq %rax, 0x30(%rsp)
cmpq $0x0, %rax
je 0x23c63b
movq 0x30(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x23c712
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
movq 0x58(%rsp), %rsi
callq 0x23c8c0
movq (%rax), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, %rax
je 0x23c670
movq 0x28(%rsp), %rdi
movl $0x48, %esi
callq 0x11b130
jmp 0x23c712
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
movq 0x58(%rsp), %rsi
callq 0x23c8c0
movq (%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, %rax
je 0x23c6a5
movq 0x20(%rsp), %rdi
movl $0x8, %esi
callq 0x11b130
jmp 0x23c712
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
movq 0x58(%rsp), %rsi
callq 0x23c8c0
movq (%rax), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, %rax
je 0x23c6d2
movq 0x18(%rsp), %rdi
callq 0x11b300
jmp 0x23c712
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
movq 0x58(%rsp), %rsi
callq 0x23c8c0
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x23c70e
movq 0x10(%rsp), %rdi
callq 0x11b838
movq 0x10(%rsp), %rdi
movl $0x20, %esi
callq 0x11b130
jmp 0x23c712
jmp 0x23c712
jmp 0x23c714
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x23c5a9
jmp 0x23c729
movq 0x50(%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x23c764
movq 0x50(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x23c762
movq 0x8(%rsp), %rdi
callq 0x23c8e0
movq 0x8(%rsp), %rdi
movl $0x20, %esi
callq 0x11b130
jmp 0x23c764
movq 0x50(%rsp), %rdi
addq $0x10, %rdi
callq 0x23c900
addq $0x68, %rsp
retq
movq %rax, %rdi
callq 0x22cbc0
nop