LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ApuState::MergeFrom(google::protobuf::Message const&)
void ApuState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.ApuState)
  GOOGLE_DCHECK_NE(&from, this);
  const ApuState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ApuState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.ApuState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.ApuState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x49(%rbp)
cmpq %rcx, %rax
je 0x4e39a
jmp 0x4e3e3
leaq 0x1cd90(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0xb8d, %ecx            # imm = 0xB8D
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x1cd79(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x4e3d2
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x4e3e1
jmp 0x4e3e3
testb $0x1, -0x49(%rbp)
jne 0x4e3eb
jmp 0x4e3f4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x60ab0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x4e436
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x4e443
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x4e42b
jmp 0x4e434
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x4e44c
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x4e460
addq $0x80, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ApuState::CopyFrom(google::protobuf::Message const&)
void ApuState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.ApuState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x4e940
jmp 0x4e956
movq -0x18(%rbp), %rdi
callq 0x4c4d0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x4e370
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ApuState::CopyFrom(Rnes::ApuState const&)
void ApuState::CopyFrom(const ApuState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.ApuState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x4e980
jmp 0x4e996
movq -0x18(%rbp), %rdi
callq 0x4c4d0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x4e460
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ApuState::InternalSwap(Rnes::ApuState*)
void ApuState::InternalSwap(ApuState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  reg_.InternalSwap(&other->reg_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ApuState, nextsamplecountdown_)
      + sizeof(ApuState::nextsamplecountdown_)
      - PROTOBUF_FIELD_OFFSET(ApuState, pulsea_)>(
          reinterpret_cast<char*>(&pulsea_),
          reinterpret_cast<char*>(&other->pulsea_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x78(%rbp)
movq %rsi, -0x80(%rbp)
movq -0x78(%rbp), %rcx
movq %rcx, -0x90(%rbp)
addq $0x8, %rcx
movq -0x80(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x48(%rbp)
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
je 0x4ea29
movq -0x50(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x4ea95
movq -0x50(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x98(%rbp)
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
testb $0x1, %al
jne 0x4ea5f
jmp 0x4ea75
movq -0x98(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0x4ea85
movq -0x98(%rbp), %rdi
callq 0x66330
movq %rax, -0x38(%rbp)
movq -0x88(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x66c30
movq -0x90(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x5c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x80(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x68(%rbp)
movl $0x0, -0x6c(%rbp)
movq -0x68(%rbp), %rsi
movslq -0x6c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x5f3c0
movq -0x90(%rbp), %rdi
addq $0x18, %rdi
movq -0x80(%rbp), %rsi
addq $0x18, %rsi
callq 0xe1d0
movq -0x90(%rbp), %rdi
addq $0x28, %rdi
movq -0x80(%rbp), %rsi
addq $0x28, %rsi
callq 0x60b10
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState_SpriteState::PpuState_SpriteState(Rnes::PpuState_SpriteState const&)
PpuState_SpriteState::PpuState_SpriteState(const PpuState_SpriteState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&ycoordminus1_, &from.ycoordminus1_,
    static_cast<size_t>(reinterpret_cast<char*>(&xcoord_) -
    reinterpret_cast<char*>(&ycoordminus1_)) + sizeof(xcoord_));
  // @@protoc_insertion_point(copy_constructor:Rnes.PpuState.SpriteState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x50(%rbp)
movq %rsi, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x5ecc0
movq -0x78(%rbp), %rdi
leaq 0x42785(%rip), %rax     # 0x913b0
addq $0x10, %rax
movq %rax, (%rdi)
movq -0x58(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, 0x10(%rdi)
addq $0x14, %rdi
callq 0x5ec30
movq -0x78(%rbp), %rcx
addq $0x8, %rcx
movq -0x58(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x40(%rbp)
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
movb %al, -0x65(%rbp)
movb -0x65(%rbp), %al
testb $0x1, %al
jne 0x4ec95
jmp 0x4ed15
movq -0x48(%rbp), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x80(%rbp)
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x4ecdc
movq -0x80(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x4ecf6
movq -0x30(%rbp), %rax
callq *%rax
movq %rax, -0x88(%rbp)
jmp 0x4eceb
movq -0x88(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rsi
movq -0x70(%rbp), %rdi
callq 0x66b40
jmp 0x4ed13
jmp 0x4ed15
jmp 0x4ed17
movq -0x78(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq -0x58(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdx
addq $0x24, %rdx
addq $0x18, %rax
subq %rax, %rdx
addq $0x4, %rdx
callq 0xe0b0
addq $0x90, %rsp
popq %rbp
retq
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x5eca0
movq -0x60(%rbp), %rdi
callq 0xe700
nopl (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState_SpriteState::Clear()
void PpuState_SpriteState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.PpuState.SpriteState)
  ::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 & 0x0000000fu) {
    ::memset(&ycoordminus1_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&xcoord_) -
        reinterpret_cast<char*>(&ycoordminus1_)) + sizeof(xcoord_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x28(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x4eec7
movq -0x48(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq %rax, %rdx
addq $0x24, %rdx
addq $0x18, %rax
subq %rax, %rdx
addq $0x4, %rdx
xorl %esi, %esi
callq 0xe420
movq -0x48(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0x4, %edx
callq 0xe420
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x4ef1c
movq -0x50(%rbp), %rdi
callq 0x66bc0
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState_SpriteState::MergeFrom(google::protobuf::Message const&)
void PpuState_SpriteState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.PpuState.SpriteState)
  GOOGLE_DCHECK_NE(&from, this);
  const PpuState_SpriteState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PpuState_SpriteState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.PpuState.SpriteState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.PpuState.SpriteState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x49(%rbp)
cmpq %rcx, %rax
je 0x4f84a
jmp 0x4f893
leaq 0x1b8e0(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0xce6, %ecx            # imm = 0xCE6
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x1b8c9(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x4f882
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x4f891
jmp 0x4f893
testb $0x1, -0x49(%rbp)
jne 0x4f89b
jmp 0x4f8a4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x60d60
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x4f8e6
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x4f8f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x4f8db
jmp 0x4f8e4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x4f8fc
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x4f910
addq $0x80, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState_SpriteState::CopyFrom(google::protobuf::Message const&)
void PpuState_SpriteState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.PpuState.SpriteState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x4fbb0
jmp 0x4fbc6
movq -0x18(%rbp), %rdi
callq 0x4ee60
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x4f820
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState_SpriteState::CopyFrom(Rnes::PpuState_SpriteState const&)
void PpuState_SpriteState::CopyFrom(const PpuState_SpriteState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.PpuState.SpriteState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x4fbf0
jmp 0x4fc06
movq -0x18(%rbp), %rdi
callq 0x4ee60
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x4f910
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState_SpriteState::InternalSwap(Rnes::PpuState_SpriteState*)
void PpuState_SpriteState::InternalSwap(PpuState_SpriteState* 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(PpuState_SpriteState, xcoord_)
      + sizeof(PpuState_SpriteState::xcoord_)
      - PROTOBUF_FIELD_OFFSET(PpuState_SpriteState, ycoordminus1_)>(
          reinterpret_cast<char*>(&ycoordminus1_),
          reinterpret_cast<char*>(&other->ycoordminus1_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x78(%rbp)
movq %rsi, -0x80(%rbp)
movq -0x78(%rbp), %rcx
movq %rcx, -0x90(%rbp)
addq $0x8, %rcx
movq -0x80(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x48(%rbp)
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
je 0x4fc99
movq -0x50(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x4fd05
movq -0x50(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x98(%rbp)
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
testb $0x1, %al
jne 0x4fccf
jmp 0x4fce5
movq -0x98(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0x4fcf5
movq -0x98(%rbp), %rdi
callq 0x66330
movq %rax, -0x38(%rbp)
movq -0x88(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x66c30
movq -0x90(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x5c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x80(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x68(%rbp)
movl $0x0, -0x6c(%rbp)
movq -0x68(%rbp), %rsi
movslq -0x6c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x5f3c0
movq -0x90(%rbp), %rdi
addq $0x18, %rdi
movq -0x80(%rbp), %rsi
addq $0x18, %rsi
callq 0x60dc0
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::PpuState(Rnes::PpuState const&)
PpuState::PpuState(const PpuState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_),
      regs_(from.regs_),
      spriteram_(from.spriteram_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&cycle_, &from.cycle_,
    static_cast<size_t>(reinterpret_cast<char*>(&yscrollorigin_) -
    reinterpret_cast<char*>(&cycle_)) + sizeof(yscrollorigin_));
  // @@protoc_insertion_point(copy_constructor:Rnes.PpuState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x50(%rbp)
movq %rsi, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x5ecc0
movq -0x78(%rbp), %rdi
leaq 0x41585(%rip), %rax     # 0x91470
movq %rax, (%rdi)
movq -0x58(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, 0x10(%rdi)
addq $0x14, %rdi
callq 0x5ec30
movq -0x78(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0x70(%rbp)
movq -0x58(%rbp), %rsi
addq $0x18, %rsi
callq 0xe290
jmp 0x4ff1c
movq -0x78(%rbp), %rdi
addq $0x28, %rdi
movq %rdi, -0x80(%rbp)
movq -0x58(%rbp), %rsi
addq $0x28, %rsi
callq 0x60f10
jmp 0x4ff37
movq -0x78(%rbp), %rcx
addq $0x8, %rcx
movq -0x58(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x40(%rbp)
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x4ff90
jmp 0x50019
movq -0x48(%rbp), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x98(%rbp)
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x4ffdd
movq -0x98(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x4fff7
movq -0x30(%rbp), %rax
callq *%rax
movq %rax, -0xa0(%rbp)
jmp 0x4ffec
movq -0xa0(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rsi
movq -0x90(%rbp), %rdi
callq 0x66b40
jmp 0x50017
jmp 0x50019
jmp 0x5001b
movq -0x78(%rbp), %rax
movq %rax, %rdi
addq $0x40, %rdi
movq -0x58(%rbp), %rsi
addq $0x40, %rsi
movq %rax, %rdx
addq $0x70, %rdx
addq $0x40, %rax
subq %rax, %rdx
addq $0x4, %rdx
callq 0xe0b0
addq $0xb0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x50088
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x5007f
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x60ed0
movq -0x70(%rbp), %rdi
callq 0xe180
movq -0x78(%rbp), %rdi
callq 0x5eca0
movq -0x60(%rbp), %rdi
callq 0xe700
nopw (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::Clear()
void PpuState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.PpuState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq %rdi, -0x48(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x18, %rdi
callq 0xe430
movq -0x48(%rbp), %rdi
addq $0x28, %rdi
callq 0x61020
movq -0x48(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x28(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0xff, %eax
cmpl $0x0, %eax
je 0x50223
movq -0x48(%rbp), %rax
movq %rax, %rdi
addq $0x40, %rdi
movq %rax, %rdx
addq $0x64, %rdx
addq $0x40, %rax
subq %rax, %rdx
addq $0x4, %rdx
xorl %esi, %esi
callq 0xe420
movl -0x3c(%rbp), %eax
andl $0x700, %eax            # imm = 0x700
cmpl $0x0, %eax
je 0x50254
movq -0x48(%rbp), %rax
movq %rax, %rdi
addq $0x68, %rdi
movq %rax, %rdx
addq $0x70, %rdx
addq $0x68, %rax
subq %rax, %rdx
addq $0x4, %rdx
xorl %esi, %esi
callq 0xe420
movq -0x48(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0x4, %edx
callq 0xe420
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x502a9
movq -0x50(%rbp), %rdi
callq 0x66bc0
addq $0x50, %rsp
popq %rbp
retq
nop
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::MergeFrom(google::protobuf::Message const&)
void PpuState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.PpuState)
  GOOGLE_DCHECK_NE(&from, this);
  const PpuState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PpuState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.PpuState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.PpuState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x49(%rbp)
cmpq %rcx, %rax
je 0x51a4a
jmp 0x51a93
leaq 0x196e0(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0xf0b, %ecx            # imm = 0xF0B
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x196c9(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x51a82
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x51a91
jmp 0x51a93
testb $0x1, -0x49(%rbp)
jne 0x51a9b
jmp 0x51aa4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x614c0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x51ae6
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x51af3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x51adb
jmp 0x51ae4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x51afc
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x51b10
addq $0x80, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::CopyFrom(google::protobuf::Message const&)
void PpuState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.PpuState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x51f40
jmp 0x51f56
movq -0x18(%rbp), %rdi
callq 0x501a0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x51a20
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::CopyFrom(Rnes::PpuState const&)
void PpuState::CopyFrom(const PpuState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.PpuState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x51f80
jmp 0x51f96
movq -0x18(%rbp), %rdi
callq 0x501a0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x51b10
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::PpuState::InternalSwap(Rnes::PpuState*)
void PpuState::InternalSwap(PpuState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  regs_.InternalSwap(&other->regs_);
  spriteram_.InternalSwap(&other->spriteram_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PpuState, yscrollorigin_)
      + sizeof(PpuState::yscrollorigin_)
      - PROTOBUF_FIELD_OFFSET(PpuState, cycle_)>(
          reinterpret_cast<char*>(&cycle_),
          reinterpret_cast<char*>(&other->cycle_));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x78(%rbp)
movq %rsi, -0x80(%rbp)
movq -0x78(%rbp), %rcx
movq %rcx, -0x90(%rbp)
addq $0x8, %rcx
movq -0x80(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x48(%rbp)
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
je 0x52029
movq -0x50(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x52095
movq -0x50(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x98(%rbp)
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
testb $0x1, %al
jne 0x5205f
jmp 0x52075
movq -0x98(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0x52085
movq -0x98(%rbp), %rdi
callq 0x66330
movq %rax, -0x38(%rbp)
movq -0x88(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x66c30
movq -0x90(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x5c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x80(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x68(%rbp)
movl $0x0, -0x6c(%rbp)
movq -0x68(%rbp), %rsi
movslq -0x6c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x5f3c0
movq -0x90(%rbp), %rdi
addq $0x18, %rdi
movq -0x80(%rbp), %rsi
addq $0x18, %rsi
callq 0xe1d0
movq -0x90(%rbp), %rdi
addq $0x28, %rdi
movq -0x80(%rbp), %rsi
addq $0x28, %rsi
callq 0x61550
movq -0x90(%rbp), %rdi
addq $0x40, %rdi
movq -0x80(%rbp), %rsi
addq $0x40, %rsi
callq 0x61580
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::_InternalParse(char const*, google::protobuf::internal::ParseContext*)
const char* MmcState_MmcNoneState::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x28(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x284d0
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x5efa0
xorb $-0x1, %al
testb $0x1, %al
jne 0x524cd
jmp 0x525a5
movq -0x30(%rbp), %rdi
leaq -0x44(%rbp), %rsi
xorl %edx, %edx
callq 0x5efd0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x524f0
jmp 0x524f5
jmp 0x525b1
movl -0x44(%rbp), %eax
andl $0x7, %eax
cmpl $0x4, %eax
je 0x52506
cmpl $0x0, -0x44(%rbp)
jne 0x52517
movq -0x38(%rbp), %rdi
movl -0x44(%rbp), %esi
callq 0x5f240
jmp 0x525a7
movq -0x50(%rbp), %rax
movl -0x44(%rbp), %ecx
movq %rcx, -0x60(%rbp)
addq $0x8, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
testb $0x1, %al
jne 0x52555
jmp 0x52568
movq -0x58(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x18(%rbp)
jmp 0x52575
movq -0x58(%rbp), %rdi
callq 0x66330
movq %rax, -0x18(%rbp)
movq -0x60(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq -0x38(%rbp), %rcx
callq 0xe480
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5259e
jmp 0x525a0
jmp 0x525b1
jmp 0x524b5
jmp 0x525a7
movq -0x30(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
movq $0x0, -0x30(%rbp)
jmp 0x525a7
nopl (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* MmcState_MmcNoneState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Rnes.MmcState.MmcNoneState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x40(%rbp)
movq %rsi, -0x48(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x60(%rbp)
movl $0x0, -0x54(%rbp)
addq $0x8, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x5266d
movq -0x60(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movq 0x3f96a(%rip), %rax     # 0x91f80
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x68(%rbp)
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x52651
movq -0x68(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x52658
callq *-0x30(%rbp)
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0xe3b0
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::ByteSizeLong() const
size_t MmcState_MmcNoneState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.MmcState.MmcNoneState)
  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;

  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
subq $0x40, %rsp
movq %rdi, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq $0x0, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x526e1
movq -0x38(%rbp), %rdx
movq %rdx, %rdi
addq $0x8, %rdi
movq -0x28(%rbp), %rsi
addq $0x10, %rdx
callq 0xec20
movq %rax, -0x18(%rbp)
jmp 0x52701
movq -0x28(%rbp), %rdi
callq 0x5f350
movq -0x38(%rbp), %rdi
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %esi
callq 0x523e0
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::MergeFrom(google::protobuf::Message const&)
void MmcState_MmcNoneState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState.MmcNoneState)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState_MmcNoneState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState_MmcNoneState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState.MmcNoneState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState.MmcNoneState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x49(%rbp)
cmpq %rcx, %rax
je 0x5273a
jmp 0x52783
leaq 0x189f0(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0xfe3, %ecx            # imm = 0xFE3
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x189d9(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x52772
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x52781
jmp 0x52783
testb $0x1, -0x49(%rbp)
jne 0x5278b
jmp 0x52794
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x616e0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x527d6
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x527e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x527cb
jmp 0x527d4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x527ec
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x52800
addq $0x80, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::MergeFrom(Rnes::MmcState_MmcNoneState const&)
void MmcState_MmcNoneState::MergeFrom(const MmcState_MmcNoneState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Rnes.MmcState.MmcNoneState)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x50(%rbp)
movq %rsi, -0x58(%rbp)
movq -0x50(%rbp), %rcx
movq %rcx, -0xb8(%rbp)
movq -0x58(%rbp), %rax
movb $0x0, -0x91(%rbp)
cmpq %rcx, %rax
je 0x52830
jmp 0x5288e
leaq 0x188fa(%rip), %rdx     # 0x6b131
leaq -0x90(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
movl $0x3, %esi
movl $0xff2, %ecx            # imm = 0xFF2
callq 0xe690
movq -0xc8(%rbp), %rdi
movb $0x1, -0x91(%rbp)
leaq 0x188d7(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0xc0(%rbp)
jmp 0x52877
movq -0xc0(%rbp), %rsi
leaq -0xa5(%rbp), %rdi
callq 0xe820
jmp 0x5288c
jmp 0x5288e
testb $0x1, -0x91(%rbp)
jne 0x52899
jmp 0x528a5
leaq -0x90(%rbp), %rdi
callq 0xe9d0
movq -0xb8(%rbp), %rcx
addq $0x8, %rcx
movq -0x58(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x40(%rbp)
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x5294f
movq -0x48(%rbp), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x52938
movq -0xd8(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x5293f
callq *-0x30(%rbp)
movq %rax, -0x20(%rbp)
movq -0xd0(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x66b40
movl $0x0, -0xac(%rbp)
addq $0xe0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
testb $0x1, -0x91(%rbp)
jne 0x5297f
jmp 0x5298b
leaq -0x90(%rbp), %rdi
callq 0xe9d0
jmp 0x5298d
movq -0xa0(%rbp), %rdi
callq 0xe700
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::CopyFrom(google::protobuf::Message const&)
void MmcState_MmcNoneState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.MmcState.MmcNoneState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x529c0
jmp 0x529d6
movq -0x18(%rbp), %rdi
callq 0x52430
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x52710
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_MmcNoneState::CopyFrom(Rnes::MmcState_MmcNoneState const&)
void MmcState_MmcNoneState::CopyFrom(const MmcState_MmcNoneState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.MmcState.MmcNoneState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x52a00
jmp 0x52a16
movq -0x18(%rbp), %rdi
callq 0x52430
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x52800
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::MmcState_Mmc1State(Rnes::MmcState_Mmc1State const&)
MmcState_Mmc1State::MmcState_Mmc1State(const MmcState_Mmc1State& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&controlreg_, &from.controlreg_,
    static_cast<size_t>(reinterpret_cast<char*>(&shiftregister_) -
    reinterpret_cast<char*>(&controlreg_)) + sizeof(shiftregister_));
  // @@protoc_insertion_point(copy_constructor:Rnes.MmcState.Mmc1State)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x50(%rbp)
movq %rsi, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x5ecc0
movq -0x78(%rbp), %rdi
leaq 0x3e9a5(%rip), %rax     # 0x915c0
addq $0x10, %rax
movq %rax, (%rdi)
movq -0x58(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, 0x10(%rdi)
addq $0x14, %rdi
callq 0x5ec30
movq -0x78(%rbp), %rcx
addq $0x8, %rcx
movq -0x58(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x40(%rbp)
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
sete %al
movb %al, -0x65(%rbp)
movb -0x65(%rbp), %al
testb $0x1, %al
jne 0x52c85
jmp 0x52d05
movq -0x48(%rbp), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x80(%rbp)
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x52ccc
movq -0x80(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x52ce6
movq -0x30(%rbp), %rax
callq *%rax
movq %rax, -0x88(%rbp)
jmp 0x52cdb
movq -0x88(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rsi
movq -0x70(%rbp), %rdi
callq 0x66b40
jmp 0x52d03
jmp 0x52d05
jmp 0x52d07
movq -0x78(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq -0x58(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdx
addq $0x28, %rdx
addq $0x18, %rax
subq %rax, %rdx
addq $0x4, %rdx
callq 0xe0b0
addq $0x90, %rsp
popq %rbp
retq
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x5eca0
movq -0x60(%rbp), %rdi
callq 0xe700
nopl (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::MergeFrom(google::protobuf::Message const&)
void MmcState_Mmc1State::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState.Mmc1State)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState_Mmc1State* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState_Mmc1State>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState.Mmc1State)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState.Mmc1State)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x49(%rbp)
cmpq %rcx, %rax
je 0x5399a
jmp 0x539e3
leaq 0x17790(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x111a, %ecx           # imm = 0x111A
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x17779(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x539d2
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x539e1
jmp 0x539e3
testb $0x1, -0x49(%rbp)
jne 0x539eb
jmp 0x539f4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x61980
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x53a36
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x53a43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x53a2b
jmp 0x53a34
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x53a4c
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x53a60
addq $0x80, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::CopyFrom(google::protobuf::Message const&)
void MmcState_Mmc1State::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.MmcState.Mmc1State)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x53d20
jmp 0x53d36
movq -0x18(%rbp), %rdi
callq 0x52e50
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x53970
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc1State::CopyFrom(Rnes::MmcState_Mmc1State const&)
void MmcState_Mmc1State::CopyFrom(const MmcState_Mmc1State& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.MmcState.Mmc1State)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x53d60
jmp 0x53d76
movq -0x18(%rbp), %rdi
callq 0x52e50
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x53a60
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::Clear()
void MmcState_Mmc3State::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.MmcState.Mmc3State)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x28(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x54330
movq -0x48(%rbp), %rdi
addq $0x18, %rdi
callq 0x61c20
movl -0x3c(%rbp), %eax
andl $0xfe, %eax
cmpl $0x0, %eax
je 0x54361
movq -0x48(%rbp), %rax
movq %rax, %rdi
addq $0x20, %rdi
movq %rax, %rdx
addq $0x35, %rdx
addq $0x20, %rax
subq %rax, %rdx
addq $0x1, %rdx
xorl %esi, %esi
callq 0xe420
movq -0x48(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0x4, %edx
callq 0xe420
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpl $0x1, %eax
jne 0x543b6
movq -0x50(%rbp), %rdi
callq 0x66bc0
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::MergeFrom(google::protobuf::Message const&)
void MmcState_Mmc3State::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState.Mmc3State)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState_Mmc3State* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState_Mmc3State>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState.Mmc3State)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState.Mmc3State)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x49(%rbp)
cmpq %rcx, %rax
je 0x551fa
jmp 0x55243
leaq 0x15f30(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x12ba, %ecx           # imm = 0x12BA
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x15f19(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x55232
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x55241
jmp 0x55243
testb $0x1, -0x49(%rbp)
jne 0x5524b
jmp 0x55254
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x61e70
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x55296
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x552a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x5528b
jmp 0x55294
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x552ac
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x552c0
addq $0x80, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::CopyFrom(google::protobuf::Message const&)
void MmcState_Mmc3State::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.MmcState.Mmc3State)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x555f0
jmp 0x55606
movq -0x18(%rbp), %rdi
callq 0x542e0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x551d0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState_Mmc3State::CopyFrom(Rnes::MmcState_Mmc3State const&)
void MmcState_Mmc3State::CopyFrom(const MmcState_Mmc3State& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.MmcState.Mmc3State)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq %rax, -0x10(%rbp)
jne 0x55630
jmp 0x55646
movq -0x18(%rbp), %rdi
callq 0x542e0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x552c0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)