// File: /workspace/github_cpp_makefile_star2_O2/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 0x256d7
testb $0x1, %r15b
je 0x25477
movq 0x18(%rbx), %rax
andq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
testb $0x2, %r15b
je 0x254ce
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
jne 0x254c9
leaq 0x78f4(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x1968, %ecx           # imm = 0x1968
callq 0xb460
leaq 0x79fd(%rip), %rsi      # 0x2cea5
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x20(%rbx), %rdi
callq 0x24c46
testb $0x4, %r15b
je 0x25525
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
jne 0x25520
leaq 0x789d(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x196c, %ecx           # imm = 0x196C
callq 0xb460
leaq 0x79c6(%rip), %rsi      # 0x2cec5
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x28(%rbx), %rdi
callq 0x1dc90
testb $0x8, %r15b
je 0x2557c
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
jne 0x25577
leaq 0x7846(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x1970, %ecx           # imm = 0x1970
callq 0xb460
leaq 0x798f(%rip), %rsi      # 0x2cee5
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x30(%rbx), %rdi
callq 0x1fca6
testb $0x10, %r15b
je 0x255d3
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
jne 0x255ce
leaq 0x77ef(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x1974, %ecx           # imm = 0x1974
callq 0xb460
leaq 0x7958(%rip), %rsi      # 0x2cf05
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x38(%rbx), %rdi
callq 0x2114c
testb $0x20, %r15b
je 0x2562a
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
jne 0x25625
leaq 0x7798(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x1978, %ecx           # imm = 0x1978
callq 0xb460
leaq 0x7921(%rip), %rsi      # 0x2cf25
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x40(%rbx), %rdi
callq 0x2382c
testb $0x40, %r15b
je 0x25681
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
jne 0x2567c
leaq 0x7741(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x197c, %ecx           # imm = 0x197C
callq 0xb460
leaq 0x78f1(%rip), %rsi      # 0x2cf4c
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x48(%rbx), %rdi
callq 0x23dd6
testb %r15b, %r15b
jns 0x256d7
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
jne 0x256d2
leaq 0x76eb(%rip), %rdx      # 0x2cd81
leaq -0x58(%rbp), %r14
pushq $0x3
popq %rsi
movq %r14, %rdi
movl $0x1980, %ecx           # imm = 0x1980
callq 0xb460
leaq 0x78be(%rip), %rsi      # 0x2cf6f
movq %r14, %rdi
callq 0xb980
leaq -0x19(%rbp), %rdi
movq %rax, %rsi
callq 0xb5e0
leaq -0x58(%rbp), %rdi
callq 0xb730
movq 0x50(%rbx), %rdi
callq 0x244e4
andq $0x0, 0x58(%rbx)
andl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
je 0x256f2
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x291de
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
jmp 0x25717
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4e0
nop