LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/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 0x23446
testb $0x1, %r15b
jne 0x2344b
xorl %r14d, %r14d
jmp 0x2345a
xorl %r14d, %r14d
jmp 0x23484
movq 0x18(%rbx), %rdi
callq 0x27968
movq %rax, %r14
incq %r14
testb $0x2, %r15b
je 0x2346f
movq 0x20(%rbx), %rdi
callq 0x27988
addq %rax, %r14
incq %r14
testb $0x4, %r15b
je 0x23484
movq 0x28(%rbx), %rdi
callq 0x279a8
addq %rax, %r14
incq %r14
testb $0x1, 0x8(%rbx)
jne 0x2349c
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 0xb900
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 0x23511
leaq 0x98a8(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x1416, %ecx           # imm = 0x1416
callq 0xb460
leaq 0x989c(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
leaq 0x1d248(%rip), %rax     # 0x40760
cmpq %rax, (%rbx)
je 0x2352a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x23535
movq %r14, %rdi
movq %rbx, %rsi
callq 0x23556
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x23542
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x235ad
leaq 0x980c(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x1425, %ecx           # imm = 0x1425
callq 0xb460
leaq 0x9800(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x8(%rbx), %rsi
testb $0x1, %sil
je 0x235c8
leaq 0x8(%r14), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x291a6
movl 0x10(%rbx), %r15d
testb $0x7, %r15b
je 0x2364a
testb $0x1, %r15b
je 0x235fa
movq %r14, %rdi
callq 0x27832
movq 0x18(%rbx), %rcx
testq %rcx, %rcx
leaq 0x1e402(%rip), %rsi     # 0x419f0
cmovneq %rcx, %rsi
movq %rax, %rdi
callq 0x21e30
testb $0x2, %r15b
je 0x23622
movq %r14, %rdi
callq 0x1d028
movq 0x20(%rbx), %rcx
testq %rcx, %rcx
leaq 0x1e3f2(%rip), %rsi     # 0x41a08
cmovneq %rcx, %rsi
movq %rax, %rdi
callq 0x22474
testb $0x4, %r15b
je 0x2364a
movq %r14, %rdi
callq 0x1d062
movq 0x28(%rbx), %rcx
testq %rcx, %rcx
leaq 0x1e3fa(%rip), %rsi     # 0x41a38
cmovneq %rcx, %rsi
movq %rax, %rdi
callq 0x22c6c
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x23657
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq 0x8(%rsi), %rsi
testb $0x1, 0x8(%rdi)
jne 0x236e3
testb $0x1, %sil
jne 0x236e9
jmp 0x236fa
testb $0x1, %sil
je 0x2372f
andq $-0x2, %rsi
addq $0x8, %rsi
leaq 0x8(%r14), %rdi
callq 0x2920c
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)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x8(%rbx), %rdi
callq 0x28ff8
movq %rax, %rsi
jmp 0x236f1
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 %rdi, %rbx
andq $0x0, 0x8(%rdi)
movq %rsi, %r14
leaq 0x1d08d(%rip), %rax     # 0x40810
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
andl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x237ab
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x291a6
movq 0x18(%r14), %rax
movq %rax, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/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 0x2383b
andq $0x0, 0x18(%rdi)
andl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x23847
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x291de
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* ControllerState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Rnes.ControllerState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional uint32 control = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_control(), target);
  }

  // optional uint32 shiftReg = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_shiftreg(), target);
  }

  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.ControllerState)
  return target;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rdi, %r14
movl 0x10(%rdi), %r15d
testb $0x1, %r15b
je 0x239a1
movq %rbx, %rdi
callq 0x2682a
movl 0x18(%r14), %edi
movb $0x8, (%rax)
leaq 0x1(%rax), %rsi
callq 0x28e5c
movq %rax, %rsi
testb $0x2, %r15b
je 0x239c2
movq %rbx, %rdi
callq 0x2682a
movl 0x1c(%r14), %edi
movb $0x10, (%rax)
leaq 0x1(%rax), %rsi
callq 0x28e5c
movq %rax, %rsi
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x239da
movq %rsi, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xb260
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::ByteSizeLong() const
size_t ControllerState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.ControllerState)
  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 & 0x00000003u) {
    // optional uint32 control = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
          this->_internal_control());
    }

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

  }
  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 $0x3, %cl
je 0x23a0c
testb $0x1, %cl
jne 0x23a10
xorl %eax, %eax
jmp 0x23a24
xorl %eax, %eax
jmp 0x23a41
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 0x23a41
movl 0x1c(%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 0x23a4c
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xb900
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::MergeFrom(google::protobuf::Message const&)
void ControllerState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.ControllerState)
  GOOGLE_DCHECK_NE(&from, this);
  const ControllerState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ControllerState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.ControllerState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.ControllerState)
    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 0x23ab5
leaq 0x9304(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x1518, %ecx           # imm = 0x1518
callq 0xb460
leaq 0x92f8(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
leaq 0x1cd54(%rip), %rax     # 0x40810
cmpq %rax, (%rbx)
je 0x23ace
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x23ad9
movq %r14, %rdi
movq %rbx, %rsi
callq 0x23afa
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x23ae6
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::MergeFrom(Rnes::ControllerState const&)
void ControllerState::MergeFrom(const ControllerState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.ControllerState)
  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 & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      control_ = from.control_;
    }
    if (cached_has_bits & 0x00000002u) {
      shiftreg_ = from.shiftreg_;
    }
    _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 0x23b51
leaq 0x9268(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x1527, %ecx           # imm = 0x1527
callq 0xb460
leaq 0x925c(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x23b6c
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x291a6
movl 0x10(%r14), %eax
testb $0x3, %al
je 0x23b8d
testb $0x1, %al
je 0x23b7f
movl 0x18(%r14), %ecx
movl %ecx, 0x18(%rbx)
testb $0x2, %al
je 0x23b8a
movl 0x1c(%r14), %ecx
movl %ecx, 0x1c(%rbx)
orl %eax, 0x10(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x23b9a
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::InternalSwap(Rnes::ControllerState*)
void ControllerState::InternalSwap(ControllerState* 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(ControllerState, shiftreg_)
      + sizeof(ControllerState::shiftreg_)
      - PROTOBUF_FIELD_OFFSET(ControllerState, control_)>(
          reinterpret_cast<char*>(&control_),
          reinterpret_cast<char*>(&other->control_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq 0x8(%rsi), %rsi
testb $0x1, 0x8(%rdi)
jne 0x23c25
testb $0x1, %sil
jne 0x23c2b
jmp 0x23c3c
testb $0x1, %sil
je 0x23c5f
andq $-0x2, %rsi
addq $0x8, %rsi
leaq 0x8(%r14), %rdi
callq 0x2920c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movq 0x18(%r14), %rax
movq 0x18(%rbx), %rcx
movq %rcx, 0x18(%r14)
movq %rax, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x8(%rbx), %rdi
callq 0x28ff8
movq %rax, %rsi
jmp 0x23c33
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::CpuMemoryState(Rnes::CpuMemoryState const&)
CpuMemoryState::CpuMemoryState(const CpuMemoryState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  cpusram_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from._internal_has_cpusram()) {
    cpusram_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_cpusram(),
      GetArena());
  }
  prgsram_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from._internal_has_prgsram()) {
    prgsram_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_prgsram(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Rnes.CpuMemoryState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
andq $0x0, 0x8(%rdi)
movq %rsi, %r14
leaq 0x1cc07(%rip), %rax     # 0x408c0
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
andl $0x0, 0x14(%rdi)
leaq 0x8(%rdi), %r15
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x23ce4
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x291a6
movq 0x1d2e5(%rip), %r12     # 0x40fd0
movq %r12, 0x18(%rbx)
movl 0x10(%r14), %eax
testb $0x1, %al
je 0x23d17
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rcx
testb $0x1, %cl
jne 0x23d4f
movq 0x1d2c2(%rip), %rsi     # 0x40fd0
callq 0x1d09c
movl 0x10(%r14), %eax
movq %r12, 0x20(%rbx)
testb $0x2, %al
jne 0x23d28
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
addq $0x20, %rbx
movq 0x20(%r14), %rdx
movq (%r15), %rcx
testb $0x1, %cl
jne 0x23d58
movq 0x1d291(%rip), %rsi     # 0x40fd0
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1d09c
andq $-0x2, %rcx
movq (%rcx), %rcx
jmp 0x23d07
andq $-0x2, %rcx
movq (%rcx), %rcx
jmp 0x23d38
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::Clear()
void CpuMemoryState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.CpuMemoryState)
  ::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) {
    if (cached_has_bits & 0x00000001u) {
      cpusram_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000002u) {
      prgsram_.ClearNonDefaultToEmpty();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl 0x10(%rdi), %eax
testb $0x3, %al
je 0x23e07
testb $0x1, %al
je 0x23df4
movq 0x18(%rdi), %rcx
andq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x2, %al
je 0x23e07
movq 0x20(%rdi), %rax
andq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
andl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x23e13
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x291de
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* CpuMemoryState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Rnes.CpuMemoryState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional bytes cpuSram = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->WriteBytesMaybeAliased(
        1, this->_internal_cpusram(), target);
  }

  // optional bytes prgSram = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->WriteBytesMaybeAliased(
        2, this->_internal_prgsram(), target);
  }

  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.CpuMemoryState)
  return target;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %rax
movq %rdi, %r14
movl 0x10(%rdi), %r15d
testb $0x1, %r15b
je 0x23f5d
movq 0x18(%r14), %rdx
pushq $0x1
popq %rsi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x287fe
testb $0x2, %r15b
je 0x23f75
movq 0x20(%r14), %rdx
pushq $0x2
popq %rsi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x287fe
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x23f8a
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %rax, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xb260
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::ByteSizeLong() const
size_t CpuMemoryState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.CpuMemoryState)
  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 & 0x00000003u) {
    // optional bytes cpuSram = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_cpusram());
    }

    // optional bytes prgSram = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_prgsram());
    }

  }
  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 $0x3, %r15b
je 0x23fca
testb $0x1, %r15b
jne 0x23fcf
xorl %r14d, %r14d
jmp 0x23fde
xorl %r14d, %r14d
jmp 0x23ff3
movq 0x18(%rbx), %rdi
callq 0x27480
movq %rax, %r14
incq %r14
testb $0x2, %r15b
je 0x23ff3
movq 0x20(%rbx), %rdi
callq 0x27480
addq %rax, %r14
incq %r14
testb $0x1, 0x8(%rbx)
jne 0x2400b
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 0xb900
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::MergeFrom(google::protobuf::Message const&)
void CpuMemoryState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.CpuMemoryState)
  GOOGLE_DCHECK_NE(&from, this);
  const CpuMemoryState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpuMemoryState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.CpuMemoryState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.CpuMemoryState)
    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 0x2407f
leaq 0x8d3a(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x1624, %ecx           # imm = 0x1624
callq 0xb460
leaq 0x8d2e(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
leaq 0x1c83a(%rip), %rax     # 0x408c0
cmpq %rax, (%rbx)
je 0x24098
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x240a3
movq %r14, %rdi
movq %rbx, %rsi
callq 0x240c4
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x240b0
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::MergeFrom(Rnes::CpuMemoryState const&)
void CpuMemoryState::MergeFrom(const CpuMemoryState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.CpuMemoryState)
  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 & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _internal_set_cpusram(from._internal_cpusram());
    }
    if (cached_has_bits & 0x00000002u) {
      _internal_set_prgsram(from._internal_prgsram());
    }
  }
}

// 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 0x2411b
leaq 0x8c9e(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x1633, %ecx           # imm = 0x1633
callq 0xb460
leaq 0x8c92(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x24136
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x291a6
movl 0x10(%r14), %r15d
testb $0x3, %r15b
je 0x24164
testb $0x1, %r15b
je 0x24152
movq 0x18(%r14), %rsi
movq %rbx, %rdi
callq 0x27bc0
testb $0x2, %r15b
je 0x24164
movq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x27bee
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x24171
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::InternalSwap(Rnes::CpuMemoryState*)
void CpuMemoryState::InternalSwap(CpuMemoryState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  cpusram_.Swap(&other->cpusram_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  prgsram_.Swap(&other->prgsram_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

// 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(%rdi), %r15
movq 0x8(%rdi), %r12
movq 0x8(%rsi), %rsi
testb $0x1, %r12b
jne 0x2420e
testb $0x1, %sil
jne 0x24218
xorl %eax, %eax
jmp 0x24231
testb $0x1, %sil
je 0x2433a
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x2920c
movq (%r15), %r12
movl %r12d, %eax
andl $0x1, %eax
movq %r15, -0x30(%rbp)
movl 0x10(%r14), %ecx
movl 0x10(%rbx), %edx
movl %edx, 0x10(%r14)
movl %ecx, 0x10(%rbx)
leaq 0x18(%r14), %rdi
movq %r12, %r13
testq %rax, %rax
jne 0x2431e
leaq 0x18(%rbx), %r15
movq (%rdi), %rcx
cmpq 0x1cd6f(%rip), %rcx     # 0x40fd0
jne 0x2426f
movq (%r15), %rcx
cmpq 0x1cd63(%rip), %rcx     # 0x40fd0
je 0x242ab
movq 0x1cd5a(%rip), %rsi     # 0x40fd0
movq %r13, %rdx
callq 0x28f3c
movq %rax, %r12
movq %r15, %rdi
movq 0x1cd45(%rip), %rsi     # 0x40fd0
movq %r13, %rdx
callq 0x28f3c
movq %r12, %rdi
movq %rax, %rsi
callq 0xb930
movq -0x30(%rbp), %rax
movq (%rax), %r12
movl %r12d, %eax
andl $0x1, %eax
addq $0x20, %r14
testq %rax, %rax
jne 0x2432d
addq $0x20, %rbx
movq (%r14), %rax
cmpq 0x1cd0e(%rip), %rax     # 0x40fd0
jne 0x242d0
movq (%rbx), %rax
cmpq 0x1cd02(%rip), %rax     # 0x40fd0
je 0x2430f
movq 0x1ccf9(%rip), %r15     # 0x40fd0
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x28f3c
movq %rax, %r14
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x28f3c
movq %r14, %rdi
movq %rax, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xb930
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rcx
andq $-0x2, %rcx
movq (%rcx), %r13
jmp 0x24253
andq $-0x2, %r12
movq (%r12), %r12
jmp 0x242b4
leaq 0x8(%rbx), %rdi
callq 0x28ff8
movq %rax, %rsi
jmp 0x24220
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::VideoMemoryState(Rnes::VideoMemoryState const&)
VideoMemoryState::VideoMemoryState(const VideoMemoryState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  patterntablememory_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from._internal_has_patterntablememory()) {
    patterntablememory_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_patterntablememory(),
      GetArena());
  }
  nametablememory_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from._internal_has_nametablememory()) {
    nametablememory_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_nametablememory(),
      GetArena());
  }
  palettememory_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from._internal_has_palettememory()) {
    palettememory_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_palettememory(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Rnes.VideoMemoryState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
andq $0x0, 0x8(%rdi)
movq %rsi, %r14
leaq 0x1c5d9(%rip), %rax     # 0x40970
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
andl $0x0, 0x14(%rdi)
leaq 0x8(%rdi), %r15
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x243c2
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x291a6
movq 0x1cc07(%rip), %r12     # 0x40fd0
movq %r12, 0x18(%rbx)
movl 0x10(%r14), %eax
testb $0x1, %al
je 0x243f5
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rcx
testb $0x1, %cl
jne 0x24455
movq 0x1cbe4(%rip), %rsi     # 0x40fd0
callq 0x1d09c
movl 0x10(%r14), %eax
movq %r12, 0x20(%rbx)
testb $0x2, %al
je 0x2441d
leaq 0x20(%rbx), %rdi
movq 0x20(%r14), %rdx
movq (%r15), %rcx
testb $0x1, %cl
jne 0x2445e
movq 0x1cbbc(%rip), %rsi     # 0x40fd0
callq 0x1d09c
movl 0x10(%r14), %eax
movq %r12, 0x28(%rbx)
testb $0x4, %al
jne 0x2442e
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
addq $0x28, %rbx
movq 0x28(%r14), %rdx
movq (%r15), %rcx
testb $0x1, %cl
jne 0x24467
movq 0x1cb8b(%rip), %rsi     # 0x40fd0
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1d09c
andq $-0x2, %rcx
movq (%rcx), %rcx
jmp 0x243e5
andq $-0x2, %rcx
movq (%rcx), %rcx
jmp 0x2440d
andq $-0x2, %rcx
movq (%rcx), %rcx
jmp 0x2443e
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::Clear()
void VideoMemoryState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.VideoMemoryState)
  ::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) {
      patterntablememory_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000002u) {
      nametablememory_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000004u) {
      palettememory_.ClearNonDefaultToEmpty();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl 0x10(%rdi), %eax
testb $0x7, %al
je 0x24528
testb $0x1, %al
je 0x24502
movq 0x18(%rdi), %rcx
andq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x2, %al
je 0x24515
movq 0x20(%rdi), %rcx
andq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x4, %al
je 0x24528
movq 0x28(%rdi), %rax
andq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
andl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x24534
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x291de
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* VideoMemoryState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Rnes.VideoMemoryState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional bytes patternTableMemory = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->WriteBytesMaybeAliased(
        1, this->_internal_patterntablememory(), target);
  }

  // optional bytes nameTableMemory = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->WriteBytesMaybeAliased(
        2, this->_internal_nametablememory(), target);
  }

  // optional bytes paletteMemory = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_palettememory(), target);
  }

  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.VideoMemoryState)
  return target;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %rax
movq %rdi, %r14
movl 0x10(%rdi), %r15d
testb $0x1, %r15b
je 0x24691
movq 0x18(%r14), %rdx
pushq $0x1
popq %rsi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x287fe
testb $0x2, %r15b
je 0x246a9
movq 0x20(%r14), %rdx
pushq $0x2
popq %rsi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x287fe
testb $0x4, %r15b
je 0x246c1
movq 0x28(%r14), %rdx
pushq $0x3
popq %rsi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x287fe
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x246d6
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %rax, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xb260
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::ByteSizeLong() const
size_t VideoMemoryState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.VideoMemoryState)
  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 bytes patternTableMemory = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_patterntablememory());
    }

    // optional bytes nameTableMemory = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_nametablememory());
    }

    // optional bytes paletteMemory = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_palettememory());
    }

  }
  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 0x24716
testb $0x1, %r15b
jne 0x2471b
xorl %r14d, %r14d
jmp 0x2472a
xorl %r14d, %r14d
jmp 0x24754
movq 0x18(%rbx), %rdi
callq 0x27480
movq %rax, %r14
incq %r14
testb $0x2, %r15b
je 0x2473f
movq 0x20(%rbx), %rdi
callq 0x27480
addq %rax, %r14
incq %r14
testb $0x4, %r15b
je 0x24754
movq 0x28(%rbx), %rdi
callq 0x27480
addq %rax, %r14
incq %r14
testb $0x1, 0x8(%rbx)
jne 0x2476c
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 0xb900
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::MergeFrom(google::protobuf::Message const&)
void VideoMemoryState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.VideoMemoryState)
  GOOGLE_DCHECK_NE(&from, this);
  const VideoMemoryState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<VideoMemoryState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.VideoMemoryState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.VideoMemoryState)
    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 0x247e1
leaq 0x85d8(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x174d, %ecx           # imm = 0x174D
callq 0xb460
leaq 0x85cc(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
leaq 0x1c188(%rip), %rax     # 0x40970
cmpq %rax, (%rbx)
je 0x247fa
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x24805
movq %r14, %rdi
movq %rbx, %rsi
callq 0x24826
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x24812
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::MergeFrom(Rnes::VideoMemoryState const&)
void VideoMemoryState::MergeFrom(const VideoMemoryState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.VideoMemoryState)
  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_set_patterntablememory(from._internal_patterntablememory());
    }
    if (cached_has_bits & 0x00000002u) {
      _internal_set_nametablememory(from._internal_nametablememory());
    }
    if (cached_has_bits & 0x00000004u) {
      _internal_set_palettememory(from._internal_palettememory());
    }
  }
}

// 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 0x2487d
leaq 0x853c(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r15
pushq $0x3
popq %rsi
movq %r15, %rdi
movl $0x175c, %ecx           # imm = 0x175C
callq 0xb460
leaq 0x8530(%rip), %rsi      # 0x2cd90
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x24898
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x291a6
movl 0x10(%r14), %r15d
testb $0x7, %r15b
je 0x248d8
testb $0x1, %r15b
je 0x248b4
movq 0x18(%r14), %rsi
movq %rbx, %rdi
callq 0x27dae
testb $0x2, %r15b
je 0x248c6
movq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x27ddc
testb $0x4, %r15b
je 0x248d8
movq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x27e0a
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x248e5
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::DmaState(Rnes::DmaState const&)
DmaState::DmaState(const DmaState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&spritedmamode_, &from.spritedmamode_,
    static_cast<size_t>(reinterpret_cast<char*>(&spritedmasourceaddr_) -
    reinterpret_cast<char*>(&spritedmamode_)) + sizeof(spritedmasourceaddr_));
  // @@protoc_insertion_point(copy_constructor:Rnes.DmaState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
andq $0x0, 0x8(%rdi)
movq %rsi, %r14
leaq 0x1be8b(%rip), %rax     # 0x40a20
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
andl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x24bbd
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x291a6
movl 0x20(%r14), %eax
movl %eax, 0x20(%rbx)
movq 0x18(%r14), %rax
movq %rax, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::Clear()
void DmaState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.DmaState)
  ::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) {
    ::memset(&spritedmamode_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&spritedmasourceaddr_) -
        reinterpret_cast<char*>(&spritedmamode_)) + sizeof(spritedmasourceaddr_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
testb $0x7, 0x10(%rdi)
je 0x24c59
andl $0x0, 0x20(%rdi)
andq $0x0, 0x18(%rdi)
andl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x24c65
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x291de
nop
// File: /workspace/github_cpp_makefile_star2_O2/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* DmaState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Rnes.DmaState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional bool spriteDmaMode = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_spritedmamode(), target);
  }

  // optional uint32 spriteDmaCycle = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_spritedmacycle(), target);
  }

  // optional uint32 spriteDmaSourceAddr = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_spritedmasourceaddr(), target);
  }

  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.DmaState)
  return target;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rdi, %r14
movl 0x10(%rdi), %r15d
testb $0x1, %r15b
je 0x24de4
movq %rbx, %rdi
callq 0x2682a
movzbl 0x18(%r14), %edi
movb $0x8, (%rax)
leaq 0x1(%rax), %rsi
callq 0x28e5c
movq %rax, %rsi
testb $0x2, %r15b
je 0x24e05
movq %rbx, %rdi
callq 0x2682a
movl 0x1c(%r14), %edi
movb $0x10, (%rax)
leaq 0x1(%rax), %rsi
callq 0x28e5c
movq %rax, %rsi
testb $0x4, %r15b
je 0x24e26
movq %rbx, %rdi
callq 0x2682a
movl 0x20(%r14), %edi
movb $0x18, (%rax)
leaq 0x1(%rax), %rsi
callq 0x28e5c
movq %rax, %rsi
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x24e3e
movq %rsi, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xb260