LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_addb_imm8_imm8_to_r3
void vm_insn_addb_imm8_imm8_to_r3(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_ADDB_IMM8_IMM8_TO_R3);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 + op2;

  vm->regs->gp->r3->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r3->val =
      !vm->regs->gp->r3->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x43, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x1f4f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x1f5e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x1f9b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x1faa
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2005
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x201c
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_subb_imm8_imm8_to_r0
void vm_insn_subb_imm8_imm8_to_r0(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_SUBB_IMM8_IMM8_TO_R0);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 - op2;

  vm->regs->gp->r0->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r0->val =
      !vm->regs->gp->r0->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x44, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x209f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x20ae
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x20eb
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x20fa
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2153
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x216a
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_subb_imm8_imm8_to_r1
void vm_insn_subb_imm8_imm8_to_r1(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_SUBB_IMM8_IMM8_TO_R1);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 - op2;

  vm->regs->gp->r1->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r1->val =
      !vm->regs->gp->r1->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x45, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x21ef
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x21fe
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x223b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x224a
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x22a5
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x22bc
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_subb_imm8_imm8_to_r2
void vm_insn_subb_imm8_imm8_to_r2(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_SUBB_IMM8_IMM8_TO_R2);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 - op2;

  vm->regs->gp->r2->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r2->val =
      !vm->regs->gp->r2->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x46, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x233f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x234e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x238b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x239a
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x23f5
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x240c
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_subb_imm8_imm8_to_r3
void vm_insn_subb_imm8_imm8_to_r3(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_SUBB_IMM8_IMM8_TO_R3);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 - op2;

  vm->regs->gp->r3->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r3->val =
      !vm->regs->gp->r3->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x47, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x248f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x249e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x24db
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x24ea
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2545
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x255c
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_mulb_imm8_imm8_to_r1
void vm_insn_mulb_imm8_imm8_to_r1(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_MULB_IMM8_IMM8_TO_R1);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 * op2;

  vm->regs->gp->r1->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r1->val =
      !vm->regs->gp->r1->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x49, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x272f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x273e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x277b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x278a
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
imull %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x27e6
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x27fd
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_mulb_imm8_imm8_to_r2
void vm_insn_mulb_imm8_imm8_to_r2(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_MULB_IMM8_IMM8_TO_R2);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 * op2;

  vm->regs->gp->r2->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r2->val =
      !vm->regs->gp->r2->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x4a, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x287f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x288e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x28cb
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x28da
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
imull %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2936
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x294d
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_mulb_imm8_imm8_to_r3
void vm_insn_mulb_imm8_imm8_to_r3(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_MULB_IMM8_IMM8_TO_R3);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short res = op1 * op2;

  vm->regs->gp->r3->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r3->val =
      !vm->regs->gp->r3->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x4b, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x29cf
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x29de
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2a1b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x2a2a
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
imull %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2a86
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2a9d
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_divb_imm8_imm8_to_r0
void vm_insn_divb_imm8_imm8_to_r0(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_DIVB_IMM8_IMM8_TO_R0);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  if (!op2) {
    fprintf(stderr, "Division by zero.\n");
    return;
  }

  short res = op1 / op2;

  vm->regs->gp->r0->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r0->val =
      !vm->regs->gp->r0->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x4c, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2b1f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x2b2e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2b6b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x2b7a
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
cmpw $0x0, -0xc(%rbp)
jne 0x2ba5
movq 0xa469(%rip), %rax      # 0xcff8
movq (%rax), %rdi
leaq 0x746b(%rip), %rsi      # 0xa004
movb $0x0, %al
callq 0x10b0
jmp 0x2c26
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
cltd
idivl %ecx
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2bf8
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2c0f
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_divb_imm8_imm8_to_r1
void vm_insn_divb_imm8_imm8_to_r1(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_DIVB_IMM8_IMM8_TO_R1);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  if (!op2) {
    fprintf(stderr, "Division by zero.\n");
    return;
  }

  short res = op1 / op2;

  vm->regs->gp->r1->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r1->val =
      !vm->regs->gp->r1->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x4d, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2c8f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x2c9e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2cdb
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x2cea
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
cmpw $0x0, -0xc(%rbp)
jne 0x2d15
movq 0xa2f9(%rip), %rax      # 0xcff8
movq (%rax), %rdi
leaq 0x72fb(%rip), %rsi      # 0xa004
movb $0x0, %al
callq 0x10b0
jmp 0x2d99
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
cltd
idivl %ecx
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2d6a
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2d81
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_divb_imm8_imm8_to_r2
void vm_insn_divb_imm8_imm8_to_r2(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_DIVB_IMM8_IMM8_TO_R2);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  if (!op2) {
    fprintf(stderr, "Division by zero.\n");
    return;
  }

  short res = op1 / op2;

  vm->regs->gp->r2->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r2->val =
      !vm->regs->gp->r2->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x4e, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2dff
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x2e0e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2e4b
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x2e5a
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
cmpw $0x0, -0xc(%rbp)
jne 0x2e85
movq 0xa189(%rip), %rax      # 0xcff8
movq (%rax), %rdi
leaq 0x718b(%rip), %rsi      # 0xa004
movb $0x0, %al
callq 0x10b0
jmp 0x2f09
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
cltd
idivl %ecx
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2eda
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2ef1
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_divb_imm8_imm8_to_r3
void vm_insn_divb_imm8_imm8_to_r3(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_DIVB_IMM8_IMM8_TO_R3);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  if (!op2) {
    fprintf(stderr, "Division by zero.\n");
    return;
  }

  short res = op1 / op2;

  vm->regs->gp->r3->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r3->val =
      !vm->regs->gp->r3->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x4f, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2f6f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x2f7e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x2fbb
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x2fca
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
cmpw $0x0, -0xc(%rbp)
jne 0x2ff5
movq 0xa019(%rip), %rax      # 0xcff8
movq (%rax), %rdi
leaq 0x701b(%rip), %rsi      # 0xa004
movb $0x0, %al
callq 0x10b0
jmp 0x3079
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
cltd
idivl %ecx
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x304a
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3061
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_addb_imm8_r0_to_r0
void vm_insn_addb_imm8_r0_to_r0(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_ADDB_IMM8_R0_TO_R0);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 + op2;

  vm->regs->gp->r0->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r0->val =
      !vm->regs->gp->r0->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x50, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x30df
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x30ee
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3131
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x3145
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x319e
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x31b5
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_addb_imm8_r0_to_r1
void vm_insn_addb_imm8_r0_to_r1(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_ADDB_IMM8_R0_TO_R1);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 + op2;

  vm->regs->gp->r1->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r1->val =
      !vm->regs->gp->r1->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x51, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x323f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x324e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3291
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x32a5
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3300
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3317
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_addb_imm8_r0_to_r3
void vm_insn_addb_imm8_r0_to_r3(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_ADDB_IMM8_R0_TO_R3);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 + op2;

  vm->regs->gp->r3->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r3->val =
      !vm->regs->gp->r3->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x53, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x34ff
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x350e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3551
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x3565
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x35c0
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x35d7
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_subb_imm8_r0_to_r2
void vm_insn_subb_imm8_r0_to_r2(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_SUBB_IMM8_R0_TO_R2);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 - op2;

  vm->regs->gp->r2->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r2->val =
      !vm->regs->gp->r2->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x56, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x391f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x392e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3971
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x3985
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x39e0
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x39f7
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_subb_imm8_r0_to_r3
void vm_insn_subb_imm8_r0_to_r3(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_SUBB_IMM8_R0_TO_R3);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 - op2;

  vm->regs->gp->r3->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r3->val =
      !vm->regs->gp->r3->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x57, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x3a7f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x3a8e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3ad1
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x3ae5
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3b40
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3b57
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_mulb_imm8_r0_to_r0
void vm_insn_mulb_imm8_r0_to_r0(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_MULB_IMM8_R0_TO_R0);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 * op2;

  vm->regs->gp->r0->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r0->val =
      !vm->regs->gp->r0->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x58, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x3bdf
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x3bee
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3c31
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x3c45
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
imull %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3c9f
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3cb6
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/plvhx[P]dummy-vm/src/insn.c
// Function: vm_insn_mulb_imm8_r0_to_r1
void vm_insn_mulb_imm8_r0_to_r1(vm_t *vm) {
  vm->state = vm_state_insert(vm->state, VM_INSN_MULB_IMM8_R0_TO_R1);

  short op1 = vm_insn_read_byte(vm) == 0xff
                  ? VM_NEGATE_BYTE(vm_insn_read_byte(vm))
                  : vm_insn_read_byte(vm);

  short op2 = vm->regs->gp->r0->is_negative
                  ? VM_NEGATE_BYTE(vm->regs->gp->r0->val)
                  : vm->regs->gp->r0->val;

  short res = op1 * op2;

  vm->regs->gp->r1->is_negative = ((short)res < 0) ? 1 : 0;
  vm->regs->gp->r1->val =
      !vm->regs->gp->r1->is_negative
          ? VM_ALIGN_TO_BYTE((unsigned short)res)
          : 0xff - (VM_ALIGN_TO_BYTE((unsigned short)res) - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x59, %esi
callq 0x8080
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
cmpl $0xff, %eax
jne 0x3d3f
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x14(%rbp)
jmp 0x3d4e
movq -0x8(%rbp), %rdi
callq 0x1290
movzwl %ax, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x3d91
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %ecx
andl $0xff, %ecx
movl $0xff, %eax
subl %ecx, %eax
subl $0xff, %eax
movl %eax, -0x18(%rbp)
jmp 0x3da5
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movw %ax, -0xc(%rbp)
movswl -0xa(%rbp), %eax
movswl -0xc(%rbp), %ecx
imull %ecx, %eax
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edx
xorl %ecx, %ecx
movl $0x1, %eax
cmpl $0x0, %edx
cmovll %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3e01
movzwl -0xe(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3e18
movzwl -0xe(%rbp), %ecx
andl $0xff, %ecx
subl $0x1, %ecx
movl $0xff, %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movw %cx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)