LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::InitAsDefaultInstance()
void MmcState::InitAsDefaultInstance() {
  ::Rnes::_MmcState_default_instance_._instance.get_mutable()->mmcnone_ = const_cast< ::Rnes::MmcState_MmcNoneState*>(
      ::Rnes::MmcState_MmcNoneState::internal_default_instance());
  ::Rnes::_MmcState_default_instance_._instance.get_mutable()->mmc1_ = const_cast< ::Rnes::MmcState_Mmc1State*>(
      ::Rnes::MmcState_Mmc1State::internal_default_instance());
  ::Rnes::_MmcState_default_instance_._instance.get_mutable()->mmc3_ = const_cast< ::Rnes::MmcState_Mmc3State*>(
      ::Rnes::MmcState_Mmc3State::internal_default_instance());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
callq 0x616d0
movq %rax, -0x18(%rbp)
leaq 0x3d3d8(%rip), %rdi     # 0x92cd0
callq 0x61fd0
movq -0x18(%rbp), %rcx
movq %rcx, 0x18(%rax)
callq 0x61880
movq %rax, -0x10(%rbp)
leaq 0x3d3bb(%rip), %rdi     # 0x92cd0
callq 0x61fd0
movq -0x10(%rbp), %rcx
movq %rcx, 0x20(%rax)
callq 0x61c10
movq %rax, -0x8(%rbp)
leaq 0x3d39e(%rip), %rdi     # 0x92cd0
callq 0x61fd0
movq -0x8(%rbp), %rcx
movq %rcx, 0x28(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::ByteSizeLong() const
size_t MmcState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Rnes.MmcState)
  size_t total_size = 0;

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

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

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

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

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0x7, %eax
cmpl $0x0, %eax
je 0x568d9
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5688f
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x62810
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x568b3
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x62840
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x568d7
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x62870
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x568d9
movq -0x48(%rbp), %rax
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 0x5691b
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x8, %rdi
movq -0x38(%rbp), %rsi
addq $0x14, %rdx
callq 0xec20
movq %rax, -0x28(%rbp)
jmp 0x5693b
movq -0x38(%rbp), %rdi
callq 0x5f350
movq -0x48(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x55dc0
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::MergeFrom(google::protobuf::Message const&)
void MmcState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Rnes.MmcState)
  GOOGLE_DCHECK_NE(&from, this);
  const MmcState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MmcState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Rnes.MmcState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Rnes.MmcState)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
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 0x5697a
jmp 0x569c3
leaq 0x147b0(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x1416, %ecx           # imm = 0x1416
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x14799(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x569b2
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x569c1
jmp 0x569c3
testb $0x1, -0x49(%rbp)
jne 0x569cb
jmp 0x569d4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x628a0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x56a16
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x56a23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x56a0b
jmp 0x56a14
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x56a2c
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x56a40
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::CopyFrom(google::protobuf::Message const&)
void MmcState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.MmcState)
  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 0x56ce0
jmp 0x56cf6
movq -0x18(%rbp), %rdi
callq 0x55e10
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x56950
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::MmcState::CopyFrom(Rnes::MmcState const&)
void MmcState::CopyFrom(const MmcState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.MmcState)
  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 0x56d20
jmp 0x56d36
movq -0x18(%rbp), %rdi
callq 0x55e10
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x56a40
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::ControllerState(Rnes::ControllerState const&)
ControllerState::ControllerState(const ControllerState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&control_, &from.control_,
    static_cast<size_t>(reinterpret_cast<char*>(&shiftreg_) -
    reinterpret_cast<char*>(&control_)) + sizeof(shiftreg_));
  // @@protoc_insertion_point(copy_constructor:Rnes.ControllerState)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
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 0x3a815(%rip), %rax     # 0x917d0
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 0x57025
jmp 0x570a5
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 0x5706c
movq -0x80(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x57086
movq -0x30(%rbp), %rax
callq *%rax
movq %rax, -0x88(%rbp)
jmp 0x5707b
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 0x570a3
jmp 0x570a5
jmp 0x570a7
movq -0x78(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq -0x58(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdx
addq $0x1c, %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::ControllerState::Clear()
void ControllerState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.ControllerState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
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 $0x3, %eax
cmpl $0x0, %eax
je 0x57257
movq -0x48(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq %rax, %rdx
addq $0x1c, %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 0x572ac
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::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
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
je 0x5784b
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x57822
movq -0x48(%rbp), %rdi
callq 0x3e690
movl %eax, %edi
callq 0x5f310
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x57849
movq -0x48(%rbp), %rdi
callq 0x3e6b0
movl %eax, %edi
callq 0x5f310
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x5784b
movq -0x48(%rbp), %rax
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 0x5788d
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x8, %rdi
movq -0x38(%rbp), %rsi
addq $0x14, %rdx
callq 0xec20
movq %rax, -0x28(%rbp)
jmp 0x578ad
movq -0x38(%rbp), %rdi
callq 0x5f350
movq -0x48(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x571a0
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: 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
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 0x578ea
jmp 0x57933
leaq 0x13840(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x1518, %ecx           # imm = 0x1518
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x13829(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x57922
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x57931
jmp 0x57933
testb $0x1, -0x49(%rbp)
jne 0x5793b
jmp 0x57944
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x62af0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x57986
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x57993
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x5797b
jmp 0x57984
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x5799c
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x579b0
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::ControllerState::CopyFrom(google::protobuf::Message const&)
void ControllerState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.ControllerState)
  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 0x57c10
jmp 0x57c26
movq -0x18(%rbp), %rdi
callq 0x571f0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x578c0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::ControllerState::CopyFrom(Rnes::ControllerState const&)
void ControllerState::CopyFrom(const ControllerState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.ControllerState)
  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 0x57c50
jmp 0x57c66
movq -0x18(%rbp), %rdi
callq 0x571f0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x579b0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: 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
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 $0x3, %eax
cmpl $0x0, %eax
je 0x582d5
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x582bb
movq -0x48(%rbp), %rdi
addq $0x18, %rdi
callq 0x61c20
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x582d3
movq -0x48(%rbp), %rdi
addq $0x20, %rdi
callq 0x61c20
jmp 0x582d5
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 0x5832a
movq -0x50(%rbp), %rdi
callq 0x66bc0
addq $0x50, %rsp
popq %rbp
retq
// File: 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
subq $0x90, %rsp
movq %rdi, -0x50(%rbp)
movq %rsi, -0x58(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x70(%rbp)
movl $0x0, -0x64(%rbp)
addq $0x10, %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movq -0x40(%rbp), %rax
movslq -0x44(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x585e8
movq -0x70(%rbp), %rdi
movq -0x60(%rbp), %rax
movq %rax, -0x78(%rbp)
callq 0x458c0
movq -0x78(%rbp), %rdi
movq %rax, %rdx
movq -0x58(%rbp), %rcx
movl $0x1, %esi
callq 0x61e00
movq %rax, -0x58(%rbp)
movl -0x64(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5861d
movq -0x70(%rbp), %rdi
movq -0x60(%rbp), %rax
movq %rax, -0x80(%rbp)
callq 0x458e0
movq -0x80(%rbp), %rdi
movq %rax, %rdx
movq -0x58(%rbp), %rcx
movl $0x2, %esi
callq 0x61e00
movq %rax, -0x58(%rbp)
movq -0x70(%rbp), %rax
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 0x586b1
movq -0x70(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movq 0x3992c(%rip), %rax     # 0x91f80
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x88(%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 0x58695
movq -0x88(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x5869c
callq *-0x30(%rbp)
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0xe3b0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
nop
// File: 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
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
je 0x5875d
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x58733
movq -0x48(%rbp), %rdi
callq 0x458c0
movq %rax, %rdi
callq 0x61e40
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5875b
movq -0x48(%rbp), %rdi
callq 0x458e0
movq %rax, %rdi
callq 0x61e40
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x5875d
movq -0x48(%rbp), %rax
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 0x5879f
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x8, %rdi
movq -0x38(%rbp), %rsi
addq $0x14, %rdx
callq 0xec20
movq %rax, -0x28(%rbp)
jmp 0x587bf
movq -0x38(%rbp), %rdi
callq 0x5f350
movq -0x48(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x58210
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: 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
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 0x587fa
jmp 0x58843
leaq 0x12930(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x1624, %ecx           # imm = 0x1624
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x12919(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x58832
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x58841
jmp 0x58843
testb $0x1, -0x49(%rbp)
jne 0x5884b
jmp 0x58854
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x62ea0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x58896
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x588a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x5888b
jmp 0x58894
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x588ac
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x588c0
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::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
subq $0xf0, %rsp
movq %rdi, -0x60(%rbp)
movq %rsi, -0x68(%rbp)
movq -0x60(%rbp), %rcx
movq %rcx, -0xc8(%rbp)
movq -0x68(%rbp), %rax
movb $0x0, -0xa1(%rbp)
cmpq %rcx, %rax
je 0x588f0
jmp 0x5894e
leaq 0x1283a(%rip), %rdx     # 0x6b131
leaq -0xa0(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
movl $0x3, %esi
movl $0x1633, %ecx           # imm = 0x1633
callq 0xe690
movq -0xd8(%rbp), %rdi
movb $0x1, -0xa1(%rbp)
leaq 0x12817(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0xd0(%rbp)
jmp 0x58937
movq -0xd0(%rbp), %rsi
leaq -0xb5(%rbp), %rdi
callq 0xe820
jmp 0x5894c
jmp 0x5894e
testb $0x1, -0xa1(%rbp)
jne 0x58959
jmp 0x58965
leaq -0xa0(%rbp), %rdi
callq 0xe9d0
movq -0xc8(%rbp), %rcx
addq $0x8, %rcx
movq -0x68(%rbp), %rax
addq $0x8, %rax
movq %rcx, -0x50(%rbp)
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x58(%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 0x58a0f
movq -0x58(%rbp), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0xe8(%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 0x589f8
movq -0xe8(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x589ff
callq *-0x30(%rbp)
movq %rax, -0x20(%rbp)
movq -0xe0(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x66b40
movl $0x0, -0xbc(%rbp)
movq -0x68(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movq -0x40(%rbp), %rax
movslq -0x44(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xbc(%rbp)
movl -0xbc(%rbp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
je 0x58ac6
movl -0xbc(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x58a9e
movq -0x68(%rbp), %rdi
callq 0x458c0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x62f00
jmp 0x58a9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
testb $0x1, -0xa1(%rbp)
jne 0x58a90
jmp 0x58a9c
leaq -0xa0(%rbp), %rdi
callq 0xe9d0
jmp 0x58acf
movl -0xbc(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x58ac4
movq -0x68(%rbp), %rdi
callq 0x458e0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x62f80
jmp 0x58ac6
addq $0xf0, %rsp
popq %rbp
retq
movq -0xb0(%rbp), %rdi
callq 0xe700
nopl (%rax,%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::CopyFrom(google::protobuf::Message const&)
void CpuMemoryState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.CpuMemoryState)
  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 0x58b00
jmp 0x58b16
movq -0x18(%rbp), %rdi
callq 0x58260
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x587d0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::CpuMemoryState::CopyFrom(Rnes::CpuMemoryState const&)
void CpuMemoryState::CopyFrom(const CpuMemoryState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.CpuMemoryState)
  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 0x58b40
jmp 0x58b56
movq -0x18(%rbp), %rdi
callq 0x58260
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x588c0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: 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
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 $0x7, %eax
cmpl $0x0, %eax
je 0x5946d
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5943b
movq -0x48(%rbp), %rdi
addq $0x18, %rdi
callq 0x61c20
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x59453
movq -0x48(%rbp), %rdi
addq $0x20, %rdi
callq 0x61c20
movl -0x3c(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5946b
movq -0x48(%rbp), %rdi
addq $0x28, %rdi
callq 0x61c20
jmp 0x5946d
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 0x594c2
movq -0x50(%rbp), %rdi
callq 0x66bc0
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: 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
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0x7, %eax
cmpl $0x0, %eax
je 0x599d5
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x59983
movq -0x48(%rbp), %rdi
callq 0x45900
movq %rax, %rdi
callq 0x61e40
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x599ab
movq -0x48(%rbp), %rdi
callq 0x45920
movq %rax, %rdi
callq 0x61e40
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x599d3
movq -0x48(%rbp), %rdi
callq 0x45940
movq %rax, %rdi
callq 0x61e40
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x599d5
movq -0x48(%rbp), %rax
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 0x59a17
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x8, %rdi
movq -0x38(%rbp), %rsi
addq $0x14, %rdx
callq 0xec20
movq %rax, -0x28(%rbp)
jmp 0x59a37
movq -0x38(%rbp), %rdi
callq 0x5f350
movq -0x48(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x59390
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: 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
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 0x59a7a
jmp 0x59ac3
leaq 0x116b0(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x174d, %ecx           # imm = 0x174D
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x11699(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x59ab2
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x59ac1
jmp 0x59ac3
testb $0x1, -0x49(%rbp)
jne 0x59acb
jmp 0x59ad4
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x63400
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x59b16
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x59b23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x59b0b
jmp 0x59b14
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x59b2c
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x59b40
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::VideoMemoryState::CopyFrom(google::protobuf::Message const&)
void VideoMemoryState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.VideoMemoryState)
  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 0x59db0
jmp 0x59dc6
movq -0x18(%rbp), %rdi
callq 0x593e0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x59a50
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::VideoMemoryState::CopyFrom(Rnes::VideoMemoryState const&)
void VideoMemoryState::CopyFrom(const VideoMemoryState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.VideoMemoryState)
  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 0x59df0
jmp 0x59e06
movq -0x18(%rbp), %rdi
callq 0x593e0
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x59b40
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: 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
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 0x37695(%rip), %rax     # 0x919e0
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 0x5a3b5
jmp 0x5a435
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 0x5a3fc
movq -0x80(%rbp), %rdi
callq 0x66310
addq $0x8, %rax
movq %rax, -0x20(%rbp)
jmp 0x5a416
movq -0x30(%rbp), %rax
callq *%rax
movq %rax, -0x88(%rbp)
jmp 0x5a40b
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 0x5a433
jmp 0x5a435
jmp 0x5a437
movq -0x78(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq -0x58(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdx
addq $0x20, %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::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
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
addq $0x10, %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
andl $0x7, %eax
cmpl $0x0, %eax
je 0x5ad62
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5ad12
movq -0x38(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5ad39
movq -0x48(%rbp), %rdi
callq 0x3ec50
movl %eax, %edi
callq 0x5f310
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5ad60
movq -0x48(%rbp), %rdi
callq 0x3ec70
movl %eax, %edi
callq 0x5f310
addq $0x1, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x5ad62
movq -0x48(%rbp), %rax
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 0x5ada4
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x8, %rdi
movq -0x38(%rbp), %rsi
addq $0x14, %rdx
callq 0xec20
movq %rax, -0x28(%rbp)
jmp 0x5adc4
movq -0x38(%rbp), %rdi
callq 0x5f350
movq -0x48(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x5a530
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nop
// File: 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
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 0x5adfa
jmp 0x5ae43
leaq 0x10330(%rip), %rdx     # 0x6b131
leaq -0x48(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0x3, %esi
movl $0x1862, %ecx           # imm = 0x1862
callq 0xe690
movq -0x80(%rbp), %rdi
movb $0x1, -0x49(%rbp)
leaq 0x10319(%rip), %rsi     # 0x6b140
callq 0xed00
movq %rax, -0x78(%rbp)
jmp 0x5ae32
movq -0x78(%rbp), %rsi
leaq -0x5d(%rbp), %rdi
callq 0xe820
jmp 0x5ae41
jmp 0x5ae43
testb $0x1, -0x49(%rbp)
jne 0x5ae4b
jmp 0x5ae54
leaq -0x48(%rbp), %rdi
callq 0xe9d0
movq -0x10(%rbp), %rdi
callq 0x637c0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x5ae96
movq -0x70(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0xe7a0
jmp 0x5aea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x49(%rbp)
jne 0x5ae8b
jmp 0x5ae94
leaq -0x48(%rbp), %rdi
callq 0xe9d0
jmp 0x5aeac
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x5aec0
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::DmaState::CopyFrom(google::protobuf::Message const&)
void DmaState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Rnes.DmaState)
  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 0x5b140
jmp 0x5b156
movq -0x18(%rbp), %rdi
callq 0x5a580
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x5add0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::DmaState::CopyFrom(Rnes::DmaState const&)
void DmaState::CopyFrom(const DmaState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Rnes.DmaState)
  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 0x5b180
jmp 0x5b196
movq -0x18(%rbp), %rdi
callq 0x5a580
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x5aec0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)