LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2e378
cmpq %rsi, (%rbx)
jbe 0x2e40a
movl 0x18(%r14), %ecx
movb $0x8, (%rsi)
cmpl $0x7f, %ecx
ja 0x2e33c
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x2e378
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movl %ecx, %eax
shrl $0x7, %eax
cmpl $0x3fff, %ecx           # imm = 0x3FFF
ja 0x2e359
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x2e378
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 0x2e35d
movb %al, -0x1(%rsi)
testb $0x2, %r15b
je 0x2e3d8
cmpq %rsi, (%rbx)
jbe 0x2e41a
movl 0x1c(%r14), %ecx
movb $0x10, (%rsi)
cmpl $0x7f, %ecx
ja 0x2e39c
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x2e3d8
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movl %ecx, %eax
shrl $0x7, %eax
cmpl $0x3fff, %ecx           # imm = 0x3FFF
ja 0x2e3b9
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x2e3d8
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 0x2e3bd
movb %al, -0x1(%rsi)
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x2e3f0
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 0xb230
movq %rbx, %rdi
callq 0xb750
movq %rax, %rsi
jmp 0x2e327
movq %rbx, %rdi
callq 0xb750
movq %rax, %rsi
jmp 0x2e387
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2e442
testb $0x1, %cl
jne 0x2e446
xorl %eax, %eax
jmp 0x2e45a
xorl %eax, %eax
jmp 0x2e477
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 0x2e477
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 0x2e482
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xb920
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 0x2e4ed
leaq 0x87de(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1518, %ecx           # imm = 0x1518
callq 0xb450
leaq 0x87d0(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x19309(%rip), %rax     # 0x47800
cmpq %rax, (%rbx)
je 0x2e509
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2e514
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2e536
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2e521
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 0x2e58f
leaq 0x873c(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1527, %ecx           # imm = 0x1527
callq 0xb450
leaq 0x872e(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2e5ad
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x10(%r14), %eax
testb $0x3, %al
je 0x2e5ce
testb $0x1, %al
je 0x2e5c0
movl 0x18(%r14), %ecx
movl %ecx, 0x18(%rbx)
testb $0x2, %al
je 0x2e5cb
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 0x2e5db
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x2e668
testb $0x1, (%rdi)
je 0x2e685
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x2e6ae
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movq 0x18(%r14), %rax
movq 0x18(%rbx), %rcx
movq %rcx, 0x18(%r14)
movq %rax, 0x18(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x33078
movq %rax, %rsi
jmp 0x2e67d
// File: /workspace/github_cpp_makefile_star2_O1/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 0x19156(%rip), %rax     # 0x478b0
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2e784
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x331ee
movq 0x19835(%rip), %r12     # 0x47fc0
movq %r12, 0x18(%rbx)
testb $0x1, 0x10(%r14)
je 0x2e7ac
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2e7e1
callq 0x23c3e
movq %r12, 0x20(%rbx)
testb $0x2, 0x10(%r14)
jne 0x2e7c0
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 0x2e7ea
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x23c3e
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2e7a7
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2e7d1
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2e8ad
testb $0x1, %al
je 0x2e897
movq 0x18(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x2, %al
je 0x2e8ad
movq 0x20(%rdi), %rax
movq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2e8bc
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x33226
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2eacb
movq 0x18(%r14), %rdx
movq %rbx, %rdi
movl $0x1, %esi
movq %rax, %rcx
callq 0x32c94
testb $0x2, %r15b
je 0x2eae5
movq 0x20(%r14), %rdx
movq %rbx, %rdi
movl $0x2, %esi
movq %rax, %rcx
callq 0x32c94
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x2eafa
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 0xb230
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2eb30
testb $0x1, %cl
jne 0x2eb34
xorl %eax, %eax
jmp 0x2eb53
xorl %eax, %eax
jmp 0x2eb78
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 0x2eb78
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 0x2eb83
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xb920
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2ebed
leaq 0x80de(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1624, %ecx           # imm = 0x1624
callq 0xb450
leaq 0x80d0(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x18cb9(%rip), %rax     # 0x478b0
cmpq %rax, (%rbx)
je 0x2ec09
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2ec14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2ec36
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2ec21
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 0x2ec8f
leaq 0x803c(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1633, %ecx           # imm = 0x1633
callq 0xb450
leaq 0x802e(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2ecad
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x10(%r14), %r15d
testb $0x3, %r15b
je 0x2ed2b
testb $0x1, %r15b
je 0x2ecf1
movq 0x18(%r14), %rdx
orl $0x1, 0x10(%rbx)
leaq 0x18(%rbx), %rdi
movq 0x8(%rbx), %rsi
testb $0x1, %sil
jne 0x2ed36
movq (%rdi), %rax
cmpq 0x192e3(%rip), %rax     # 0x47fc0
je 0x2ecec
movq %rax, %rdi
movq %rdx, %rsi
callq 0xb900
jmp 0x2ecf1
callq 0x23c3e
testb $0x2, %r15b
je 0x2ed2b
movq 0x20(%r14), %rdx
orl $0x2, 0x10(%rbx)
movq 0x8(%rbx), %rsi
addq $0x20, %rbx
testb $0x1, %sil
jne 0x2ed3f
movq (%rbx), %rdi
cmpq 0x192a9(%rip), %rdi     # 0x47fc0
je 0x2ed23
movq %rdx, %rsi
callq 0xb900
jmp 0x2ed2b
movq %rbx, %rdi
callq 0x23c3e
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2ecd3
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2ed0d
jmp 0x2ed4a
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x2edda
testb $0x1, (%rdi)
je 0x2edfb
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x2ef3f
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
leaq 0x18(%r14), %r12
movq 0x8(%r14), %r15
testb $0x1, %r15b
jne 0x2ef27
leaq 0x18(%rbx), %r13
movq (%r12), %rax
cmpq 0x19196(%rip), %rax     # 0x47fc0
je 0x2eebb
movq (%r12), %r12
movq (%r13), %rax
cmpq 0x19181(%rip), %rax     # 0x47fc0
jne 0x2ee53
movq 0x19178(%rip), %rdx     # 0x47fc0
movq %r13, %rdi
movq %r15, %rsi
callq 0x23c3e
movq (%r13), %rsi
movq %r12, %rdi
callq 0xb940
movq 0x8(%r14), %r15
addq $0x20, %r14
testb $0x1, %r15b
jne 0x2ef33
addq $0x20, %rbx
movq (%r14), %rax
cmpq 0x19141(%rip), %rax     # 0x47fc0
je 0x2eeec
movq (%r14), %r14
movq (%rbx), %rax
cmpq 0x19132(%rip), %rax     # 0x47fc0
jne 0x2eea2
movq 0x19129(%rip), %rdx     # 0x47fc0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x23c3e
movq (%rbx), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xb940
movq (%r13), %rcx
cmpq 0x190fa(%rip), %rcx     # 0x47fc0
je 0x2ee5f
cmpq 0x190f1(%rip), %rax     # 0x47fc0
jne 0x2ee30
movq 0x190e4(%rip), %rdx     # 0x47fc0
movq %r12, %rdi
movq %r15, %rsi
callq 0x23c3e
jmp 0x2ee30
movq (%rbx), %rcx
cmpq 0x190ca(%rip), %rcx     # 0x47fc0
je 0x2ef18
cmpq 0x190c1(%rip), %rax     # 0x47fc0
jne 0x2ee81
movq 0x190b8(%rip), %rdx     # 0x47fc0
movq %r14, %rdi
movq %r15, %rsi
callq 0x23c3e
jmp 0x2ee81
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %r15
movq (%r15), %r15
jmp 0x2ee1b
andq $-0x2, %r15
movq (%r15), %r15
jmp 0x2ee71
callq 0x33078
movq %rax, %rsi
jmp 0x2edf3
// File: /workspace/github_cpp_makefile_star2_O1/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 0x1896e(%rip), %rax     # 0x47960
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2f01c
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x331ee
movq 0x18f9d(%rip), %r12     # 0x47fc0
movq %r12, 0x18(%rbx)
testb $0x1, 0x10(%r14)
je 0x2f044
leaq 0x18(%rbx), %rdi
movq 0x18(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2f09a
callq 0x23c3e
movq %r12, 0x20(%rbx)
testb $0x2, 0x10(%r14)
je 0x2f065
leaq 0x20(%rbx), %rdi
movq 0x20(%r14), %rdx
movq (%r15), %rsi
testb $0x1, %sil
jne 0x2f0a3
callq 0x23c3e
movq %r12, 0x28(%rbx)
testb $0x4, 0x10(%r14)
jne 0x2f079
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 0x2f0ac
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x23c3e
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2f03f
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2f060
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2f08a
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2f185
testb $0x1, %al
je 0x2f159
movq 0x18(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x2, %al
je 0x2f16f
movq 0x20(%rdi), %rcx
movq $0x0, 0x8(%rcx)
movq (%rcx), %rcx
movb $0x0, (%rcx)
testb $0x4, %al
je 0x2f185
movq 0x28(%rdi), %rax
movq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2f194
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x33226
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2f407
movq 0x18(%r14), %rdx
movq %rbx, %rdi
movl $0x1, %esi
movq %rax, %rcx
callq 0x32c94
testb $0x2, %r15b
je 0x2f421
movq 0x20(%r14), %rdx
movq %rbx, %rdi
movl $0x2, %esi
movq %rax, %rcx
callq 0x32c94
testb $0x4, %r15b
je 0x2f43b
movq 0x28(%r14), %rdx
movq %rbx, %rdi
movl $0x3, %esi
movq %rax, %rcx
callq 0x32c94
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x2f450
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 0xb230
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x2f486
testb $0x1, %cl
jne 0x2f48a
xorl %eax, %eax
jmp 0x2f4a9
xorl %eax, %eax
jmp 0x2f4f3
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 0x2f4ce
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 0x2f4f3
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 0x2f4fe
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xb920
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 0x2f569
leaq 0x7762(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x174d, %ecx           # imm = 0x174D
callq 0xb450
leaq 0x7754(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x183ed(%rip), %rax     # 0x47960
cmpq %rax, (%rbx)
je 0x2f585
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x2f590
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2f5b2
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2f59d
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 0x2f60b
leaq 0x76c0(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x175c, %ecx           # imm = 0x175C
callq 0xb450
leaq 0x76b2(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x2f629
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x10(%r14), %r15d
testb $0x7, %r15b
je 0x2f6e9
testb $0x1, %r15b
je 0x2f675
movq 0x18(%r14), %rdx
orl $0x1, 0x10(%rbx)
leaq 0x18(%rbx), %rdi
movq 0x8(%rbx), %rsi
testb $0x1, %sil
jne 0x2f6f4
movq (%rdi), %rax
cmpq 0x1895f(%rip), %rax     # 0x47fc0
je 0x2f670
movq %rax, %rdi
movq %rdx, %rsi
callq 0xb900
jmp 0x2f675
callq 0x23c3e
testb $0x2, %r15b
je 0x2f6af
movq 0x20(%r14), %rdx
orl $0x2, 0x10(%rbx)
leaq 0x20(%rbx), %rdi
movq 0x8(%rbx), %rsi
testb $0x1, %sil
jne 0x2f700
movq (%rdi), %rax
cmpq 0x18925(%rip), %rax     # 0x47fc0
je 0x2f6aa
movq %rax, %rdi
movq %rdx, %rsi
callq 0xb900
jmp 0x2f6af
callq 0x23c3e
testb $0x4, %r15b
je 0x2f6e9
movq 0x28(%r14), %rdx
orl $0x4, 0x10(%rbx)
movq 0x8(%rbx), %rsi
addq $0x28, %rbx
testb $0x1, %sil
jne 0x2f709
movq (%rbx), %rdi
cmpq 0x188eb(%rip), %rdi     # 0x47fc0
je 0x2f6e1
movq %rdx, %rsi
callq 0xb900
jmp 0x2f6e9
movq %rbx, %rdi
callq 0x23c3e
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2f657
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2f691
andq $-0x2, %rsi
movq (%rsi), %rsi
jmp 0x2f6cb
jmp 0x2f714
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::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 %rsi, %r14
movq %rdi, %rbx
movq $0x0, 0x8(%rdi)
leaq 0x17fe8(%rip), %rax     # 0x47a10
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x2fa53
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
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_O1/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 0x2fb71
movl $0x0, 0x20(%rdi)
movq $0x0, 0x18(%rdi)
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
jne 0x2fb80
popq %rbp
retq
addq $0x8, %rdi
popq %rbp
jmp 0x33226
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::ByteSizeLong() const
size_t DmaState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.DmaState)
  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 bool spriteDmaMode = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 1;
    }

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

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

  }
  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 0x2ff83
leal (%rcx,%rcx), %eax
andl $0x2, %eax
testb $0x2, %cl
je 0x2ff62
movl 0x1c(%rdx), %esi
orl $0x1, %esi
bsrl %esi, %esi
leal (%rsi,%rsi,8), %esi
addl $0x49, %esi
shrl $0x6, %esi
addl %esi, %eax
incl %eax
movl %eax, %eax
testb $0x4, %cl
je 0x2ff85
movl 0x20(%rdx), %ecx
orl $0x1, %ecx
bsrl %ecx, %ecx
leal (%rcx,%rcx,8), %ecx
addl $0x49, %ecx
shrl $0x6, %ecx
addq %rcx, %rax
incq %rax
jmp 0x2ff85
xorl %eax, %eax
testb $0x1, 0x8(%rdx)
jne 0x2ff90
movl %eax, 0x14(%rdx)
popq %rbp
retq
leaq 0x8(%rdx), %rdi
addq $0x14, %rdx
movq %rax, %rsi
popq %rbp
jmp 0xb920
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::MergeFrom(google::protobuf::Message const&)
void DmaState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.DmaState)
  GOOGLE_DCHECK_NE(&from, this);
  const DmaState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DmaState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.DmaState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.DmaState)
    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 0x2fffb
leaq 0x6cd0(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1862, %ecx           # imm = 0x1862
callq 0xb450
leaq 0x6cc2(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x17a0b(%rip), %rax     # 0x47a10
cmpq %rax, (%rbx)
je 0x30017
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x30022
movq %r14, %rdi
movq %rbx, %rsi
callq 0x30044
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3002f
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::MergeFrom(Rnes::DmaState const&)
void DmaState::MergeFrom(const DmaState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.DmaState)
  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) {
      spritedmamode_ = from.spritedmamode_;
    }
    if (cached_has_bits & 0x00000002u) {
      spritedmacycle_ = from.spritedmacycle_;
    }
    if (cached_has_bits & 0x00000004u) {
      spritedmasourceaddr_ = from.spritedmasourceaddr_;
    }
    _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 0x3009d
leaq 0x6c2e(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1871, %ecx           # imm = 0x1871
callq 0xb450
leaq 0x6c20(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x300bb
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x331ee
movl 0x10(%r14), %eax
testb $0x7, %al
je 0x300e7
testb $0x1, %al
je 0x300ce
movb 0x18(%r14), %cl
movb %cl, 0x18(%rbx)
testb $0x2, %al
je 0x300d9
movl 0x1c(%r14), %ecx
movl %ecx, 0x1c(%rbx)
testb $0x4, %al
je 0x300e4
movl 0x20(%r14), %ecx
movl %ecx, 0x20(%rbx)
orl %eax, 0x10(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x300f4
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::InternalSwap(Rnes::DmaState*)
void DmaState::InternalSwap(DmaState* 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(DmaState, spritedmasourceaddr_)
      + sizeof(DmaState::spritedmasourceaddr_)
      - PROTOBUF_FIELD_OFFSET(DmaState, spritedmamode_)>(
          reinterpret_cast<char*>(&spritedmamode_),
          reinterpret_cast<char*>(&other->spritedmamode_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x30180
testb $0x1, (%rdi)
je 0x3019d
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x301d4
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x3325c
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movq 0x18(%r14), %rax
movq 0x18(%rbx), %rcx
movq %rcx, 0x18(%r14)
movq %rax, 0x18(%rbx)
movl 0x20(%r14), %eax
movl 0x20(%rbx), %ecx
movl %ecx, 0x20(%r14)
movl %eax, 0x20(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x33078
movq %rax, %rsi
jmp 0x30195
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::SaveState::InitAsDefaultInstance()
void SaveState::InitAsDefaultInstance() {
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->dma_ = const_cast< ::Rnes::DmaState*>(
      ::Rnes::DmaState::internal_default_instance());
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->cpu_ = const_cast< ::Rnes::CpuState*>(
      ::Rnes::CpuState::internal_default_instance());
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->apu_ = const_cast< ::Rnes::ApuState*>(
      ::Rnes::ApuState::internal_default_instance());
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->ppu_ = const_cast< ::Rnes::PpuState*>(
      ::Rnes::PpuState::internal_default_instance());
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->controller_ = const_cast< ::Rnes::ControllerState*>(
      ::Rnes::ControllerState::internal_default_instance());
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->cpumem_ = const_cast< ::Rnes::CpuMemoryState*>(
      ::Rnes::CpuMemoryState::internal_default_instance());
  ::Rnes::_SaveState_default_instance_._instance.get_mutable()->vidmem_ = const_cast< ::Rnes::VideoMemoryState*>(
      ::Rnes::VideoMemoryState::internal_default_instance());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x18905(%rip), %rax     # 0x48b18
movq %rax, 0x18946(%rip)     # 0x48b60
leaq 0x185e7(%rip), %rax     # 0x48808
movq %rax, 0x18940(%rip)     # 0x48b68
leaq 0x186b1(%rip), %rax     # 0x488e0
movq %rax, 0x1893a(%rip)     # 0x48b70
leaq 0x1873b(%rip), %rax     # 0x48978
movq %rax, 0x18934(%rip)     # 0x48b78
leaq 0x18855(%rip), %rax     # 0x48aa0
movq %rax, 0x1892e(%rip)     # 0x48b80
leaq 0x18867(%rip), %rax     # 0x48ac0
movq %rax, 0x18928(%rip)     # 0x48b88
leaq 0x18881(%rip), %rax     # 0x48ae8
movq %rax, 0x18922(%rip)     # 0x48b90
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O1/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::SaveState::MergeFrom(google::protobuf::Message const&)
void SaveState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.SaveState)
  GOOGLE_DCHECK_NE(&from, this);
  const SaveState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SaveState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.SaveState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.SaveState)
    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 0x316f9
leaq 0x55d2(%rip), %rdx      # 0x36c91
leaq -0x58(%rbp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x1a99, %ecx           # imm = 0x1A99
callq 0xb450
leaq 0x55c4(%rip), %rsi      # 0x36ca0
movq %r15, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x58(%rbp), %rdi
callq 0xb730
cmpq %r14, %rbx
leaq 0x163bd(%rip), %rax     # 0x47ac0
cmpq %rax, (%rbx)
je 0x31715
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb580
jmp 0x31720
movq %r14, %rdi
movq %rbx, %rsi
callq 0x31742
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3172d
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0
nop