// File: /workspace/github_cpp_makefile_star2_O3/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 0x30228
leaq 0x80e57(%rip), %rsi     # 0xb1072
movl $0x10, %edx
movq %rbx, %rdi
callq 0xc830
movq (%rbx), %rax
movq -0x18(%rax), %rcx
leaq (%rbx,%rcx), %r13
cmpb $0x0, 0xe1(%rbx,%rcx)
jne 0x30255
movq %r13, %rdi
movl $0x20, %esi
callq 0xc8b0
movb $0x1, 0xe1(%r13)
movq (%rbx), %rax
movb $0x30, 0xe0(%r13)
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 0x80e01(%rip), %rsi     # 0xb1083
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 0x80d9e(%rip), %rsi     # 0xb1089
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 0x80d3b(%rip), %rsi     # 0xb108f
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 0x80cd8(%rip), %rsi     # 0xb1095
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 0x80c75(%rip), %rsi     # 0xb109b
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 0x80c12(%rip), %rsi     # 0xb10a1
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 0x80baf(%rip), %rsi     # 0xb10a7
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 0x80b4c(%rip), %rsi     # 0xb10ad
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 0x80ae9(%rip), %rsi     # 0xb10b3
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 0x80a80(%rip), %rsi     # 0xb10ba
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 0x80a1e(%rip), %rsi     # 0xb10c1
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 0x306fd
leaq 0x809d8(%rip), %rsi     # 0xb10c8
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 0x809b2(%rip), %rsi     # 0xb10d7
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 0x80961(%rip), %rsi     # 0xb10df
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 0x80910(%rip), %rsi     # 0xb10e6
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 0x808c6(%rip), %rsi     # 0xb10f5
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 0x88975(%rip), %rsi     # 0xb91fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10090(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x39dcc
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 0x8080b(%rip), %rsi     # 0xb1107
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 0x888a8(%rip), %rsi     # 0xb91fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x10091(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x39dcc
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 0x80750(%rip), %rsi     # 0xb1119
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 0x887db(%rip), %rsi     # 0xb91fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x1014f(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x39dcc
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 0x80693(%rip), %rsi     # 0xb1129
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 0x8870e(%rip), %rsi     # 0xb91fd
movl $0x4, %edx
movq %rbx, %rdi
callq 0xc830
movzbl 0x1005f(%r15), %eax
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x39dcc
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 0x805d6(%rip), %rsi     # 0xb1139
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 0x80588(%rip), %rsi     # 0xb1143
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 0x8053a(%rip), %rsi     # 0xb114e
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 0x30c5e
leaq 0x80509(%rip), %rsi     # 0xb115a
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 0x804e2(%rip), %rsi     # 0xb1168
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 0x8048c(%rip), %rsi     # 0xb116e
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 0x80366(%rip), %rsi     # 0xb10a7
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 0x802ef(%rip), %rsi     # 0xb108f
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 0x30e13
jmp 0x30e13
jmp 0x30e13
jmp 0x30e13
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
callq 0xc5e0
movq %rbx, %rdi
callq 0xc560