// File: /workspace/github_cpp_makefile_star2_O3/mindbeast[P]rnes/bin/save.pb.cc
// Function: Rnes::SaveState::Clear()
void SaveState::Clear() {
// @@protoc_insertion_point(message_clear_start:Rnes.SaveState)
  ::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 & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      savedate_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(dma_ != nullptr);
      dma_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(cpu_ != nullptr);
      cpu_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      GOOGLE_DCHECK(apu_ != nullptr);
      apu_->Clear();
    }
    if (cached_has_bits & 0x00000010u) {
      GOOGLE_DCHECK(ppu_ != nullptr);
      ppu_->Clear();
    }
    if (cached_has_bits & 0x00000020u) {
      GOOGLE_DCHECK(controller_ != nullptr);
      controller_->Clear();
    }
    if (cached_has_bits & 0x00000040u) {
      GOOGLE_DCHECK(cpumem_ != nullptr);
      cpumem_->Clear();
    }
    if (cached_has_bits & 0x00000080u) {
      GOOGLE_DCHECK(vidmem_ != nullptr);
      vidmem_->Clear();
    }
  }
  gametime_ = PROTOBUF_ULONGLONG(0);
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
movzbl 0x10(%rdi), %r15d
testl %r15d, %r15d
je 0x2f760
testb $0x1, %r15b
je 0x2f4f2
movq 0x18(%rbx), %rax
movq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
testb $0x2, %r15b
je 0x2f54b
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f546
leaq 0x6789(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1968, %ecx           # imm = 0x1968
callq 0xa450
leaq 0x6890(%rip), %rsi      # 0x35db5
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x20(%rbx), %rdi
callq 0x2e7b2
testb $0x4, %r15b
je 0x2f5a4
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f59f
leaq 0x6730(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x196c, %ecx           # imm = 0x196C
callq 0xa450
leaq 0x6857(%rip), %rsi      # 0x35dd5
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x28(%rbx), %rdi
callq 0x23ac6
testb $0x8, %r15b
je 0x2f5fd
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f5f8
leaq 0x66d7(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1970, %ecx           # imm = 0x1970
callq 0xa450
leaq 0x681e(%rip), %rsi      # 0x35df5
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x30(%rbx), %rdi
callq 0x26eac
testb $0x10, %r15b
je 0x2f656
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f651
leaq 0x667e(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1974, %ecx           # imm = 0x1974
callq 0xa450
leaq 0x67e5(%rip), %rsi      # 0x35e15
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x38(%rbx), %rdi
callq 0x2907a
testb $0x20, %r15b
je 0x2f6af
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f6aa
leaq 0x6625(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1978, %ecx           # imm = 0x1978
callq 0xa450
leaq 0x67ac(%rip), %rsi      # 0x35e35
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x40(%rbx), %rdi
callq 0x2cd6e
testb $0x40, %r15b
je 0x2f708
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f703
leaq 0x65cc(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x197c, %ecx           # imm = 0x197C
callq 0xa450
leaq 0x677a(%rip), %rsi      # 0x35e5c
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x48(%rbx), %rdi
callq 0x2d4d6
testb %r15b, %r15b
jns 0x2f760
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
jne 0x2f75b
leaq 0x6574(%rip), %rdx      # 0x35c91
leaq -0x58(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1980, %ecx           # imm = 0x1980
callq 0xa450
leaq 0x6745(%rip), %rsi      # 0x35e7f
movq %r14, %rdi
callq 0xa980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xa600
leaq -0x58(%rbp), %rdi
callq 0xa730
movq 0x50(%rbx), %rdi
callq 0x2ddaa
movq $0x0, 0x58(%rbx)
movl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
je 0x2f781
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x31e00
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
jmp 0x2f7a6
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xa730
movq %rbx, %rdi
callq 0xa4d0