LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/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
movq 0x8(%rdi), %r15
movq 0x8(%rsi), %rsi
testb $0x1, %r15b
jne 0x2bddc
testb $0x1, %sil
jne 0x2bde6
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
jmp 0x2be13
testb $0x1, %sil
je 0x2bec3
andq $-0x2, %rsi
addq $0x8, %rsi
leaq 0x8(%r14), %rdi
callq 0x31e36
movq 0x8(%r14), %r15
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
testb $0x1, %r15b
jne 0x2beb7
leaq 0x18(%rbx), %r12
movq 0x18(%r14), %r13
cmpq 0x1b19e(%rip), %r13     # 0x46fc0
jne 0x2be4b
movq (%r12), %rax
cmpq 0x1b191(%rip), %rax     # 0x46fc0
je 0x2be76
leaq 0x18(%r14), %r13
movq 0x1b184(%rip), %rdx     # 0x46fc0
movq %r13, %rdi
movq %r15, %rsi
callq 0x22bf0
movq (%r13), %r13
movq (%r12), %rsi
cmpq 0x1b16a(%rip), %rsi     # 0x46fc0
jne 0x2be6e
movq 0x1b161(%rip), %rdx     # 0x46fc0
movq %r12, %rdi
movq %r15, %rsi
callq 0x22bf0
movq (%r12), %rsi
movq %r13, %rdi
callq 0xa940
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
andq $-0x2, %r15
movq (%r15), %r15
jmp 0x2be13
leaq 0x8(%rbx), %rdi
callq 0x31c54
movq %rax, %rsi
jmp 0x2bdee
// File: /workspace/github_cpp_makefile_star2_O3/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 0x1bae7(%rip), %rax     # 0x479f0
movq %rax, 0x1bb78(%rip)     # 0x47a88
leaq 0x1baf1(%rip), %rax     # 0x47a08
movq %rax, 0x1bb72(%rip)     # 0x47a90
leaq 0x1bb13(%rip), %rax     # 0x47a38
movq %rax, 0x1bb6c(%rip)     # 0x47a98
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/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 %rbx
subq $0x48, %rsp
movq %rdi, %rbx
movl 0x10(%rdi), %r15d
testb $0x7, %r15b
je 0x2c3b9
testb $0x1, %r15b
je 0x2c307
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
jne 0x2c2f8
leaq 0x99d7(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x137f, %ecx           # imm = 0x137F
callq 0xa450
leaq 0x9a78(%rip), %rsi      # 0x35d4f
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x18(%rbx), %rdi
testb $0x1, 0x8(%rdi)
je 0x2c307
addq $0x8, %rdi
callq 0x31e00
testb $0x2, %r15b
je 0x2c360
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
jne 0x2c35b
leaq 0x9974(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1383, %ecx           # imm = 0x1383
callq 0xa450
leaq 0x9a39(%rip), %rsi      # 0x35d73
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x20(%rbx), %rdi
callq 0x2a8b8
testb $0x4, %r15b
je 0x2c3b9
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
jne 0x2c3b4
leaq 0x991b(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1387, %ecx           # imm = 0x1387
callq 0xa450
leaq 0x9a01(%rip), %rsi      # 0x35d94
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x28(%rbx), %rdi
callq 0x2b306
movl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
je 0x2c3d2
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x31e00
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2c3e7
jmp 0x2c3e7
jmp 0x2c3e7
jmp 0x2c3e7
jmp 0x2c3e7
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2c818
testb $0x1, %r15b
jne 0x2c820
xorl %r14d, %r14d
jmp 0x2c852
xorl %r14d, %r14d
jmp 0x2c8a0
movq 0x18(%rbx), %rdi
leaq 0x10(%rdi), %rdx
testb $0x1, 0x8(%rdi)
jne 0x2c8d5
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 0x2c879
movq 0x20(%rbx), %rdi
callq 0x2ae58
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 0x2c8a0
movq 0x28(%rbx), %rdi
callq 0x2ba6c
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 0x2c8b8
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 0xa920
addq $0x8, %rdi
xorl %esi, %esi
callq 0xa920
jmp 0x2c83a
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2c93f
leaq 0x938c(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1416, %ecx           # imm = 0x1416
callq 0xa450
leaq 0x937e(%rip), %rsi      # 0x35ca0
movq %r15, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
leaq 0x19e0a(%rip), %rax     # 0x46750
cmpq %rax, (%rbx)
je 0x2c958
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa580
jmp 0x2c963
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2c984
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2c970
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2c9df
leaq 0x92ec(%rip), %rdx      # 0x35c91
leaq -0x60(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1425, %ecx           # imm = 0x1425
callq 0xa450
leaq 0x92de(%rip), %rsi      # 0x35ca0
movq %r15, %rdi
callq 0xa980
leaq -0x21(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x60(%rbp), %rdi
callq 0xa730
leaq 0x8(%r14), %r15
movq 0x8(%rbx), %rsi
testb $0x1, %sil
je 0x2c9fd
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x31dc8
movl 0x10(%rbx), %r12d
testb $0x7, %r12b
je 0x2cacf
testb $0x1, %r12b
je 0x2ca4f
orb $0x1, 0x10(%r14)
movq 0x18(%r14), %rdi
testq %rdi, %rdi
jne 0x2ca38
movq (%r15), %rdi
testb $0x1, %dil
jne 0x2cadc
callq 0x30b72
movq %rax, %rdi
movq %rax, 0x18(%r14)
movq 0x18(%rbx), %rax
testq %rax, %rax
leaq 0x1afaa(%rip), %rsi     # 0x479f0
cmovneq %rax, %rsi
callq 0x2a5d2
testb $0x2, %r12b
je 0x2ca8f
orb $0x2, 0x10(%r14)
movq 0x20(%r14), %rdi
testq %rdi, %rdi
jne 0x2ca78
movq (%r15), %rdi
testb $0x1, %dil
jne 0x2cae8
callq 0x30bd4
movq %rax, %rdi
movq %rax, 0x20(%r14)
movq 0x20(%rbx), %rax
testq %rax, %rax
leaq 0x1af82(%rip), %rsi     # 0x47a08
cmovneq %rax, %rsi
callq 0x2afba
testb $0x4, %r12b
je 0x2cacf
orb $0x4, 0x10(%r14)
movq 0x28(%r14), %rdi
testq %rdi, %rdi
jne 0x2cab8
movq (%r15), %rdi
testb $0x1, %dil
jne 0x2caf4
callq 0x30c3a
movq %rax, %rdi
movq %rax, 0x28(%r14)
movq 0x28(%rbx), %rax
testq %rax, %rax
leaq 0x1af72(%rip), %rsi     # 0x47a38
cmovneq %rax, %rsi
callq 0x2bc02
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x2ca2c
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x2ca6c
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x2caac
jmp 0x2caff
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2cb8b
testb $0x1, %sil
jne 0x2cb91
jmp 0x2cba2
testb $0x1, %sil
je 0x2cbd7
andq $-0x2, %rsi
addq $0x8, %rsi
leaq 0x8(%r14), %rdi
callq 0x31e36
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 0x31c54
movq %rax, %rsi
jmp 0x2cb99
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x19bb2(%rip), %rax     # 0x46800
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2cc79
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x31dc8
movq 0x18(%r14), %rax
movq %rax, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2cd80
movq $0x0, 0x18(%rdi)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2cd8f
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x31e00
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2cfe6
cmpq %rsi, (%rbx)
jbe 0x2d078
movl 0x18(%r14), %ecx
movb $0x8, (%rsi)
cmpl $0x7f, %ecx
ja 0x2cfaa
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x2cfe6
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movl %ecx, %eax
shrl $0x7, %eax
cmpl $0x3fff, %ecx           # imm = 0x3FFF
ja 0x2cfc7
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x2cfe6
addq $0x3, %rsi
movl %eax, %ecx
movl %ecx, %edx
orb $-0x80, %dl
movb %dl, -0x1(%rsi)
shrl $0x7, %eax
incq %rsi
cmpl $0x3fff, %ecx           # imm = 0x3FFF
ja 0x2cfcb
movb %al, -0x1(%rsi)
testb $0x2, %r15b
je 0x2d046
cmpq %rsi, (%rbx)
jbe 0x2d088
movl 0x1c(%r14), %ecx
movb $0x10, (%rsi)
cmpl $0x7f, %ecx
ja 0x2d00a
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x2d046
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movl %ecx, %eax
shrl $0x7, %eax
cmpl $0x3fff, %ecx           # imm = 0x3FFF
ja 0x2d027
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x2d046
addq $0x3, %rsi
movl %eax, %ecx
movl %ecx, %edx
orb $-0x80, %dl
movb %dl, -0x1(%rsi)
shrl $0x7, %eax
incq %rsi
cmpl $0x3fff, %ecx           # imm = 0x3FFF
ja 0x2d02b
movb %al, -0x1(%rsi)
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x2d05e
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 0xa230
movq %rbx, %rdi
callq 0xa750
movq %rax, %rsi
jmp 0x2cf95
movq %rbx, %rdi
callq 0xa750
movq %rax, %rsi
jmp 0x2cff5
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d0b0
testb $0x1, %cl
jne 0x2d0b4
xorl %eax, %eax
jmp 0x2d0c8
xorl %eax, %eax
jmp 0x2d0e5
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 0x2d0e5
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 0x2d0f0
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xa920
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d15b
leaq 0x8b70(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1518, %ecx           # imm = 0x1518
callq 0xa450
leaq 0x8b62(%rip), %rsi      # 0x35ca0
movq %r15, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
leaq 0x1969e(%rip), %rax     # 0x46800
cmpq %rax, (%rbx)
je 0x2d174
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa580
jmp 0x2d17f
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2d1a0
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d18c
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d1f9
leaq 0x8ad2(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1527, %ecx           # imm = 0x1527
callq 0xa450
leaq 0x8ac4(%rip), %rsi      # 0x35ca0
movq %r15, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2d214
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x31dc8
movl 0x10(%r14), %eax
testb $0x3, %al
je 0x2d235
testb $0x1, %al
je 0x2d227
movl 0x18(%r14), %ecx
movl %ecx, 0x18(%rbx)
testb $0x2, %al
je 0x2d232
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 0x2d242
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d2cd
testb $0x1, %sil
jne 0x2d2d3
jmp 0x2d2e4
testb $0x1, %sil
je 0x2d307
andq $-0x2, %rsi
addq $0x8, %rsi
leaq 0x8(%r14), %rdi
callq 0x31e36
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 0x31c54
movq %rax, %rsi
jmp 0x2d2db
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 %rsi, %r14
movq %rdi, %rbx
leaq 0x8(%rdi), %r15
movq $0x0, 0x8(%rdi)
leaq 0x194f8(%rip), %rax     # 0x468b0
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2d3e2
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x31dc8
movq 0x19bd7(%rip), %r12     # 0x46fc0
movq %r12, 0x18(%rbx)
movl 0x10(%r14), %eax
testb $0x1, %al
je 0x2d40f
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2d441
callq 0x22bf0
movl 0x10(%r14), %eax
movq %r12, 0x20(%rbx)
testb $0x2, %al
jne 0x2d420
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
addq $0x20, %rbx
movq 0x20(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2d44a
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x22bf0
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2d406
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2d431
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d50d
testb $0x1, %al
je 0x2d4f7
movq 0x18(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x2, %al
je 0x2d50d
movq 0x20(%rdi), %rax
movq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2d51c
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x31e00
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d733
movq 0x18(%r14), %rdx
movq %rbx, %rdi
movl $0x1, %esi
movq %rax, %rcx
callq 0x31864
testb $0x2, %r15b
je 0x2d74d
movq 0x20(%r14), %rdx
movq %rbx, %rdi
movl $0x2, %esi
movq %rax, %rcx
callq 0x31864
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x2d762
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 0xa230
nop
// File: /workspace/github_cpp_makefile_star2_O3/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
movq %rdi, %rdx
movl 0x10(%rdi), %ecx
testb $0x3, %cl
je 0x2d798
testb $0x1, %cl
jne 0x2d79c
xorl %eax, %eax
jmp 0x2d7bb
xorl %eax, %eax
jmp 0x2d7e0
movq 0x18(%rdx), %rax
movq 0x8(%rax), %rax
movl %eax, %esi
orl $0x1, %esi
bsrl %esi, %esi
leal (%rsi,%rsi,8), %esi
addl $0x49, %esi
shrl $0x6, %esi
addq %rsi, %rax
incq %rax
testb $0x2, %cl
je 0x2d7e0
movq 0x20(%rdx), %rcx
movq 0x8(%rcx), %rcx
addq %rcx, %rax
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 0x2d7eb
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xa920
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d855
leaq 0x8476(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1624, %ecx           # imm = 0x1624
callq 0xa450
leaq 0x8468(%rip), %rsi      # 0x35ca0
movq %r15, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
leaq 0x19054(%rip), %rax     # 0x468b0
cmpq %rax, (%rbx)
je 0x2d86e
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa580
jmp 0x2d879
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2d89a
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d886
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d8f3
leaq 0x83d8(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1633, %ecx           # imm = 0x1633
callq 0xa450
leaq 0x83ca(%rip), %rsi      # 0x35ca0
movq %r15, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2d90e
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x31dc8
movl 0x10(%r14), %r15d
testb $0x3, %r15b
je 0x2d98c
testb $0x1, %r15b
je 0x2d952
movq 0x18(%r14), %rdx
orl $0x1, 0x10(%rbx)
leaq 0x18(%rbx), %rdi
movq 0x8(%rbx), %rsi
testb $0x1, %sil
jne 0x2d997
movq (%rdi), %rax
cmpq 0x19682(%rip), %rax     # 0x46fc0
je 0x2d94d
movq %rax, %rdi
movq %rdx, %rsi
callq 0xa900
jmp 0x2d952
callq 0x22bf0
testb $0x2, %r15b
je 0x2d98c
movq 0x20(%r14), %rdx
orl $0x2, 0x10(%rbx)
movq 0x8(%rbx), %rsi
addq $0x20, %rbx
testb $0x1, %sil
jne 0x2d9a0
movq (%rbx), %rdi
cmpq 0x19648(%rip), %rdi     # 0x46fc0
je 0x2d984
movq %rdx, %rsi
callq 0xa900
jmp 0x2d98c
movq %rbx, %rdi
callq 0x22bf0
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2d934
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2d96e
jmp 0x2d9ab
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0
nop
// File: /workspace/github_cpp_makefile_star2_O3/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
movq %r15, -0x30(%rbp)
jne 0x2da58
testb $0x1, %sil
jne 0x2da62
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
jmp 0x2da8e
testb $0x1, %sil
je 0x2dbab
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x31e36
movq 0x8(%r14), %r12
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
testb $0x1, %r12b
jne 0x2db8a
xorl %eax, %eax
movq %r12, %r8
leaq 0x18(%rbx), %r15
movq 0x18(%r14), %r13
cmpq 0x1951e(%rip), %r13     # 0x46fc0
jne 0x2dad0
movq (%r15), %rcx
cmpq 0x19512(%rip), %rcx     # 0x46fc0
je 0x2db06
leaq 0x18(%r14), %r12
movq 0x19505(%rip), %rdx     # 0x46fc0
movq %r12, %rdi
movq %r8, %rsi
movq %r8, %r13
callq 0x22bf0
movq %r13, %r8
movq (%r12), %r13
movq (%r15), %rsi
cmpq 0x194e6(%rip), %rsi     # 0x46fc0
jne 0x2daf1
movq 0x194dd(%rip), %rdx     # 0x46fc0
movq %r15, %rdi
movq %r8, %rsi
callq 0x22bf0
movq (%r15), %rsi
movq %r13, %rdi
callq 0xa940
movq -0x30(%rbp), %rax
movq (%rax), %r12
movl %r12d, %eax
andl $0x1, %eax
addq $0x20, %r14
testq %rax, %rax
jne 0x2db9e
addq $0x20, %rbx
movq (%r14), %r15
cmpq 0x1949f(%rip), %r15     # 0x46fc0
jne 0x2db44
movq (%rbx), %rax
cmpq 0x19493(%rip), %rax     # 0x46fc0
je 0x2db7b
movq 0x1948a(%rip), %rdx     # 0x46fc0
movq %r14, %rdi
movq %r12, %rsi
callq 0x22bf0
movq (%r14), %r15
movq (%rbx), %rsi
cmpq 0x19472(%rip), %rsi     # 0x46fc0
jne 0x2db65
movq 0x19469(%rip), %rdx     # 0x46fc0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x22bf0
movq (%rbx), %rsi
movq %r15, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xa940
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rax
andq $-0x2, %rax
movq (%rax), %r8
movl $0x1, %eax
jmp 0x2da93
andq $-0x2, %r12
movq (%r12), %r12
jmp 0x2db13
leaq 0x8(%rbx), %rdi
callq 0x31c54
movq %rax, %rsi
jmp 0x2da6a
// File: /workspace/github_cpp_makefile_star2_O3/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 %rsi, %r14
movq %rdi, %rbx
leaq 0x8(%rdi), %r15
movq $0x0, 0x8(%rdi)
leaq 0x18cfe(%rip), %rax     # 0x46960
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2dc8c
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x31dc8
movq 0x1932d(%rip), %r12     # 0x46fc0
movq %r12, 0x18(%rbx)
movl 0x10(%r14), %eax
testb $0x1, %al
je 0x2dcb9
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2dd0d
callq 0x22bf0
movl 0x10(%r14), %eax
movq %r12, 0x20(%rbx)
testb $0x2, %al
je 0x2dcdb
leaq 0x20(%rbx), %rdi
movq 0x20(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2dd16
callq 0x22bf0
movl 0x10(%r14), %eax
movq %r12, 0x28(%rbx)
testb $0x4, %al
jne 0x2dcec
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
addq $0x28, %rbx
movq 0x28(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2dd1f
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x22bf0
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2dcb0
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2dcd2
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2dcfd
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2ddf7
testb $0x1, %al
je 0x2ddcb
movq 0x18(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x2, %al
je 0x2dde1
movq 0x20(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x4, %al
je 0x2ddf7
movq 0x28(%rdi), %rax
movq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2de06
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x31e00
// File: /workspace/github_cpp_makefile_star2_O3/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 0x2e067
movq 0x18(%r14), %rdx
movq %rbx, %rdi
movl $0x1, %esi
movq %rax, %rcx
callq 0x31864
testb $0x2, %r15b
je 0x2e081
movq 0x20(%r14), %rdx
movq %rbx, %rdi
movl $0x2, %esi
movq %rax, %rcx
callq 0x31864
testb $0x4, %r15b
je 0x2e09b
movq 0x28(%r14), %rdx
movq %rbx, %rdi
movl $0x3, %esi
movq %rax, %rcx
callq 0x31864
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x2e0b0
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 0xa230
nop
// File: /workspace/github_cpp_makefile_star2_O3/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
movq %rdi, %rdx
movl 0x10(%rdi), %ecx
testb $0x7, %cl
je 0x2e0e6
testb $0x1, %cl
jne 0x2e0ea
xorl %eax, %eax
jmp 0x2e109
xorl %eax, %eax
jmp 0x2e153
movq 0x18(%rdx), %rax
movq 0x8(%rax), %rax
movl %eax, %esi
orl $0x1, %esi
bsrl %esi, %esi
leal (%rsi,%rsi,8), %esi
addl $0x49, %esi
shrl $0x6, %esi
addq %rsi, %rax
incq %rax
testb $0x2, %cl
je 0x2e12e
movq 0x20(%rdx), %rsi
movq 0x8(%rsi), %rsi
addq %rsi, %rax
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 0x2e153
movq 0x28(%rdx), %rcx
movq 0x8(%rcx), %rcx
addq %rcx, %rax
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 0x2e15e
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xa920
nop