// File: cla7aye15I4nd[P]basic_interpreter/./lib/program.hpp
// Function: basic::basic_interpreter::run()
void run() {
            try {
                auto ptr = program.begin();
                while (ptr != program.end()) {
                    int ret = execute(ptr -> second);
                    switch (ret) {
                    case -1: return;
                    case  0: ptr++; break;
                    default: ptr = program.find(ret);
                    }
                }
            } catch(eDIVIDE_BY_ZERO) {
                std::cout << "DIVIDE BY ZERO" << std::endl;
            } catch(eINVALID_NUMBER) {
                std::cout << "INVALID NUMBER" << std::endl;
            } catch(eVARIABLE_NOT_DEFINED) {
                std::cout << "VARIABLE NOT DEFINED" << std::endl;
            } catch(eLINE_NUMBER_ERROR) {
                std::cout << "LINE NUMBER ERROR" << std::endl;
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x70(%rbp)
addq $0x38, %rdi
callq 0x6410
movq %rax, -0x10(%rbp)
movq -0x70(%rbp), %rdi
addq $0x38, %rdi
callq 0x6470
movq %rax, -0x18(%rbp)
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x6440
testb $0x1, %al
jne 0x59db
jmp 0x5beb
leaq -0x10(%rbp), %rdi
callq 0x66a0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x40(%rbp), %rdi
callq 0x66c0
jmp 0x59f6
movq -0x70(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x64a0
movl %eax, -0x74(%rbp)
jmp 0x5a08
leaq -0x40(%rbp), %rdi
callq 0x52c0
movl -0x74(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x78(%rbp)
subl $-0x1, %eax
je 0x5ba3
jmp 0x5a28
movl -0x78(%rbp), %eax
testl %eax, %eax
je 0x5ba8
jmp 0x5bb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5a5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x52c0
movl -0x4c(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl $0x4, %ecx
cmpl %ecx, %eax
jne 0x5ab2
movq -0x48(%rbp), %rdi
callq 0x30d0
movq 0x14556(%rip), %rdi     # 0x19fd0
leaq 0xb655(%rip), %rsi      # 0x110d6
callq 0x3230
movq %rax, -0x88(%rbp)
jmp 0x5a8f
movq -0x88(%rbp), %rdi
movq 0x14523(%rip), %rsi     # 0x19fc0
callq 0x3270
jmp 0x5aa4
callq 0x33a0
addq $0xb0, %rsp
popq %rbp
retq
movl -0x7c(%rbp), %eax
movl $0x3, %ecx
cmpl %ecx, %eax
jne 0x5aff
movq -0x48(%rbp), %rdi
callq 0x30d0
movq 0x14502(%rip), %rdi     # 0x19fd0
leaq 0xb5f2(%rip), %rsi      # 0x110c7
callq 0x3230
movq %rax, -0x90(%rbp)
jmp 0x5ae3
movq -0x90(%rbp), %rdi
movq 0x144cf(%rip), %rsi     # 0x19fc0
callq 0x3270
jmp 0x5af8
callq 0x33a0
jmp 0x5aa9
movl -0x7c(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x5b4f
movq -0x48(%rbp), %rdi
callq 0x30d0
movq 0x144b5(%rip), %rdi     # 0x19fd0
leaq 0xb590(%rip), %rsi      # 0x110b2
callq 0x3230
movq %rax, -0x98(%rbp)
jmp 0x5b30
movq -0x98(%rbp), %rdi
movq 0x14482(%rip), %rsi     # 0x19fc0
callq 0x3270
jmp 0x5b45
callq 0x33a0
jmp 0x5aa9
movl -0x7c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x5c44
movq -0x48(%rbp), %rdi
callq 0x30d0
movq 0x14461(%rip), %rdi     # 0x19fd0
leaq 0xb52a(%rip), %rsi      # 0x110a0
callq 0x3230
movq %rax, -0xa0(%rbp)
jmp 0x5b84
movq -0xa0(%rbp), %rdi
movq 0x1442e(%rip), %rsi     # 0x19fc0
callq 0x3270
jmp 0x5b99
callq 0x33a0
jmp 0x5aa9
jmp 0x5aa9
leaq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x6700
movq %rax, -0x58(%rbp)
jmp 0x5be6
movq -0x70(%rbp), %rdi
addq $0x38, %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6740
movq %rax, -0xa8(%rbp)
jmp 0x5bd3
movq -0xa8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x59b4
jmp 0x5aa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x33a0
jmp 0x5c03
jmp 0x5c44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x33a0
jmp 0x5c18
jmp 0x5c44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x33a0
jmp 0x5c2d
jmp 0x5c44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x33a0
jmp 0x5c42
jmp 0x5c44
movq -0x48(%rbp), %rdi
callq 0x33e0
movq %rax, %rdi
callq 0x4a30
nopw %cs:(%rax,%rax)
nop