// File: /workspace/github_cpp_makefile_star2_O3/cla7aye15I4nd[P]basic_interpreter/./lib/program.hpp
// Function: basic::basic_interpreter::execute(basic::basic_interpreter::step)
int execute(step s) {
            //step& s = program[line_number];

            switch (s.type) {
            case 4: return -1;
            case 5:
                ASSERT(program.count(to_int(s.expr[0])), LINE_NUMBER_ERROR);
                return to_int(s.expr[0]);
            case 1: assign(s.expr.begin(), s.expr.end()); break;
            case 6:
                if (compare(s.expr.begin(), s.expr.end() - 2))
                    return to_int(*s.expr.rbegin());
                break;
            case 2: print(eval(s.expr.begin(), s.expr.end())); break;
            case 3: input(*(s.expr.begin()));
            }

            return 0;
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movl (%rsi), %eax
decl %eax
cmpl $0x5, %eax
ja 0x3787
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x2a22(%rip), %rcx      # 0x6004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x8(%r14), %r15
movq 0x10(%r14), %rax
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x40(%r15), %rax
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x394a
movl %eax, %ebp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3be6
movl %ebp, (%rax)
jmp 0x3787
movq 0x8(%r14), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
movb (%rax), %cl
xorl %esi, %esi
cmpb $0x2d, %cl
sete %sil
xorl %r8d, %r8d
cmpq %rsi, %rdx
jbe 0x3660
xorl %r8d, %r8d
movq %rsi, %rdi
leal (%r8,%r8,4), %r8d
movsbl (%rax,%rdi), %r9d
leal (%r9,%r8,2), %r8d
addl $-0x30, %r8d
incq %rdi
cmpq %rdi, %rdx
jne 0x3647
movl %r8d, %edi
negl %edi
cmpb $0x2d, %cl
cmovnel %r8d, %edi
movq 0x48(%rbx), %r8
testq %r8, %r8
je 0x3794
addq $0x40, %rbx
movq %rbx, %r9
xorl %r10d, %r10d
cmpl %edi, 0x20(%r8)
setl %r10b
cmovgeq %r8, %r9
movq 0x10(%r8,%r10,8), %r8
testq %r8, %r8
jne 0x3680
cmpq %rbx, %r9
je 0x3794
cmpl 0x20(%r9), %edi
jl 0x3794
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x377b
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rax,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x36b9
jmp 0x377b
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x3aa8
jmp 0x3787
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x3789
movq 0x8(%r14), %rax
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
movq 0x10(%r14), %rax
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rbx, %rdi
callq 0x394a
movq %rbx, %rdi
movl %eax, %esi
callq 0x3912
jmp 0x3787
movq 0x8(%r14), %rax
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
movq 0x10(%r14), %rax
addq $-0x40, %rax
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rbx, %rdi
callq 0x37b0
testb %al, %al
je 0x3787
movq 0x10(%r14), %rcx
movq -0x20(%rcx), %rax
movq -0x18(%rcx), %rdx
movb (%rax), %cl
xorl %esi, %esi
cmpb $0x2d, %cl
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x377b
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rax,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x3764
movl %edi, %eax
negl %eax
cmpb $0x2d, %cl
cmovnel %edi, %eax
jmp 0x3789
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x1, %edi
callq 0x20d0
leaq 0x55fb(%rip), %rsi      # 0x8da0
movq %rax, %rdi
xorl %edx, %edx
callq 0x2280
nop