// File: /workspace/github_c_makefile_star2_O2/jtuu[P]quesler/src/vm.c
// Function: interpret_bytecode
InterpretResult interpret_bytecode(Chunk* chunk) {
    vm.chunk = chunk;
    vm.ip = vm.chunk->code + vm.chunk->labels[entry_point_label];

    InterpretResult result = run();

    return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rdi, 0xe1dc(%rip)      # 0x15778
movq 0x38(%rdi), %rax
leaq 0xdfe9(%rip), %rcx      # 0x15590
movq (%rcx), %rcx
movslq (%rax,%rcx,4), %rax
addq 0x10(%rdi), %rax
leaq 0xf5d7(%rip), %r12      # 0x16b90
leaq 0xe1b8(%rip), %r13      # 0x15778
leaq 0x2ab9(%rip), %r14      # 0xa080
leaq 0x1(%rax), %rcx
movq %rcx, 0xe1ae(%rip)      # 0x15780
movzbl (%rax), %ecx
movl %ecx, %edx
andb $-0x2, %dl
cmpb $-0x8, %dl
jne 0x75f6
movzwl %cx, %edx
shll $0x8, %edx
leaq 0x2(%rax), %rcx
movq %rcx, 0xe190(%rip)      # 0x15780
movzbl 0x1(%rax), %ecx
orl %edx, %ecx
movzwl %cx, %r15d
movl %r15d, %edi
callq 0x639c
testq %rax, %rax
je 0x7dc4
movl 0x10(%rax), %ebx
cmpl $0x1, %ebx
jne 0x764f
movq 0xf5f6(%rip), %rcx      # 0x16c10
addq $-0x10, %rcx
xorl %edx, %edx
cmpq $0x80, %rdx
je 0x7648
leaq (%rsp,%rdx), %rsi
addq $0x50, %rsi
movq %rcx, 0xf5d8(%rip)      # 0x16c10
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
addq $-0x10, %rcx
addq $0x10, %rdx
jmp 0x7620
movq %r12, 0xf5c1(%rip)      # 0x16c10
leal -0x9(%r15), %ecx
cmpl $0x45, %ecx
ja 0x771c
movslq (%r14,%rcx,4), %rcx
addq %r14, %rcx
jmpq *%rcx
movl %ebx, %ebp
movq 0xe112(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xe107(%rip)      # 0x15780
movzbl (%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0xe0f9(%rip)      # 0x15780
movzbl 0x1(%rax), %edx
shll $0x4, %ecx
movl 0x18(%rcx,%r13), %esi
shll $0x4, %edx
movl 0x18(%rdx,%r13), %edx
leaq 0x4(%rax), %rcx
movq %rcx, 0xe0da(%rip)      # 0x15780
movzbl 0x2(%rax), %ebx
movzbl 0x3(%rax), %r14d
jmp 0x76f4
movl %ebx, %ebp
movq 0xe0c6(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xe0bb(%rip)      # 0x15780
movzbl (%rax), %ecx
shll $0x4, %ecx
movl 0x18(%rcx,%r13), %esi
leaq 0x5(%rax), %rcx
movq %rcx, 0xe0a5(%rip)      # 0x15780
movl 0x1(%rax), %edx
bswapl %edx
leaq 0x7(%rax), %rcx
movq %rcx, 0xe095(%rip)      # 0x15780
movzbl 0x5(%rax), %ebx
movzbl 0x6(%rax), %r14d
movl %r15d, %edi
callq 0x7e7f
testb %al, %al
je 0x770e
shll $0x8, %ebx
orq %r14, %rbx
movq %rbx, %rdi
callq 0x7e43
leaq 0x296b(%rip), %r14      # 0xa080
movl %ebp, %ebx
jmp 0x7d6d
cmpl $0xf923, %r15d          # imm = 0xF923
je 0x7b58
cmpl $0x5a, %r15d
je 0x7b78
cmpl $0x5e, %r15d
je 0x7d6d
cmpl $0x1, %r15d
jne 0x7d85
leaq 0xf03a(%rip), %rax      # 0x16788
cmpq %rax, 0xf433(%rip)      # 0x16b88
je 0x7de4
callq 0x7535
movq 0xe011(%rip), %rax      # 0x15778
movslq %edx, %rcx
addq 0x10(%rax), %rcx
movq %rcx, 0xe00b(%rip)      # 0x15780
jmp 0x7d6d
movq 0xdfff(%rip), %rax      # 0x15780
leaq 0x2(%rax), %rcx
movq %rcx, 0xdff4(%rip)      # 0x15780
movzwl (%rax), %eax
rolw $0x8, %ax
movzwl %ax, %edi
callq 0x7e43
jmp 0x7d6d
movq 0xdfd9(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdfce(%rip)      # 0x15780
movzbl (%rax), %ecx
shll $0x4, %ecx
movl 0x18(%rcx,%r13), %edx
leaq 0x5(%rax), %rsi
movq %rsi, 0xdfb8(%rip)      # 0x15780
movl 0x1(%rax), %eax
bswapl %eax
imull %edx, %eax
jmp 0x7b09
movl %ebx, %ebp
movq 0xdfa2(%rip), %rcx      # 0x15780
leaq 0x2(%rcx), %rax
movq %rax, 0xdf97(%rip)      # 0x15780
movzwl (%rcx), %edx
rolw $0x8, %dx
movq 0xdf81(%rip), %rcx      # 0x15778
movq 0x38(%rcx), %rsi
movzwl %dx, %edx
movslq (%rsi,%rdx,4), %rbx
testq %rbx, %rbx
js 0x7da3
subl 0x10(%rcx), %eax
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
movq 0x18(%rsp), %rsi
andq %rcx, %rsi
orq %rax, %rsi
pushq $0x1
popq %rdi
movq %rsi, 0x18(%rsp)
callq 0x74e6
movq 0xdf41(%rip), %rax      # 0x15778
addq 0x10(%rax), %rbx
movq %rbx, 0xdf3e(%rip)      # 0x15780
jmp 0x7715
movq 0xdf32(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdf27(%rip)      # 0x15780
movzbl (%rax), %eax
shll $0x4, %eax
movl 0x10(%rax,%r13), %ecx
movq 0x18(%rax,%r13), %rax
movq 0xf3a0(%rip), %rdx      # 0x16c10
movl %ecx, (%rdx)
movq %rax, 0x8(%rdx)
jmp 0x7b4b
movq 0xdefe(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdef3(%rip)      # 0x15780
movzbl (%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0xdee5(%rip)      # 0x15780
movzbl 0x1(%rax), %eax
shll $0x4, %ecx
shll $0x4, %eax
movl 0x18(%rax,%r13), %eax
imull 0x18(%rcx,%r13), %eax
jmp 0x7b09
movq 0xdec4(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdeb9(%rip)      # 0x15780
movzbl (%rax), %ecx
shll $0x4, %ecx
movl 0x18(%rcx,%r13), %edx
leaq 0x5(%rax), %rsi
movq %rsi, 0xdea3(%rip)      # 0x15780
movl 0x1(%rax), %eax
bswapl %eax
subl %eax, %edx
movl $0x1, 0x10(%rcx,%r13)
movl %edx, 0x18(%rcx,%r13)
jmp 0x7d6d
movq 0xde82(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xde77(%rip)      # 0x15780
movzbl (%rax), %ecx
shll $0x4, %ecx
movl 0x18(%rcx,%r13), %edx
leaq 0x5(%rax), %rsi
movq %rsi, 0xde61(%rip)      # 0x15780
movl 0x1(%rax), %eax
bswapl %eax
addl %edx, %eax
jmp 0x7b09
movq 0xde4e(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xde43(%rip)      # 0x15780
movzbl (%rax), %ecx
leaq 0x5(%rax), %rdx
movq %rdx, 0xde35(%rip)      # 0x15780
movl 0x1(%rax), %eax
bswapl %eax
shll $0x4, %ecx
jmp 0x7b09
movq 0xde21(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xde16(%rip)      # 0x15780
movzbl (%rax), %eax
shll $0x4, %eax
xorl %ecx, %ecx
cmpl $0x0, 0x18(%rax,%r13)
sete %cl
movl %ecx, 0x18(%rax,%r13)
jmp 0x7d6d
movq 0xddf4(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdde9(%rip)      # 0x15780
movzbl (%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0xdddb(%rip)      # 0x15780
movzbl 0x1(%rax), %eax
shll $0x4, %ecx
shll $0x4, %eax
movl 0x18(%rax,%r13), %eax
movl $0x1, 0x10(%rcx,%r13)
addl %eax, 0x18(%rcx,%r13)
jmp 0x7d6d
movq 0xddb2(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdda7(%rip)      # 0x15780
movzbl (%rax), %eax
shll $0x4, %eax
movl 0x10(%rax,%r13), %edi
movq 0x18(%rax,%r13), %rsi
callq 0x74e6
jmp 0x7d6d
movq 0xdd86(%rip), %rcx      # 0x15780
leaq 0x1(%rcx), %rax
movq %rax, 0xdd7b(%rip)      # 0x15780
movzbl (%rcx), %esi
shll $0x4, %esi
movl 0x18(%rsi,%r13), %eax
leaq 0x5(%rcx), %rdx
movq %rdx, 0xdd65(%rip)      # 0x15780
movl 0x1(%rcx), %ecx
bswapl %ecx
cltd
idivl %ecx
movl $0x1, 0x10(%rsi,%r13)
movl %eax, 0x18(%rsi,%r13)
jmp 0x7d6d
movq 0xdd43(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdd38(%rip)      # 0x15780
movzbl (%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0xdd2a(%rip)      # 0x15780
movzbl 0x1(%rax), %eax
shll $0x4, %ecx
shll $0x4, %eax
movl 0x18(%rax,%r13), %eax
movl $0x1, 0x10(%rcx,%r13)
subl %eax, 0x18(%rcx,%r13)
jmp 0x7d6d
movq 0xdd01(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdcf6(%rip)      # 0x15780
movl %ebx, %ebp
movzbl (%rax), %ebx
shll $0x4, %ebx
callq 0x7535
movl %eax, 0x10(%rbx,%r13)
movq %rdx, 0x18(%rbx,%r13)
jmp 0x7715
movq 0xdcd3(%rip), %rax      # 0x15780
movq %rax, %rcx
cmpw $0x0, (%rcx)
leaq 0x2(%rcx), %rcx
jne 0x7ab0
movq %rcx, 0xdcbf(%rip)      # 0x15780
movq 0xf148(%rip), %rcx      # 0x16c10
movl $0x6, (%rcx)
movq %rax, 0x8(%rcx)
jmp 0x7b4b
movq 0xdca5(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdc9a(%rip)      # 0x15780
movzbl (%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0xdc8c(%rip)      # 0x15780
movzbl 0x1(%rax), %esi
shll $0x4, %ecx
movl 0x18(%rcx,%r13), %eax
shll $0x4, %esi
cltd
idivl 0x18(%rsi,%r13)
movl $0x1, 0x10(%rcx,%r13)
movl %eax, 0x18(%rcx,%r13)
jmp 0x7d6d
movq 0xdc5d(%rip), %rax      # 0x15780
leaq 0x1(%rax), %rcx
movq %rcx, 0xdc52(%rip)      # 0x15780
movq 0x20(%rsp), %rcx
movb (%rax), %cl
movq 0xf0d4(%rip), %rax      # 0x16c10
movl $0x3, (%rax)
movq %rcx, 0x20(%rsp)
movq %rcx, 0x8(%rax)
addq $0x10, 0xf0bd(%rip)     # 0x16c10
jmp 0x7d6d
movslq 0x58(%rsp), %rax
shlq $0x4, %rax
movl $0x1, 0x10(%rax,%r13)
movl $0x7b, 0x18(%rax,%r13)
jmp 0x7d6d
movl %ebx, 0x14(%rsp)
xorl %edx, %edx
movq 0x58(%rsp), %r14
xorl %r15d, %r15d
xorl %ebp, %ebp
xorl %r13d, %r13d
xorl %ebx, %ebx
xorl %r12d, %r12d
movzwl (%r14), %eax
testl %eax, %eax
je 0x7d33
cmpb $0x3c, %al
je 0x7c4e
movsbl %al, %ecx
cmpl $0x3e, %ecx
jne 0x7c56
cmpl $0x1, %edx
jne 0x7ced
xorl %eax, %eax
imull $0xa, %eax, %eax
movzwl (%rbx), %ecx
addl %ecx, %eax
addl $-0x30, %eax
addq $0x2, %rbx
cmpq %r14, %rbx
jb 0x7bbb
movzbl %al, %eax
shll $0x4, %eax
leaq 0xdb9c(%rip), %rcx      # 0x15778
movl 0x18(%rax,%rcx), %ecx
movq %rbp, 0x8(%rsp)
xorl %r12d, %r12d
pushq $0xa
popq %rsi
movl %ecx, %eax
cltd
idivl %esi
addl $0x30, %edx
movw %dx, 0x42(%rsp,%r12)
movl %ecx, %eax
xorl %edx, %edx
divl %esi
addq $-0x2, %r12
incq %rbp
cmpl $0x9, %ecx
movl %eax, %ecx
jg 0x7beb
leaq (%rsp,%r12), %rax
addq $0x44, %rax
movq %rax, 0x28(%rsp)
leaq 0x1(%rbp), %rbx
cmpq %rbx, %r13
jae 0x7c7e
leaq (,%r13,2), %rsi
cmpq $0x8, %r13
movq %rsi, %r13
pushq $0x8
popq %rax
cmovbq %rax, %r13
leaq (,%r13,2), %rdx
movq %r15, %rdi
callq 0x62c0
movq %rax, %r15
jmp 0x7c1e
movq %r14, %r12
jmp 0x7ce4
testq %r12, %r12
je 0x7c9d
movq %r14, %rax
subq %r12, %rax
cmpq $0x2, %rax
jne 0x7ce4
orl $0x20, %ecx
cmpl $0x72, %ecx
jne 0x7d0b
leaq 0x2(%r14), %rbx
pushq $0x1
popq %rax
movl %eax, %edx
jmp 0x7ce4
movq 0x8(%rsp), %rax
leaq (%r15,%rax,2), %rdi
negq %r12
movq 0x28(%rsp), %rsi
movq %r12, %rdx
callq 0x4100
xorl %edx, %edx
xorl %ebx, %ebx
jmp 0x7ce1
leaq 0x2(%rbp), %rcx
cmpq %rcx, %r13
jae 0x7cd9
leaq (,%r13,2), %rsi
cmpq $0x8, %r13
movq %rsi, %r13
pushq $0x8
popq %rax
cmovbq %rax, %r13
movq %rdx, %r12
leaq (,%r13,2), %rdx
movq %r15, %rdi
callq 0x62c0
movq %r12, %rdx
movq %rax, %r15
movzwl (%r14), %eax
movw %ax, (%r15,%rbp,2)
incq %rbp
xorl %r12d, %r12d
addq $0x2, %r14
jmp 0x7b90
movq 0xd2fc(%rip), %rax      # 0x14ff0
movq (%rax), %rcx
leaq 0x259c(%rip), %rdi      # 0xa29a
pushq $0x17
popq %rsi
pushq $0x1
popq %rdx
callq 0x4170
jmp 0x7c97
movq 0xd2de(%rip), %rax      # 0x14ff0
movq (%rax), %rcx
leaq 0x257e(%rip), %rdi      # 0xa29a
pushq $0x17
popq %rsi
movq %rdx, 0x8(%rsp)
pushq $0x1
popq %rdx
callq 0x4170
movq 0x8(%rsp), %rdx
jmp 0x7ce4
andw $0x0, (%r15,%rbp,2)
pushq $0x6
popq %rdi
movq %r15, %rsi
callq 0x73dd
pushq $0xa
popq %rdi
callq 0x4040
movq %r15, %rdi
callq 0x4030
leaq 0xee35(%rip), %r12      # 0x16b90
leaq 0xda16(%rip), %r13      # 0x15778
leaq 0x2317(%rip), %r14      # 0xa080
movl 0x14(%rsp), %ebx
cmpl $0x1, %ebx
jne 0x7d79
movq %r12, 0xee97(%rip)      # 0x16c10
movq 0xda00(%rip), %rax      # 0x15780
jmp 0x75c7
movq 0xd264(%rip), %rcx      # 0x14ff0
movq (%rcx), %rdi
movq 0x8(%rax), %rdx
leaq 0x24ab(%rip), %rsi      # 0xa245
xorl %eax, %eax
callq 0x40e0
jmp 0x7d6d
movq 0xd246(%rip), %rax      # 0x14ff0
movq (%rax), %rcx
leaq 0x2478(%rip), %rdi      # 0xa22c
pushq $0x18
popq %rsi
pushq $0x1
popq %rdx
callq 0x4170
jmp 0x7715
movq 0xd225(%rip), %rax      # 0x14ff0
movq (%rax), %rdi
leaq 0x243c(%rip), %rsi      # 0xa211
movl %r15d, %edx
xorl %eax, %eax
callq 0x40e0
pushq $0x2
popq %rax
jmp 0x7de6
xorl %eax, %eax
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq