// File: /workspace/github_cpp_makefile_star2_O1/Ciaxur[P]yagb-emu/src/CPU.cc
// Function: CPU::dump(std::ostream&, bool, char)
void CPU::dump(std::ostream &out, bool isHeader, char endChar) {
  // Store Default Formatting
  std::ios init(nullptr);
  init.copyfmt(out);

  if (isHeader) out << "== REGISTERS ==\n";
  out << std::setfill('0') << std::uppercase << std::hex << "  A: " << std::setw(2) << (int)reg.A << endChar;
  out << std::uppercase << std::hex << "  B: " << std::setw(2) << (int)reg.B << endChar;
  out << std::uppercase << std::hex << "  C: " << std::setw(2) << (int)reg.C << endChar;
  out << std::uppercase << std::hex << "  D: " << std::setw(2) << (int)reg.D << endChar;
  out << std::uppercase << std::hex << "  E: " << std::setw(2) << (int)reg.E << endChar;
  out << std::uppercase << std::hex << "  F: " << std::setw(2) << (int)reg.F << endChar;
  out << std::uppercase << std::hex << "  H: " << std::setw(2) << (int)reg.H << endChar;
  out << std::uppercase << std::hex << "  L: " << std::setw(2) << (int)reg.L << endChar;
  out << std::uppercase << std::hex << "  HL: " << std::setw(4) << (int)((reg.H << 8) | reg.L) << endChar;
  out << std::uppercase << std::hex << "  SP: " << std::setw(4) << SP << endChar;
  out << std::uppercase << std::hex << "  PC: " << std::setw(4) << PC << endChar;

  if (isHeader) out << "\n== STATES ==\n";
  out << std::uppercase << std::hex << "  IME: " << IME << endChar;
  out << std::uppercase << std::hex << "  LY: " << (int)ppu->LY << endChar;
  out << std::uppercase << std::hex << "  LY[0xFF44]: " << (int)memory.memory[0xFF44] << endChar;
  out << std::uppercase << std::hex << "  LCDC [0xFF40]: " << (int)memory.memory[0xFF40] << endChar;
  out << std::uppercase << std::hex << "    " << std::bitset<8>(memory.memory[0xFF40]) << endChar << endChar;
  out << std::uppercase << std::hex << "  STAT [0xFF41]: " << (int)memory.memory[0xFF41] << endChar;
  out << std::uppercase << std::hex << "    " << std::bitset<8>(memory.memory[0xFF41]) << endChar << endChar;

  out << std::uppercase << std::hex << "  IE [0xFFFF]: " << (int)memory.memory[0xFFFF] << endChar;
  out << std::uppercase << std::hex << "    " << std::bitset<8>(memory.memory[0xFFFF]) << endChar << endChar;
  out << std::uppercase << std::hex << "  IF [0xFF0F]: " << (int)memory.memory[0xFF0F] << endChar;
  out << std::uppercase << std::hex << "    " << std::bitset<8>(memory.memory[0xFF0F]) << endChar << endChar;

  out << std::uppercase << std::dec << "  FRAME: " << ppu->currentFrame << endChar;
  out << std::uppercase << std::hex << "  HALTED: " << halted << endChar;
  out << std::uppercase << std::hex << "  RUNNING: " << running << endChar;

  if (isHeader) out << "\n== FLAGS ==\n";
  out << std::uppercase << std::hex << "  Z: " << ((reg.F & 0x80) >> 7) << endChar;
  out << std::uppercase << std::hex << "  N: " << ((reg.F & 0x40) >> 6) << endChar;
  out << std::uppercase << std::hex << "  H: " << ((reg.F & 0x20) >> 5) << endChar;
  out << std::uppercase << std::hex << "  C: " << ((reg.F & 0x10) >> 4) << endChar;

  // Revert Formatting Back
  out.copyfmt(init);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movl %ecx, %r14d
movl %edx, %r12d
movq %rsi, %rbx
movq %rdi, %r15
leaq -0x140(%rbp), %r13
movq %r13, %rdi
xorl %esi, %esi
callq 0xc5f0
movq (%rbx), %rax
movq -0x18(%rax), %rsi
addq %rbx, %rsi
movq %r13, %rdi
callq 0xc250
testb %r12b, %r12b
je 0x309fa
leaq 0x82685(%rip), %rsi     # 0xb3072
movl $0x10, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r13
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x30a2b
movq %r13, %rdi
movl $0x20, %esi
callq 0xc8b0
movb %al, 0xe0(%r13)
movb $0x1, 0xe1(%r13)
movb $0x30, 0xe0(%r13)
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82628(%rip), %rsi     # 0xb3083
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x118(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x825c5(%rip), %rsi     # 0xb3089
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x119(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82562(%rip), %rsi     # 0xb308f
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x11a(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x824ff(%rip), %rsi     # 0xb3095
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x11b(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x8249c(%rip), %rsi     # 0xb309b
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x11c(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82439(%rip), %rsi     # 0xb30a1
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x11d(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x823d6(%rip), %rsi     # 0xb30a7
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x11e(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82373(%rip), %rsi     # 0xb30ad
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movzbl 0x11f(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82310(%rip), %rsi     # 0xb30b3
movl $0x6, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x10(%rbx,%rax)
movzwl 0x11e(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x822a7(%rip), %rsi     # 0xb30ba
movl $0x6, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x10(%rbx,%rax)
movzwl 0x12e(%r15), %esi
movq %rbx, %rdi
callq 0xc460
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82245(%rip), %rsi     # 0xb30c1
movl $0x6, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x10(%rbx,%rax)
movzwl 0x12c(%r15), %esi
movq %rbx, %rdi
callq 0xc460
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
testb %r12b, %r12b
je 0x30ed6
leaq 0x821ff(%rip), %rsi     # 0xb30c8
movl $0xe, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x821d9(%rip), %rsi     # 0xb30d7
movl $0x7, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x128(%r15), %esi
movq %rbx, %rdi
callq 0xc380
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82188(%rip), %rsi     # 0xb30df
movl $0x6, %edx
movq %rbx, %rdi
callq 0xc830
movq (%r15), %rax
movzbl 0x20(%rax), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82137(%rip), %rsi     # 0xb30e6
movl $0xe, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10094(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x820ed(%rip), %rsi     # 0xb30f5
movl $0x11, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10090(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x8a19c(%rip), %rsi     # 0xbb1fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10090(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x3a5c2
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x82032(%rip), %rsi     # 0xb3107
movl $0x11, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10091(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x8a0cf(%rip), %rsi     # 0xbb1fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10091(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x3a5c2
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81f77(%rip), %rsi     # 0xb3119
movl $0xf, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x1014f(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x8a002(%rip), %rsi     # 0xbb1fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x1014f(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x3a5c2
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81eba(%rip), %rsi     # 0xb3129
movl $0xf, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x1005f(%r15), %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x89f35(%rip), %rsi     # 0xbb1fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x1005f(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x3a5c2
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
leaq -0x29(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81dfd(%rip), %rsi     # 0xb3139
movl $0x9, %edx
movq %rbx, %rdi
callq 0xc830
movq (%r15), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xc460
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81daf(%rip), %rsi     # 0xb3143
movl $0xa, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x12a(%r15), %esi
movq %rbx, %rdi
callq 0xc380
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81d61(%rip), %rsi     # 0xb314e
movl $0xb, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x12b(%r15), %esi
movq %rbx, %rdi
callq 0xc380
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
testb %r12b, %r12b
je 0x31437
leaq 0x81d30(%rip), %rsi     # 0xb315a
movl $0xd, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81d09(%rip), %rsi     # 0xb3168
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x11d(%r15), %esi
shrl $0x7, %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81cb3(%rip), %rsi     # 0xb316e
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x11d(%r15), %esi
shrl $0x6, %esi
andl $0x1, %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81b8d(%rip), %rsi     # 0xb30a7
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x11d(%r15), %esi
shrl $0x5, %esi
andl $0x1, %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x81b16(%rip), %rsi     # 0xb308f
movl $0x5, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x11d(%r15), %esi
shrl $0x4, %esi
andl $0x1, %esi
movq %rbx, %rdi
callq 0xc270
leaq -0x38(%rbp), %rsi
movb %r14b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0xc830
movq (%rbx), %rax
addq -0x18(%rax), %rbx
leaq -0x140(%rbp), %rsi
movq %rbx, %rdi
callq 0xc250
leaq -0x140(%rbp), %rdi
callq 0xc5e0
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x315ec
jmp 0x315ec
jmp 0x315ec
jmp 0x315ec
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
callq 0xc5e0
movq %rbx, %rdi
callq 0xc560
nop