// File: /workspace/github_c_makefile_star2_O0/cogbee[P]vmir-latest/src/vmir_vm.c
// Function: emit_store
static void
emit_store(ir_unit_t *iu, ir_instr_store_t *ii)
{
  const ir_value_t *ptr = value_get(iu, ii->ptr.value);
  const ir_value_t *val = value_get(iu, ii->value.value);
  const int has_offset = ii->immediate_offset != 0;

  switch(COMBINE4(legalize_type(type_get(iu, ii->value.type)),
                  val->iv_class,
                  ptr->iv_class,
                  has_offset)) {

    // ---

  case COMBINE4(IR_TYPE_INT8, IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
    emit_op2(iu, VM_STORE8, value_reg(ptr), value_reg(val));
    return;

  case COMBINE4(IR_TYPE_INT8, IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
    emit_op2(iu, VM_STORE8_OFF, value_reg(ptr), value_reg(val));
    emit_imm16(iu, ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT1, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT8, IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT8, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT1, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_INT8, IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_INT8, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
    emit_op1(iu, VM_STORE8_G, value_reg(val));
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT1, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT8, IR_VC_CONSTANT, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT8, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT1, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_INT8, IR_VC_CONSTANT, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_INT8, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 1):
    emit_op1(iu, VM_MOV8_C, 0);
    emit_i8(iu, value_get_const32(iu, val));
    emit_op1(iu, VM_STORE8_G, 0);
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT1, IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_INT1, IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_INT8, IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_INT8, IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
    emit_op1(iu, VM_STORE8C_OFF, value_reg(ptr));
    emit_imm16(iu, ii->immediate_offset);
    emit_i8(iu, value_get_const32(iu, val));
    return;


    // ---

  case COMBINE4(IR_TYPE_INT16, IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
    emit_op2(iu, VM_STORE16, value_reg(ptr), value_reg(val));
    return;

  case COMBINE4(IR_TYPE_INT16, IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT16, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT16, IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_INT16, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
    emit_op1(iu, VM_STORE16_G, value_reg(val));
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT16, IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
    emit_op2(iu, VM_STORE16_OFF, value_reg(ptr), value_reg(val));
    emit_imm16(iu, ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT16, IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_INT16, IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
    emit_op1(iu, VM_STORE16C_OFF, value_reg(ptr));
    emit_imm16(iu, ii->immediate_offset);
    emit_i16(iu, value_get_const32(iu, val));
    return;

  case COMBINE4(IR_TYPE_INT16, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT16, IR_VC_CONSTANT, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT16, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_INT16, IR_VC_CONSTANT, IR_VC_CONSTANT,  1):
    emit_op1(iu, VM_MOV16_C, 0);
    emit_i16(iu, value_get_const32(iu, val));
    emit_op1(iu, VM_STORE16_G, 0);
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

    // ---

  case COMBINE4(IR_TYPE_INT32,   IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
    emit_op1(iu, VM_STORE32_G, value_reg(val));
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT32,   IR_VC_CONSTANT, IR_VC_GLOBALVAR,  0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_CONSTANT, IR_VC_GLOBALVAR,  0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_CONSTANT, IR_VC_GLOBALVAR,  0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_GLOBALVAR, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_GLOBALVAR, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_CONSTANT, IR_VC_GLOBALVAR,  1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_CONSTANT, IR_VC_GLOBALVAR,  1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_CONSTANT, IR_VC_GLOBALVAR,  1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_GLOBALVAR, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_GLOBALVAR, IR_VC_GLOBALVAR, 1):
    emit_op1(iu, VM_MOV32_C, 0);
    emit_i32(iu, value_get_const32(iu, val));
    emit_op1(iu, VM_STORE32_G, 0);
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT32,   IR_VC_CONSTANT, IR_VC_CONSTANT, 0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_CONSTANT, IR_VC_CONSTANT, 0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_CONSTANT, IR_VC_CONSTANT, 0):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_CONSTANT, IR_VC_CONSTANT, 1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_CONSTANT, IR_VC_CONSTANT, 1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_CONSTANT, IR_VC_CONSTANT, 1):
    emit_op1(iu, VM_MOV32_C, 0);
    emit_i32(iu, value_get_const32(iu, val));
    emit_op1(iu, VM_STORE32_G, 0);
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT32,   IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_GLOBALVAR, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_INT32,   IR_VC_GLOBALVAR, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_GLOBALVAR, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_GLOBALVAR, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_GLOBALVAR, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_GLOBALVAR, IR_VC_REGFRAME, 0):
    emit_op1(iu, VM_STORE32C_OFF, value_reg(ptr));
    emit_imm16(iu, ii->immediate_offset);
    emit_i32(iu, value_get_const32(iu, val));
    return;


  case COMBINE4(IR_TYPE_INT32,   IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
    emit_op2(iu, VM_STORE32_OFF, value_reg(ptr), value_reg(val));
    emit_imm16(iu, ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT32,   IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_POINTER, IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_FLOAT,   IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
    emit_op2(iu, VM_STORE32, value_reg(ptr), value_reg(val));
    return;

    // ---

  case COMBINE4(IR_TYPE_INT64,  IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_REGFRAME, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_REGFRAME, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_REGFRAME, IR_VC_CONSTANT,  1):
    emit_op1(iu, VM_STORE64_G, value_reg(val));
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT64,  IR_VC_CONSTANT, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_CONSTANT, IR_VC_CONSTANT,  0):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_CONSTANT, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 0):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_CONSTANT, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_CONSTANT, IR_VC_CONSTANT,  1):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_CONSTANT, IR_VC_GLOBALVAR, 1):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_CONSTANT, IR_VC_GLOBALVAR, 1):
    vm_align32(iu, 0);
    emit_op1(iu, VM_MOV64_C, 0);
    emit_i64(iu, value_get_const64(iu, val));
    emit_op1(iu, VM_STORE64_G, 0);
    emit_i32(iu, value_get_const32(iu, ptr) + ii->immediate_offset);
    return;


  case COMBINE4(IR_TYPE_INT64,  IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_INT64,  IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_CONSTANT, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_CONSTANT, IR_VC_REGFRAME, 0):
    vm_align32(iu, 1);
    emit_op1(iu, VM_STORE64C_OFF, value_reg(ptr));
    emit_imm16(iu, ii->immediate_offset);
    emit_i64(iu, value_get_const64(iu, val));
    return;

  case COMBINE4(IR_TYPE_INT64,  IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_REGFRAME, IR_VC_REGFRAME, 1):
    emit_op2(iu, VM_STORE64_OFF, value_reg(ptr), value_reg(val));
    emit_imm16(iu, ii->immediate_offset);
    return;

  case COMBINE4(IR_TYPE_INT64,  IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_DOUBLE, IR_VC_REGFRAME, IR_VC_REGFRAME, 0):
    emit_op2(iu, VM_STORE64, value_reg(ptr), value_reg(val));
    return;


    // ----

  case COMBINE4(IR_TYPE_FUNCTION, IR_VC_FUNCTION, IR_VC_REGFRAME, 0):
  case COMBINE4(IR_TYPE_FUNCTION, IR_VC_FUNCTION, IR_VC_REGFRAME, 1):
    emit_op1(iu, VM_STORE32C_OFF, value_reg(ptr));
    emit_imm16(iu, ii->immediate_offset);
    emit_i32(iu, value_function_addr(val));
    return;

  case COMBINE4(IR_TYPE_FUNCTION, IR_VC_FUNCTION, IR_VC_CONSTANT, 0):
  case COMBINE4(IR_TYPE_FUNCTION, IR_VC_FUNCTION, IR_VC_GLOBALVAR, 0):
    emit_op1(iu, VM_MOV32_C, 0);
    emit_i32(iu, value_function_addr(val));
    emit_op1(iu, VM_STORE32_G, 0);
    emit_i32(iu, value_get_const32(iu, ptr));
    return;


  default:
    parser_error(iu, "Can't store (type %s class %d) ptr class %d off:%d (%s)",
                 type_str_index(iu, ii->value.type),
                 val->iv_class,
                 ptr->iv_class, has_offset,
                 instr_str(iu, &ii->super, 0));
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x58(%rax), %esi
callq 0x20ee0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x60(%rax), %esi
callq 0x20ee0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movl 0x68(%rax), %eax
testl %eax, %eax
setne %al
movzbl %al, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %esi
callq 0x1ee20
movq %rax, %rdi
callq 0x45d0
shll $0x18, %eax
movq -0x20(%rbp), %rcx
movl (%rcx), %ecx
shll $0x10, %ecx
orl %ecx, %eax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movl -0x24(%rbp), %ecx
orl %ecx, %eax
movl %eax, -0x28(%rbp)
addl $0xfdfcfe00, %eax       # imm = 0xFDFCFE00
subl $0x2, %eax
jb 0x2e77e
jmp 0x2e276
movl -0x28(%rbp), %eax
addl $0xfdfcfb00, %eax       # imm = 0xFDFCFB00
subl $0x2, %eax
jb 0x2e7eb
jmp 0x2e289
movl -0x28(%rbp), %eax
addl $0xfdfafe00, %eax       # imm = 0xFDFAFE00
subl $0x2, %eax
jb 0x2e730
jmp 0x2e29c
movl -0x28(%rbp), %eax
addl $0xfcfcfe00, %eax       # imm = 0xFCFCFE00
subl $0x2, %eax
jb 0x2e77e
jmp 0x2e2af
movl -0x28(%rbp), %eax
addl $0xfcfcfd00, %eax       # imm = 0xFCFCFD00
subl $0x2, %eax
jb 0x2e77e
jmp 0x2e2c2
movl -0x28(%rbp), %eax
addl $0xfcfcfb00, %eax       # imm = 0xFCFCFB00
subl $0x2, %eax
jb 0x2e7eb
jmp 0x2e2d5
movl -0x28(%rbp), %eax
addl $0xfcfafe00, %eax       # imm = 0xFCFAFE00
subl $0x2, %eax
jb 0x2e730
jmp 0x2e2e8
movl -0x28(%rbp), %eax
addl $0xfcfafd00, %eax       # imm = 0xFCFAFD00
subl $0x2, %eax
jb 0x2e730
jmp 0x2e2fb
movl -0x28(%rbp), %eax
subl $0x3050500, %eax        # imm = 0x3050500
je 0x2e6aa
jmp 0x2e30b
movl -0x28(%rbp), %eax
subl $0x3050501, %eax        # imm = 0x3050501
je 0x2e6e5
jmp 0x2e31b
movl -0x28(%rbp), %eax
addl $0xfbfcfe00, %eax       # imm = 0xFBFCFE00
subl $0x2, %eax
jb 0x2e999
jmp 0x2e32e
movl -0x28(%rbp), %eax
addl $0xfbfcfd00, %eax       # imm = 0xFBFCFD00
subl $0x2, %eax
jb 0x2e999
jmp 0x2e341
movl -0x28(%rbp), %eax
addl $0xfbfcfb00, %eax       # imm = 0xFBFCFB00
subl $0x2, %eax
jb 0x2e935
jmp 0x2e354
movl -0x28(%rbp), %eax
addl $0xfbfafe00, %eax       # imm = 0xFBFAFE00
subl $0x2, %eax
jb 0x2e884
jmp 0x2e367
movl -0x28(%rbp), %eax
addl $0xfbfafd00, %eax       # imm = 0xFBFAFD00
subl $0x2, %eax
jb 0x2e884
jmp 0x2e37a
movl -0x28(%rbp), %eax
subl $0x4050500, %eax        # imm = 0x4050500
je 0x2e843
jmp 0x2e38a
movl -0x28(%rbp), %eax
subl $0x4050501, %eax        # imm = 0x4050501
je 0x2e8de
jmp 0x2e39a
movl -0x28(%rbp), %eax
addl $0xfafdfb00, %eax       # imm = 0xFAFDFB00
subl $0x2, %eax
jb 0x2eb5c
jmp 0x2e3ad
movl -0x28(%rbp), %eax
addl $0xfafcfe00, %eax       # imm = 0xFAFCFE00
subl $0x2, %eax
jb 0x2ea6c
jmp 0x2e3c0
movl -0x28(%rbp), %eax
addl $0xfafcfd00, %eax       # imm = 0xFAFCFD00
subl $0x2, %eax
jb 0x2eae4
jmp 0x2e3d3
movl -0x28(%rbp), %eax
addl $0xfafcfb00, %eax       # imm = 0xFAFCFB00
subl $0x2, %eax
jb 0x2eb5c
jmp 0x2e3e6
movl -0x28(%rbp), %eax
addl $0xfafafe00, %eax       # imm = 0xFAFAFE00
subl $0x2, %eax
jb 0x2ea12
jmp 0x2e3f9
movl -0x28(%rbp), %eax
addl $0xfafafd00, %eax       # imm = 0xFAFAFD00
subl $0x2, %eax
jb 0x2ea12
jmp 0x2e40c
movl -0x28(%rbp), %eax
subl $0x5050500, %eax        # imm = 0x5050500
je 0x2ec16
jmp 0x2e41c
movl -0x28(%rbp), %eax
subl $0x5050501, %eax        # imm = 0x5050501
je 0x2ebbf
jmp 0x2e42c
movl -0x28(%rbp), %eax
addl $0xf9fcfe00, %eax       # imm = 0xF9FCFE00
subl $0x2, %eax
jb 0x2ecb7
jmp 0x2e43f
movl -0x28(%rbp), %eax
addl $0xf9fcfd00, %eax       # imm = 0xF9FCFD00
subl $0x2, %eax
jb 0x2ecb7
jmp 0x2e452
movl -0x28(%rbp), %eax
addl $0xf9fcfb00, %eax       # imm = 0xF9FCFB00
subl $0x2, %eax
jb 0x2ed3b
jmp 0x2e465
movl -0x28(%rbp), %eax
addl $0xf9fafe00, %eax       # imm = 0xF9FAFE00
subl $0x2, %eax
jb 0x2ec5d
jmp 0x2e478
movl -0x28(%rbp), %eax
addl $0xf9fafd00, %eax       # imm = 0xF9FAFD00
subl $0x2, %eax
jb 0x2ec5d
jmp 0x2e48b
movl -0x28(%rbp), %eax
subl $0x6050500, %eax        # imm = 0x6050500
je 0x2ee04
jmp 0x2e49b
movl -0x28(%rbp), %eax
subl $0x6050501, %eax        # imm = 0x6050501
je 0x2edad
jmp 0x2e4ab
movl -0x28(%rbp), %eax
addl $0xf7fdfb00, %eax       # imm = 0xF7FDFB00
subl $0x2, %eax
jb 0x2eb5c
jmp 0x2e4be
movl -0x28(%rbp), %eax
addl $0xf7fcfe00, %eax       # imm = 0xF7FCFE00
subl $0x2, %eax
jb 0x2ea6c
jmp 0x2e4d1
movl -0x28(%rbp), %eax
addl $0xf7fcfd00, %eax       # imm = 0xF7FCFD00
subl $0x2, %eax
jb 0x2eae4
jmp 0x2e4e4
movl -0x28(%rbp), %eax
addl $0xf7fcfb00, %eax       # imm = 0xF7FCFB00
subl $0x2, %eax
jb 0x2eb5c
jmp 0x2e4f7
movl -0x28(%rbp), %eax
addl $0xf7fafe00, %eax       # imm = 0xF7FAFE00
subl $0x2, %eax
jb 0x2ea12
jmp 0x2e50a
movl -0x28(%rbp), %eax
addl $0xf7fafd00, %eax       # imm = 0xF7FAFD00
subl $0x2, %eax
jb 0x2ea12
jmp 0x2e51d
movl -0x28(%rbp), %eax
subl $0x8050500, %eax        # imm = 0x8050500
je 0x2ec16
jmp 0x2e52d
movl -0x28(%rbp), %eax
subl $0x8050501, %eax        # imm = 0x8050501
je 0x2ebbf
jmp 0x2e53d
movl -0x28(%rbp), %eax
addl $0xf6fcfe00, %eax       # imm = 0xF6FCFE00
subl $0x2, %eax
jb 0x2ecb7
jmp 0x2e550
movl -0x28(%rbp), %eax
addl $0xf6fcfd00, %eax       # imm = 0xF6FCFD00
subl $0x2, %eax
jb 0x2ecb7
jmp 0x2e563
movl -0x28(%rbp), %eax
addl $0xf6fcfb00, %eax       # imm = 0xF6FCFB00
subl $0x2, %eax
jb 0x2ed3b
jmp 0x2e576
movl -0x28(%rbp), %eax
addl $0xf6fafe00, %eax       # imm = 0xF6FAFE00
subl $0x2, %eax
jb 0x2ec5d
jmp 0x2e589
movl -0x28(%rbp), %eax
addl $0xf6fafd00, %eax       # imm = 0xF6FAFD00
subl $0x2, %eax
jb 0x2ec5d
jmp 0x2e59c
movl -0x28(%rbp), %eax
subl $0x9050500, %eax        # imm = 0x9050500
je 0x2ee04
jmp 0x2e5ac
movl -0x28(%rbp), %eax
subl $0x9050501, %eax        # imm = 0x9050501
je 0x2edad
jmp 0x2e5bc
movl -0x28(%rbp), %eax
addl $0xf4fdfe00, %eax       # imm = 0xF4FDFE00
subl $0x2, %eax
jb 0x2ea6c
jmp 0x2e5cf
movl -0x28(%rbp), %eax
addl $0xf4fdfd00, %eax       # imm = 0xF4FDFD00
subl $0x2, %eax
jb 0x2ea6c
jmp 0x2e5e2
movl -0x28(%rbp), %eax
addl $0xf4fdfb00, %eax       # imm = 0xF4FDFB00
subl $0x2, %eax
jb 0x2eb5c
jmp 0x2e5f5
movl -0x28(%rbp), %eax
addl $0xf4fcfe00, %eax       # imm = 0xF4FCFE00
subl $0x2, %eax
jb 0x2ea6c
jmp 0x2e608
movl -0x28(%rbp), %eax
addl $0xf4fcfd00, %eax       # imm = 0xF4FCFD00
subl $0x2, %eax
jb 0x2eae4
jmp 0x2e61b
movl -0x28(%rbp), %eax
addl $0xf4fcfb00, %eax       # imm = 0xF4FCFB00
subl $0x2, %eax
jb 0x2eb5c
jmp 0x2e62e
movl -0x28(%rbp), %eax
addl $0xf4fafe00, %eax       # imm = 0xF4FAFE00
subl $0x2, %eax
jb 0x2ea12
jmp 0x2e641
movl -0x28(%rbp), %eax
addl $0xf4fafd00, %eax       # imm = 0xF4FAFD00
subl $0x2, %eax
jb 0x2ea12
jmp 0x2e654
movl -0x28(%rbp), %eax
subl $0xb050500, %eax        # imm = 0xB050500
je 0x2ec16
jmp 0x2e664
movl -0x28(%rbp), %eax
subl $0xb050501, %eax        # imm = 0xB050501
je 0x2ebbf
jmp 0x2e674
movl -0x28(%rbp), %eax
subl $0xc010200, %eax        # imm = 0xC010200
je 0x2eeaa
jmp 0x2e684
movl -0x28(%rbp), %eax
subl $0xc010300, %eax        # imm = 0xC010300
je 0x2eeaa
jmp 0x2e694
movl -0x28(%rbp), %eax
addl $0xf3fefb00, %eax       # imm = 0xF3FEFB00
subl $0x2, %eax
jb 0x2ee4b
jmp 0x2ef17
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x2a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x38(%rbp), %rdi
movw -0x2a(%rbp), %cx
movl $0x7e, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x3a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x48(%rbp), %rdi
movw -0x3a(%rbp), %cx
movl $0x80, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x58(%rbp), %rdi
movl $0x7d, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0x50(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rdi
movl $0x17d, %esi            # imm = 0x17D
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0x68(%rbp), %rdi
movzbl %al, %esi
callq 0x32500
movq -0x8(%rbp), %rdi
movl $0x7d, %esi
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0x60(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movq -0x78(%rbp), %rdi
movl $0x7f, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0x70(%rbp), %rdi
movzbl %al, %esi
callq 0x32500
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x7a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x88(%rbp), %rdi
movw -0x7a(%rbp), %cx
movl $0x8c, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x98(%rbp), %rdi
movl $0x8b, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0x90(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x9a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0xa8(%rbp), %rdi
movw -0x9a(%rbp), %cx
movl $0x8e, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movq -0xb8(%rbp), %rdi
movl $0x8d, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
movq -0x8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0xb0(%rbp), %rdi
movzwl %ax, %esi
callq 0x2bae0
jmp 0x2efb4
movq -0x8(%rbp), %rdi
movl $0x17e, %esi            # imm = 0x17E
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0xc8(%rbp), %rdi
movzwl %ax, %esi
callq 0x2bae0
movq -0x8(%rbp), %rdi
movl $0x8b, %esi
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0xc0(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0xd8(%rbp), %rdi
movl $0x93, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0xd0(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rdi
movl $0x17f, %esi            # imm = 0x17F
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0xe8(%rbp), %rdi
movl %eax, %esi
callq 0x2b450
movq -0x8(%rbp), %rdi
movl $0x93, %esi
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0xe0(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rdi
movl $0x17f, %esi            # imm = 0x17F
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0xf8(%rbp), %rdi
movl %eax, %esi
callq 0x2b450
movq -0x8(%rbp), %rdi
movl $0x93, %esi
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0xf0(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movq -0x108(%rbp), %rdi
movl $0x94, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x261a0
movq -0x100(%rbp), %rdi
movl %eax, %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x10a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x118(%rbp), %rdi
movw -0x10a(%rbp), %cx
movl $0x96, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x11a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x128(%rbp), %rdi
movw -0x11a(%rbp), %cx
movl $0x95, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x138(%rbp), %rdi
movl $0x9b, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0x130(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x321f0
movq -0x8(%rbp), %rdi
movl $0x180, %esi            # imm = 0x180
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x322d0
movq -0x148(%rbp), %rdi
movq %rax, %rsi
callq 0x32240
movq -0x8(%rbp), %rdi
movl $0x9b, %esi
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0x140(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x68(%rax), %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x321f0
movq -0x8(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movq -0x158(%rbp), %rdi
movl $0x9c, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
movq -0x8(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x322d0
movq -0x150(%rbp), %rdi
movq %rax, %rsi
callq 0x32240
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x15a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x168(%rbp), %rdi
movw -0x15a(%rbp), %cx
movl $0x9e, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movw %ax, -0x16a(%rbp)
movq -0x20(%rbp), %rdi
callq 0x321a0
movq -0x178(%rbp), %rdi
movw -0x16a(%rbp), %cx
movl $0x9d, %esi
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x324a0
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x18(%rbp), %rdi
callq 0x321a0
movq -0x188(%rbp), %rdi
movl $0x94, %esi
movzwl %ax, %edx
callq 0x32150
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x68(%rax), %esi
callq 0x32590
movq -0x8(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x20(%rbp), %rdi
callq 0x323e0
movq -0x180(%rbp), %rdi
movl %eax, %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rdi
movl $0x17f, %esi            # imm = 0x17F
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x20(%rbp), %rdi
callq 0x323e0
movq -0x198(%rbp), %rdi
movl %eax, %esi
callq 0x2b450
movq -0x8(%rbp), %rdi
movl $0x93, %esi
xorl %edx, %edx
callq 0x32150
movq -0x8(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x261a0
movq -0x190(%rbp), %rdi
movl %eax, %esi
callq 0x2b450
jmp 0x2efb4
movq -0x8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %esi
callq 0x22560
movq %rax, -0x1b0(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1a4(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1a0(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x19c(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x225c0
movq -0x1b8(%rbp), %rdi
movq -0x1b0(%rbp), %r8
movl -0x1a4(%rbp), %r9d
movl -0x1a0(%rbp), %r11d
movl -0x19c(%rbp), %r10d
leaq 0x10f8c(%rip), %rsi     # 0x3ff1f
movl $0xc7d, %edx            # imm = 0xC7D
leaq 0x113d6(%rip), %rcx     # 0x40375
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x18220
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
nopl (%rax)