LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::Clear()
void PpuState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.PpuState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  regs_.Clear();
  spriteram_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&cycle_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&vramreadlatch_) -
        reinterpret_cast<char*>(&cycle_)) + sizeof(vramreadlatch_));
  }
  if (cached_has_bits & 0x00000700u) {
    ::memset(&scrollingmachinestate_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&yscrollorigin_) -
        reinterpret_cast<char*>(&scrollingmachinestate_)) + sizeof(yscrollorigin_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x18(%rdi)
addq $0x28, %rdi
callq 0x33146
movl 0x10(%rbx), %eax
testb %al, %al
je 0x2a1c3
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%rbx)
movups %xmm0, 0x40(%rbx)
movq $0x0, 0x60(%rbx)
testl $0x700, %eax            # imm = 0x700
je 0x2a1d9
movl $0x0, 0x70(%rbx)
movq $0x0, 0x68(%rbx)
movl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
jne 0x2a1ed
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
addq $0x8, %rbx
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x33226
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::MergeFrom(google::protobuf::Message const&)
void PpuState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.PpuState)
  GOOGLE_DCHECK_NE(&from, this);
  const PpuState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PpuState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.PpuState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.PpuState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x2b2ef
leaq 0xb9dc(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0xf0b, %ecx            # imm = 0xF0B
callq 0xb450
leaq 0xb9ce(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x1c197(%rip), %rax     # 0x47490
cmpq %rax, (%rbx)
je 0x2b30b
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2b316
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2b338
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2b323
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::InternalSwap(Rnes::PpuState*)
void PpuState::InternalSwap(PpuState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  regs_.InternalSwap(&other->regs_);
  spriteram_.InternalSwap(&other->spriteram_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PpuState, yscrollorigin_)
      + sizeof(PpuState::yscrollorigin_)
      - PROTOBUF_FIELD_OFFSET(PpuState, cycle_)>(
          reinterpret_cast<char*>(&cycle_),
          reinterpret_cast<char*>(&other->cycle_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x2b4f8
testb $0x1, (%rdi)
je 0x2b519
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x2b590
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
leaq 0x18(%r14), %rdi
leaq 0x18(%rbx), %rsi
callq 0xb110
leaq 0x28(%r14), %rdi
leaq 0x28(%rbx), %rsi
callq 0x3357c
movups 0x40(%r14), %xmm0
movups 0x40(%rbx), %xmm1
movups %xmm1, 0x40(%r14)
movups %xmm0, 0x40(%rbx)
movups 0x50(%r14), %xmm0
movups 0x50(%rbx), %xmm1
movups %xmm1, 0x50(%r14)
movups %xmm0, 0x50(%rbx)
movups 0x60(%r14), %xmm0
movups 0x60(%rbx), %xmm1
movups %xmm1, 0x60(%r14)
movups %xmm0, 0x60(%rbx)
movl 0x70(%r14), %eax
movl 0x70(%rbx), %ecx
movl %ecx, 0x70(%r14)
movl %eax, 0x70(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x33078
movq %rax, %rsi
jmp 0x2b511
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::_InternalParse(char const*, google::protobuf::internal::ParseContext*)
const char* MmcState_MmcNoneState::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
movq %rdi, %r14
leaq -0x28(%rbp), %r15
movq %rsi, (%r15)
addq $0x8, %r14
movl 0x5c(%rbx), %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x32fba
testb %al, %al
jne 0x2b820
movq -0x28(%rbp), %rdi
movzbl (%rdi), %r12d
leaq 0x1(%rdi), %rax
testb %r12b, %r12b
jns 0x2b794
movzbl (%rax), %eax
movl %eax, %ecx
shll $0x7, %ecx
addl %ecx, %r12d
addl $-0x80, %r12d
testb %al, %al
js 0x2b789
addq $0x2, %rdi
movq %rdi, %rax
jmp 0x2b794
movl %r12d, %esi
callq 0xb1e0
movl %edx, %r12d
movq %rax, -0x28(%rbp)
testq %rax, %rax
je 0x2b7ff
movl %r12d, %eax
andl $0x7, %eax
cmpl $0x4, %eax
setne %al
testl %r12d, %r12d
setne %cl
testb %al, %cl
jne 0x2b7c1
decl %r12d
movl %r12d, 0x50(%rbx)
movl $0x5, %eax
jmp 0x2b7f4
movq (%r14), %rsi
testb $0x1, %sil
je 0x2b806
andq $-0x2, %rsi
addq $0x8, %rsi
movl %r12d, %edi
movq -0x28(%rbp), %rdx
movq %rbx, %rcx
callq 0xb2d0
movq %rax, -0x28(%rbp)
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
leal 0x2(,%rcx,2), %eax
cmpl $0x2, %eax
je 0x2b746
jmp 0x2b813
movl $0x4, %eax
jmp 0x2b7f4
movq %r14, %rdi
callq 0x33078
movq %rax, %rsi
jmp 0x2b7d2
cmpl $0x4, %eax
jne 0x2b820
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* MmcState_MmcNoneState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Rnes.MmcState.MmcNoneState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Rnes.MmcState.MmcNoneState)
  return target;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq 0x8(%rdi), %rdi
testb $0x1, %dil
jne 0x2b845
movq %rsi, %rax
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
popq %rbp
jmp 0xb230
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::MergeFrom(google::protobuf::Message const&)
void MmcState_MmcNoneState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState.MmcNoneState)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState_MmcNoneState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState_MmcNoneState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState.MmcNoneState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState.MmcNoneState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x2b8d1
leaq 0xb3fa(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0xfe3, %ecx            # imm = 0xFE3
callq 0xb450
leaq 0xb3ec(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x1bc65(%rip), %rax     # 0x47540
cmpq %rax, (%rbx)
je 0x2b8ed
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2b8f8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2b91a
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2b905
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::MergeFrom(Rnes::MmcState_MmcNoneState const&)
void MmcState_MmcNoneState::MergeFrom(const MmcState_MmcNoneState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.MmcState.MmcNoneState)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq %rdi, %rsi
jne 0x2b973
leaq 0xb358(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0xff2, %ecx            # imm = 0xFF2
callq 0xb450
leaq 0xb34a(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2b994
addq $0x8, %rbx
andq $-0x2, %rsi
addq $0x8, %rsi
movq %rbx, %rdi
callq 0x331ee
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2b9a1
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::MmcState_Mmc1State(Rnes::MmcState_Mmc1State const&)
MmcState_Mmc1State::MmcState_Mmc1State(const MmcState_Mmc1State& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&controlreg_, &from.controlreg_,
    static_cast<size_t>(reinterpret_cast<char*>(&shiftregister_) -
    reinterpret_cast<char*>(&controlreg_)) + sizeof(shiftregister_));
  // @@protoc_insertion_point(copy_constructor:Rnes.MmcState.Mmc1State)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq $0x0, 0x8(%rdi)
leaq 0x1bb1a(%rip), %rax     # 0x475f0
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2bb01
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x28(%r14), %eax
movl %eax, 0x28(%rbx)
movups 0x18(%r14), %xmm0
movups %xmm0, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::Clear()
void MmcState_Mmc1State::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.MmcState.Mmc1State)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    ::memset(&controlreg_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&shiftregister_) -
        reinterpret_cast<char*>(&controlreg_)) + sizeof(shiftregister_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
testb $0x1f, 0x10(%rdi)
je 0x2bc1e
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rdi)
movl $0x0, 0x28(%rdi)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2bc2d
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x33226
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::ByteSizeLong() const
size_t MmcState_Mmc1State::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.MmcState.Mmc1State)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    // optional uint32 controlReg = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
          this->_internal_controlreg());
    }

    // optional uint32 chr0Bank = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
          this->_internal_chr0bank());
    }

    // optional uint32 chr1Bank = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
          this->_internal_chr1bank());
    }

    // optional uint32 prgBank = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
          this->_internal_prgbank());
    }

    // optional uint32 shiftRegister = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
          this->_internal_shiftregister());
    }

  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rdx
movl 0x10(%rdi), %ecx
testb $0x1f, %cl
je 0x2c1c4
testb $0x1, %cl
jne 0x2c1cb
xorl %eax, %eax
jmp 0x2c1df
xorl %eax, %eax
jmp 0x2c253
movl 0x18(%rdx), %eax
orl $0x1, %eax
bsrl %eax, %eax
leal (%rax,%rax,8), %eax
addl $0x49, %eax
shrl $0x6, %eax
incl %eax
testb $0x2, %cl
je 0x2c1fc
movl 0x1c(%rdx), %esi
orl $0x1, %esi
bsrl %esi, %esi
leal (%rsi,%rsi,8), %esi
addl $0x49, %esi
shrl $0x6, %esi
addq %rsi, %rax
incq %rax
testb $0x4, %cl
je 0x2c219
movl 0x20(%rdx), %esi
orl $0x1, %esi
bsrl %esi, %esi
leal (%rsi,%rsi,8), %esi
addl $0x49, %esi
shrl $0x6, %esi
addq %rsi, %rax
incq %rax
testb $0x8, %cl
je 0x2c236
movl 0x24(%rdx), %esi
orl $0x1, %esi
bsrl %esi, %esi
leal (%rsi,%rsi,8), %esi
addl $0x49, %esi
shrl $0x6, %esi
addq %rsi, %rax
incq %rax
testb $0x10, %cl
je 0x2c253
movl 0x28(%rdx), %ecx
orl $0x1, %ecx
bsrl %ecx, %ecx
leal (%rcx,%rcx,8), %ecx
addl $0x49, %ecx
shrl $0x6, %ecx
addq %rcx, %rax
incq %rax
testb $0x1, 0x8(%rdx)
jne 0x2c25e
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xb920
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::MergeFrom(google::protobuf::Message const&)
void MmcState_Mmc1State::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState.Mmc1State)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState_Mmc1State* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState_Mmc1State>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState.Mmc1State)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState.Mmc1State)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x2c2c9
leaq 0xaa02(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x111a, %ecx           # imm = 0x111A
callq 0xb450
leaq 0xa9f4(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x1b31d(%rip), %rax     # 0x475f0
cmpq %rax, (%rbx)
je 0x2c2e5
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2c2f0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2c312
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2c2fd
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::MergeFrom(Rnes::MmcState_Mmc1State const&)
void MmcState_Mmc1State::MergeFrom(const MmcState_Mmc1State& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.MmcState.Mmc1State)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    if (cached_has_bits & 0x00000001u) {
      controlreg_ = from.controlreg_;
    }
    if (cached_has_bits & 0x00000002u) {
      chr0bank_ = from.chr0bank_;
    }
    if (cached_has_bits & 0x00000004u) {
      chr1bank_ = from.chr1bank_;
    }
    if (cached_has_bits & 0x00000008u) {
      prgbank_ = from.prgbank_;
    }
    if (cached_has_bits & 0x00000010u) {
      shiftregister_ = from.shiftregister_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq %rdi, %rsi
jne 0x2c36b
leaq 0xa960(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1129, %ecx           # imm = 0x1129
callq 0xb450
leaq 0xa952(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2c389
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x10(%r14), %eax
testb $0x1f, %al
je 0x2c3cb
testb $0x1, %al
je 0x2c39c
movl 0x18(%r14), %ecx
movl %ecx, 0x18(%rbx)
testb $0x2, %al
je 0x2c3a7
movl 0x1c(%r14), %ecx
movl %ecx, 0x1c(%rbx)
testb $0x4, %al
je 0x2c3b2
movl 0x20(%r14), %ecx
movl %ecx, 0x20(%rbx)
testb $0x8, %al
je 0x2c3bd
movl 0x24(%r14), %ecx
movl %ecx, 0x24(%rbx)
testb $0x10, %al
je 0x2c3c8
movl 0x28(%r14), %ecx
movl %ecx, 0x28(%rbx)
orl %eax, 0x10(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2c3d8
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::InternalSwap(Rnes::MmcState_Mmc1State*)
void MmcState_Mmc1State::InternalSwap(MmcState_Mmc1State* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MmcState_Mmc1State, shiftregister_)
      + sizeof(MmcState_Mmc1State::shiftregister_)
      - PROTOBUF_FIELD_OFFSET(MmcState_Mmc1State, controlreg_)>(
          reinterpret_cast<char*>(&controlreg_),
          reinterpret_cast<char*>(&other->controlreg_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x2c464
testb $0x1, (%rdi)
je 0x2c481
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x2c4ba
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movups 0x18(%r14), %xmm0
movups 0x18(%rbx), %xmm1
movups %xmm1, 0x18(%r14)
movups %xmm0, 0x18(%rbx)
movl 0x28(%r14), %eax
movl 0x28(%rbx), %ecx
movl %ecx, 0x28(%r14)
movl %eax, 0x28(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x33078
movq %rax, %rsi
jmp 0x2c479
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::MmcState_Mmc3State(Rnes::MmcState_Mmc3State const&)
MmcState_Mmc3State::MmcState_Mmc3State(const MmcState_Mmc3State& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  bankregister_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from._internal_has_bankregister()) {
    bankregister_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_bankregister(),
      GetArena());
  }
  ::memcpy(&bankselectreg_, &from.bankselectreg_,
    static_cast<size_t>(reinterpret_cast<char*>(&irqpending_) -
    reinterpret_cast<char*>(&bankselectreg_)) + sizeof(irqpending_));
  // @@protoc_insertion_point(copy_constructor:Rnes.MmcState.Mmc3State)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x8(%rdi), %r15
movq $0x0, 0x8(%rdi)
leaq 0x1b131(%rip), %rax     # 0x476a0
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2c599
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x331ee
movq 0x1ba20(%rip), %rax     # 0x47fc0
movq %rax, 0x18(%rbx)
testb $0x1, 0x10(%r14)
je 0x2c5c1
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2c5dd
callq 0x23c3e
movq 0x2e(%r14), %rax
movq %rax, 0x2e(%rbx)
movups 0x20(%r14), %xmm0
movups %xmm0, 0x20(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2c5bc
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::Clear()
void MmcState_Mmc3State::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.MmcState.Mmc3State)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    bankregister_.ClearNonDefaultToEmpty();
  }
  if (cached_has_bits & 0x000000feu) {
    ::memset(&bankselectreg_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&irqpending_) -
        reinterpret_cast<char*>(&bankselectreg_)) + sizeof(irqpending_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl 0x10(%rdi), %eax
testb $0x1, %al
je 0x2c685
movq 0x18(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $-0x2, %al
je 0x2c698
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rdi)
movq $0x0, 0x2e(%rdi)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2c6a7
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x33226
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::MergeFrom(google::protobuf::Message const&)
void MmcState_Mmc3State::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState.Mmc3State)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState_Mmc3State* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState_Mmc3State>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState.Mmc3State)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState.Mmc3State)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x2cf1f
leaq 0x9dac(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x12ba, %ecx           # imm = 0x12BA
callq 0xb450
leaq 0x9d9e(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x1a777(%rip), %rax     # 0x476a0
cmpq %rax, (%rbx)
je 0x2cf3b
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2cf46
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2cf68
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2cf53
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::MergeFrom(Rnes::MmcState_Mmc3State const&)
void MmcState_Mmc3State::MergeFrom(const MmcState_Mmc3State& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.MmcState.Mmc3State)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_set_bankregister(from._internal_bankregister());
    }
    if (cached_has_bits & 0x00000002u) {
      bankselectreg_ = from.bankselectreg_;
    }
    if (cached_has_bits & 0x00000004u) {
      mirrorreg_ = from.mirrorreg_;
    }
    if (cached_has_bits & 0x00000008u) {
      prgramreg_ = from.prgramreg_;
    }
    if (cached_has_bits & 0x00000010u) {
      irqreloadreg_ = from.irqreloadreg_;
    }
    if (cached_has_bits & 0x00000020u) {
      irqcounterreg_ = from.irqcounterreg_;
    }
    if (cached_has_bits & 0x00000040u) {
      irqenabled_ = from.irqenabled_;
    }
    if (cached_has_bits & 0x00000080u) {
      irqpending_ = from.irqpending_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq %rdi, %rsi
jne 0x2cfc1
leaq 0x9d0a(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x12c9, %ecx           # imm = 0x12C9
callq 0xb450
leaq 0x9cfc(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2cfdf
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x10(%r14), %r15d
testb %r15b, %r15b
je 0x2d088
testb $0x1, %r15b
je 0x2d02a
movq 0x18(%r14), %rdx
orl $0x1, 0x10(%rbx)
leaq 0x18(%rbx), %rdi
movq 0x8(%rbx), %rsi
testb $0x1, %sil
jne 0x2d093
movq (%rdi), %rax
cmpq 0x1afaa(%rip), %rax     # 0x47fc0
je 0x2d025
movq %rax, %rdi
movq %rdx, %rsi
callq 0xb900
jmp 0x2d02a
callq 0x23c3e
testb $0x2, %r15b
je 0x2d037
movl 0x20(%r14), %eax
movl %eax, 0x20(%rbx)
testb $0x4, %r15b
je 0x2d044
movl 0x24(%r14), %eax
movl %eax, 0x24(%rbx)
testb $0x8, %r15b
je 0x2d051
movl 0x28(%r14), %eax
movl %eax, 0x28(%rbx)
testb $0x10, %r15b
je 0x2d05e
movl 0x2c(%r14), %eax
movl %eax, 0x2c(%rbx)
testb $0x20, %r15b
je 0x2d06b
movl 0x30(%r14), %eax
movl %eax, 0x30(%rbx)
testb $0x40, %r15b
je 0x2d078
movb 0x34(%r14), %al
movb %al, 0x34(%rbx)
testb %r15b, %r15b
jns 0x2d084
movb 0x35(%r14), %al
movb %al, 0x35(%rbx)
orl %r15d, 0x10(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2d00c
jmp 0x2d0a1
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::InternalSwap(Rnes::MmcState_Mmc3State*)
void MmcState_Mmc3State::InternalSwap(MmcState_Mmc3State* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  bankregister_.Swap(&other->bankregister_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MmcState_Mmc3State, irqpending_)
      + sizeof(MmcState_Mmc3State::irqpending_)
      - PROTOBUF_FIELD_OFFSET(MmcState_Mmc3State, bankselectreg_)>(
          reinterpret_cast<char*>(&bankselectreg_),
          reinterpret_cast<char*>(&other->bankselectreg_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x2d132
testb $0x1, (%rdi)
je 0x2d153
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x2d231
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
leaq 0x18(%r14), %r12
movq 0x8(%r14), %r15
testb $0x1, %r15b
jne 0x2d225
leaq 0x18(%rbx), %r13
movq (%r12), %rax
cmpq 0x1ae3e(%rip), %rax     # 0x47fc0
je 0x2d1f4
movq (%r12), %r12
movq (%r13), %rax
cmpq 0x1ae2d(%rip), %rax     # 0x47fc0
jne 0x2d1a7
movq 0x1ae24(%rip), %rdx     # 0x47fc0
movq %r13, %rdi
movq %r15, %rsi
callq 0x23c3e
movq (%r13), %rsi
movq %r12, %rdi
callq 0xb940
movups 0x20(%r14), %xmm0
movups 0x20(%rbx), %xmm1
movups %xmm1, 0x20(%r14)
movups %xmm0, 0x20(%rbx)
movl 0x30(%r14), %eax
movl 0x30(%rbx), %ecx
movl %ecx, 0x30(%r14)
movl %eax, 0x30(%rbx)
movzwl 0x34(%r14), %eax
movzwl 0x34(%rbx), %ecx
movw %cx, 0x34(%r14)
movw %ax, 0x34(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r13), %rcx
cmpq 0x1adc1(%rip), %rcx     # 0x47fc0
je 0x2d1b3
cmpq 0x1adb8(%rip), %rax     # 0x47fc0
jne 0x2d184
movq 0x1adab(%rip), %rdx     # 0x47fc0
movq %r12, %rdi
movq %r15, %rsi
callq 0x23c3e
jmp 0x2d184
andq $-0x2, %r15
movq (%r15), %r15
jmp 0x2d173
callq 0x33078
movq %rax, %rsi
jmp 0x2d14b
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::InitAsDefaultInstance()
void MmcState::InitAsDefaultInstance() {
  ::Rnes::_MmcState_default_instance_._instance.get_mutable()->mmcnone_ = const_cast< ::Rnes::MmcState_MmcNoneState*>(
      ::Rnes::MmcState_MmcNoneState::internal_default_instance());
  ::Rnes::_MmcState_default_instance_._instance.get_mutable()->mmc1_ = const_cast< ::Rnes::MmcState_Mmc1State*>(
      ::Rnes::MmcState_Mmc1State::internal_default_instance());
  ::Rnes::_MmcState_default_instance_._instance.get_mutable()->mmc3_ = const_cast< ::Rnes::MmcState_Mmc3State*>(
      ::Rnes::MmcState_Mmc3State::internal_default_instance());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x1b77d(%rip), %rax     # 0x489f0
movq %rax, 0x1b80e(%rip)     # 0x48a88
leaq 0x1b787(%rip), %rax     # 0x48a08
movq %rax, 0x1b808(%rip)     # 0x48a90
leaq 0x1b7a9(%rip), %rax     # 0x48a38
movq %rax, 0x1b802(%rip)     # 0x48a98
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::Clear()
void MmcState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.MmcState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(mmcnone_ != nullptr);
      mmcnone_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(mmc1_ != nullptr);
      mmc1_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(mmc3_ != nullptr);
      mmc3_->Clear();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movq %rdi, %rbx
movl 0x10(%rdi), %r15d
testb $0x7, %r15b
je 0x2d71e
testb $0x1, %r15b
je 0x2d660
movq 0x18(%rbx), %r12
testq %r12, %r12
jne 0x2d64a
leaq 0x968a(%rip), %rdx      # 0x36c91
leaq -0xd0(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x137f, %ecx           # imm = 0x137F
callq 0xb450
leaq 0x9728(%rip), %rsi      # 0x36d4f
movq %r14, %rdi
callq 0xb980
leaq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0xd0(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x18(%rbx), %rdi
testb $0x1, 0x8(%rdi)
je 0x2d660
addq $0x8, %rdi
callq 0x33226
testb $0x2, %r15b
je 0x2d6c2
movq 0x20(%rbx), %r12
testq %r12, %r12
jne 0x2d6b6
leaq 0x961b(%rip), %rdx      # 0x36c91
leaq -0x98(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1383, %ecx           # imm = 0x1383
callq 0xb450
leaq 0x96dd(%rip), %rsi      # 0x36d73
movq %r14, %rdi
callq 0xb980
leaq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x98(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x20(%rbx), %rdi
callq 0x2bc06
testb $0x4, %r15b
je 0x2d71e
movq 0x28(%rbx), %r15
testq %r15, %r15
jne 0x2d712
leaq 0x95b9(%rip), %rdx      # 0x36c91
leaq -0x60(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1387, %ecx           # imm = 0x1387
callq 0xb450
leaq 0x969f(%rip), %rsi      # 0x36d94
movq %r14, %rdi
callq 0xb980
leaq -0x21(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x60(%rbp), %rdi
callq 0xb730
testq %r15, %r15
movq 0x28(%rbx), %rdi
callq 0x2c668
movl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
je 0x2d737
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x33226
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d74d
jmp 0x2d756
jmp 0x2d762
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
jmp 0x2d76c
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
jmp 0x2d76c
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::ByteSizeLong() const
size_t MmcState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.MmcState)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    // optional .Rnes.MmcState.MmcNoneState mmcNone = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *mmcnone_);
    }

    // optional .Rnes.MmcState.Mmc1State mmc1 = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *mmc1_);
    }

    // optional .Rnes.MmcState.Mmc3State mmc3 = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *mmc3_);
    }

  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x10(%rdi), %r15d
testb $0x7, %r15b
je 0x2db88
testb $0x1, %r15b
jne 0x2db90
xorl %r14d, %r14d
jmp 0x2dbc2
xorl %r14d, %r14d
jmp 0x2dc10
movq 0x18(%rbx), %rdi
leaq 0x10(%rdi), %rdx
testb $0x1, 0x8(%rdi)
jne 0x2dc45
movl $0x0, (%rdx)
xorl %eax, %eax
movl %eax, %ecx
orl $0x1, %ecx
bsrl %ecx, %ecx
leal (%rcx,%rcx,8), %ecx
addl $0x49, %ecx
shrl $0x6, %ecx
leaq (%rax,%rcx), %r14
incq %r14
testb $0x2, %r15b
je 0x2dbe9
movq 0x20(%rbx), %rdi
callq 0x2c1ac
addq %rax, %r14
orl $0x1, %eax
bsrl %eax, %eax
leal (%rax,%rax,8), %eax
addl $0x49, %eax
shrl $0x6, %eax
addq %rax, %r14
incq %r14
testb $0x4, %r15b
je 0x2dc10
movq 0x28(%rbx), %rdi
callq 0x2cdce
addq %rax, %r14
orl $0x1, %eax
bsrl %eax, %eax
leal (%rax,%rax,8), %eax
addl $0x49, %eax
shrl $0x6, %eax
addq %rax, %r14
incq %r14
testb $0x1, 0x8(%rbx)
jne 0x2dc28
movl %r14d, 0x14(%rbx)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8(%rbx), %rdi
addq $0x14, %rbx
movq %r14, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xb920
addq $0x8, %rdi
xorl %esi, %esi
callq 0xb920
jmp 0x2dbaa
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::MergeFrom(google::protobuf::Message const&)
void MmcState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x2dcaf
leaq 0x901c(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1416, %ecx           # imm = 0x1416
callq 0xb450
leaq 0x900e(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x19a97(%rip), %rax     # 0x47750
cmpq %rax, (%rbx)
je 0x2dccb
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2dcd6
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2dcf8
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2dce3
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::MergeFrom(Rnes::MmcState const&)
void MmcState::MergeFrom(const MmcState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.MmcState)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_mmcnone()->::Rnes::MmcState_MmcNoneState::MergeFrom(from._internal_mmcnone());
    }
    if (cached_has_bits & 0x00000002u) {
      _internal_mutable_mmc1()->::Rnes::MmcState_Mmc1State::MergeFrom(from._internal_mmc1());
    }
    if (cached_has_bits & 0x00000004u) {
      _internal_mutable_mmc3()->::Rnes::MmcState_Mmc3State::MergeFrom(from._internal_mmc3());
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x2dd53
leaq 0x8f78(%rip), %rdx      # 0x36c91
leaq -0x60(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1425, %ecx           # imm = 0x1425
callq 0xb450
leaq 0x8f6a(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x21(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x60(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x8(%r14), %r15
movq 0x8(%rbx), %rsi
testb $0x1, %sil
je 0x2dd74
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x331ee
movl 0x10(%rbx), %r12d
testb $0x7, %r12b
je 0x2de43
testb $0x1, %r12b
je 0x2ddc5
orb $0x1, 0x10(%r14)
cmpq $0x0, 0x18(%r14)
jne 0x2ddaa
movq (%r15), %rdi
testb $0x1, %dil
jne 0x2de50
callq 0x31f56
movq %rax, 0x18(%r14)
movq 0x18(%r14), %rdi
movq 0x18(%rbx), %rax
testq %rax, %rax
leaq 0x1ac34(%rip), %rsi     # 0x489f0
cmovneq %rax, %rsi
callq 0x2b91a
testb $0x2, %r12b
je 0x2de04
orb $0x2, 0x10(%r14)
cmpq $0x0, 0x20(%r14)
jne 0x2dde9
movq (%r15), %rdi
testb $0x1, %dil
jne 0x2de5c
callq 0x31fb8
movq %rax, 0x20(%r14)
movq 0x20(%r14), %rdi
movq 0x20(%rbx), %rax
testq %rax, %rax
leaq 0x1ac0d(%rip), %rsi     # 0x48a08
cmovneq %rax, %rsi
callq 0x2c312
testb $0x4, %r12b
je 0x2de43
orb $0x4, 0x10(%r14)
cmpq $0x0, 0x28(%r14)
jne 0x2de28
movq (%r15), %rdi
testb $0x1, %dil
jne 0x2de68
callq 0x3201e
movq %rax, 0x28(%r14)
movq 0x28(%r14), %rdi
movq 0x28(%rbx), %rax
testq %rax, %rax
leaq 0x1abfe(%rip), %rsi     # 0x48a38
cmovneq %rax, %rsi
callq 0x2cf68
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x2dda1
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x2dde0
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x2de1f
jmp 0x2de73
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::InternalSwap(Rnes::MmcState*)
void MmcState::InternalSwap(MmcState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MmcState, mmc3_)
      + sizeof(MmcState::mmc3_)
      - PROTOBUF_FIELD_OFFSET(MmcState, mmcnone_)>(
          reinterpret_cast<char*>(&mmcnone_),
          reinterpret_cast<char*>(&other->mmcnone_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x2df00
testb $0x1, (%rdi)
je 0x2df1d
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x2df58
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movups 0x18(%r14), %xmm0
movups 0x18(%rbx), %xmm1
movups %xmm1, 0x18(%r14)
movups %xmm0, 0x18(%rbx)
movq 0x28(%r14), %rax
movq 0x28(%rbx), %rcx
movq %rcx, 0x28(%r14)
movq %rax, 0x28(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x33078
movq %rax, %rsi
jmp 0x2df15
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::ControllerState(Rnes::ControllerState const&)
ControllerState::ControllerState(const ControllerState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&control_, &from.control_,
    static_cast<size_t>(reinterpret_cast<char*>(&shiftreg_) -
    reinterpret_cast<char*>(&control_)) + sizeof(shiftreg_));
  // @@protoc_insertion_point(copy_constructor:Rnes.ControllerState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq $0x0, 0x8(%rdi)
leaq 0x19836(%rip), %rax     # 0x47800
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2dff5
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movq 0x18(%r14), %rax
movq %rax, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::Clear()
void ControllerState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.ControllerState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    ::memset(&control_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&shiftreg_) -
        reinterpret_cast<char*>(&control_)) + sizeof(shiftreg_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
testb $0x3, 0x10(%rdi)
je 0x2e104
movq $0x0, 0x18(%rdi)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2e113
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x33226
nop