// File: luooofan[P]hblzbd_compiler/src/ir.cpp
// Function: ZN2ir3OpncvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv
Opn::operator std::string() {
  switch (type_) {
    case Type::Var: {
      if (scope_id_ == 0) return name_;
      auto ret = scope_id_ == -1 ? name_ : name_ + "." + std::to_string(scope_id_);
      return ssa_id_ == -1 ? ret : ret + "." + std::to_string(ssa_id_);
    }
    case Type::Array: {
      auto ret = scope_id_ == -1 ? name_ : name_ + "." + std::to_string(scope_id_);
      ret += (ssa_id_ == -1 ? "" : "." + std::to_string(ssa_id_));
      if (scope_id_ == 0) ret = name_;
      return nullptr == offset_ ? ret : ret + "[" + std::string(*offset_) + "]";
    }
    default: {
      return name_;
    }
  }
}

// Assembly:
subq $0x228, %rsp            # imm = 0x228
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x220(%rsp)
movq %rsi, 0x218(%rsp)
movq 0x218(%rsp), %rax
movq %rax, 0x18(%rsp)
movl (%rax), %eax
movl %eax, 0x20(%rsp)
testl %eax, %eax
je 0x438ff
jmp 0x438ed
movl 0x20(%rsp), %eax
subl $0x5, %eax
je 0x43bb3
jmp 0x44011
movq 0x18(%rsp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x43922
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
callq 0x81a0
jmp 0x44024
movq 0x18(%rsp), %rax
movl 0x28(%rax), %eax
movb $0x0, 0x1d7(%rsp)
movb $0x0, 0x1a3(%rsp)
cmpl $-0x1, %eax
jne 0x43957
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0x1f8(%rsp), %rdi
callq 0x81a0
jmp 0x439bc
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0xb9f62(%rip), %rdx     # 0xfd8c9
leaq 0x1d8(%rsp), %rdi
callq 0xc720
movq 0x18(%rsp), %rax
movb $0x1, 0x1d7(%rsp)
movl 0x28(%rax), %esi
leaq 0x1b0(%rsp), %rdi
callq 0xc7b0
jmp 0x43993
movb $0x1, 0x1a3(%rsp)
leaq 0x1f8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
callq 0xc630
jmp 0x439ba
jmp 0x439bc
testb $0x1, 0x1a3(%rsp)
jne 0x439c8
jmp 0x439d5
leaq 0x1b0(%rsp), %rdi
callq 0x8728
testb $0x1, 0x1d7(%rsp)
jne 0x439e1
jmp 0x439ee
leaq 0x1d8(%rsp), %rdi
callq 0x8728
movq 0x18(%rsp), %rax
movl 0x38(%rax), %eax
movb $0x0, 0x17f(%rsp)
movb $0x0, 0x157(%rsp)
cmpl $-0x1, %eax
jne 0x43a21
movq 0x8(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x81a0
jmp 0x43a1f
jmp 0x43a84
leaq 0xb9ea1(%rip), %rdx     # 0xfd8c9
leaq 0x180(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0xc720
jmp 0x43a3f
movq 0x18(%rsp), %rax
movb $0x1, 0x17f(%rsp)
movl 0x38(%rax), %esi
leaq 0x158(%rsp), %rdi
callq 0xc7b0
jmp 0x43a5e
movq 0x8(%rsp), %rdi
movb $0x1, 0x157(%rsp)
leaq 0x180(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0xc630
jmp 0x43a82
jmp 0x43a84
testb $0x1, 0x157(%rsp)
jne 0x43a90
jmp 0x43a9d
leaq 0x158(%rsp), %rdi
callq 0x8728
testb $0x1, 0x17f(%rsp)
jne 0x43aa9
jmp 0x43ab6
leaq 0x180(%rsp), %rdi
callq 0x8728
leaq 0x1f8(%rsp), %rdi
callq 0x8728
jmp 0x44024
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43b0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
testb $0x1, 0x1a3(%rsp)
jne 0x43afe
jmp 0x43b0b
leaq 0x1b0(%rsp), %rdi
callq 0x8728
jmp 0x43b0d
testb $0x1, 0x1d7(%rsp)
jne 0x43b19
jmp 0x43b26
leaq 0x1d8(%rsp), %rdi
callq 0x8728
jmp 0x44031
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43ba1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43b86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
testb $0x1, 0x157(%rsp)
jne 0x43b77
jmp 0x43b84
leaq 0x158(%rsp), %rdi
callq 0x8728
jmp 0x43b86
testb $0x1, 0x17f(%rsp)
jne 0x43b92
jmp 0x43b9f
leaq 0x180(%rsp), %rdi
callq 0x8728
jmp 0x43ba1
leaq 0x1f8(%rsp), %rdi
callq 0x8728
jmp 0x44031
movq 0x18(%rsp), %rax
movl 0x28(%rax), %eax
movb $0x0, 0x10f(%rsp)
movb $0x0, 0xe7(%rsp)
cmpl $-0x1, %eax
jne 0x43be8
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0x130(%rsp), %rdi
callq 0x81a0
jmp 0x43c4d
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0xb9cd1(%rip), %rdx     # 0xfd8c9
leaq 0x110(%rsp), %rdi
callq 0xc720
movq 0x18(%rsp), %rax
movb $0x1, 0x10f(%rsp)
movl 0x28(%rax), %esi
leaq 0xe8(%rsp), %rdi
callq 0xc7b0
jmp 0x43c24
movb $0x1, 0xe7(%rsp)
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0xc630
jmp 0x43c4b
jmp 0x43c4d
testb $0x1, 0xe7(%rsp)
jne 0x43c59
jmp 0x43c66
leaq 0xe8(%rsp), %rdi
callq 0x8728
testb $0x1, 0x10f(%rsp)
jne 0x43c72
jmp 0x43c7f
leaq 0x110(%rsp), %rdi
callq 0x8728
movq 0x18(%rsp), %rax
movl 0x38(%rax), %eax
movb $0x0, 0xbe(%rsp)
movb $0x0, 0x97(%rsp)
cmpl $-0x1, %eax
jne 0x43cd1
leaq 0xbf(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x8680
movq (%rsp), %rdx
movb $0x1, 0xbe(%rsp)
leaq 0xb6499(%rip), %rsi     # 0xfa159
leaq 0xc0(%rsp), %rdi
callq 0xc570
jmp 0x43ccf
jmp 0x43d10
movq 0x18(%rsp), %rax
movl 0x38(%rax), %esi
leaq 0x98(%rsp), %rdi
callq 0xc7b0
jmp 0x43ce8
movb $0x1, 0x97(%rsp)
leaq 0xb9bd2(%rip), %rsi     # 0xfd8c9
leaq 0xc0(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xc970
jmp 0x43d0e
jmp 0x43d10
leaq 0x130(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x84b0
jmp 0x43d27
leaq 0xc0(%rsp), %rdi
callq 0x8728
testb $0x1, 0x97(%rsp)
jne 0x43d40
jmp 0x43d4d
leaq 0x98(%rsp), %rdi
callq 0x8728
testb $0x1, 0xbe(%rsp)
jne 0x43d59
jmp 0x43d66
leaq 0xbf(%rsp), %rdi
callq 0x83c0
movq 0x18(%rsp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x43e94
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0x130(%rsp), %rdi
callq 0x8050
jmp 0x43d8d
jmp 0x43e94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43dd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
testb $0x1, 0xe7(%rsp)
jne 0x43dc8
jmp 0x43dd5
leaq 0xe8(%rsp), %rdi
callq 0x8728
jmp 0x43dd7
testb $0x1, 0x10f(%rsp)
jne 0x43de3
jmp 0x43df0
leaq 0x110(%rsp), %rdi
callq 0x8728
jmp 0x44031
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43e5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43e42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x8728
testb $0x1, 0x97(%rsp)
jne 0x43e4e
jmp 0x43e5b
leaq 0x98(%rsp), %rdi
callq 0x8728
jmp 0x43e5d
testb $0x1, 0xbe(%rsp)
jne 0x43e69
jmp 0x43e76
leaq 0xbf(%rsp), %rdi
callq 0x83c0
jmp 0x44002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x44002
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rcx
movb $0x0, 0x4f(%rsp)
movb $0x0, 0x27(%rsp)
movb $0x0, 0x26(%rsp)
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x43ec9
movq 0x8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x81a0
jmp 0x43ec7
jmp 0x43f38
leaq 0xb6299(%rip), %rdx     # 0xfa169
leaq 0x50(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0xc720
jmp 0x43ee4
movq 0x18(%rsp), %rax
movb $0x1, 0x4f(%rsp)
movq 0x30(%rax), %rsi
leaq 0x28(%rsp), %rdi
callq 0x438b0
jmp 0x43efe
movb $0x1, 0x27(%rsp)
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xc630
jmp 0x43f19
movq 0x8(%rsp), %rdi
movb $0x1, 0x26(%rsp)
leaq 0xb732e(%rip), %rdx     # 0xfb258
leaq 0x70(%rsp), %rsi
callq 0xcbd0
jmp 0x43f36
jmp 0x43f38
testb $0x1, 0x26(%rsp)
jne 0x43f41
jmp 0x43f4b
leaq 0x70(%rsp), %rdi
callq 0x8728
testb $0x1, 0x27(%rsp)
jne 0x43f54
jmp 0x43f5e
leaq 0x28(%rsp), %rdi
callq 0x8728
testb $0x1, 0x4f(%rsp)
jne 0x43f67
jmp 0x43f71
leaq 0x50(%rsp), %rdi
callq 0x8728
leaq 0x130(%rsp), %rdi
callq 0x8728
jmp 0x44024
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43fed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x43fd8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
testb $0x1, 0x26(%rsp)
jne 0x43fcc
jmp 0x43fd6
leaq 0x70(%rsp), %rdi
callq 0x8728
jmp 0x43fd8
testb $0x1, 0x27(%rsp)
jne 0x43fe1
jmp 0x43feb
leaq 0x28(%rsp), %rdi
callq 0x8728
jmp 0x43fed
testb $0x1, 0x4f(%rsp)
jne 0x43ff6
jmp 0x44000
leaq 0x50(%rsp), %rdi
callq 0x8728
jmp 0x44002
leaq 0x130(%rsp), %rdi
callq 0x8728
jmp 0x44031
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
callq 0x81a0
movq 0x10(%rsp), %rax
addq $0x228, %rsp            # imm = 0x228
retq
movq 0x1a8(%rsp), %rdi
callq 0x8670
nop