// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x190, %rsp            # imm = 0x190
movq %rdi, %rbx
movzbl 0x10(%rdi), %r15d
testl %r15d, %r15d
je 0x30b01
testb $0x1, %r15b
je 0x3084b
movq 0x18(%rbx), %rax
movq $0x0, 0x8(%rax)
movq (%rax), %rax
movb $0x0, (%rax)
testb $0x2, %r15b
je 0x308b0
movq 0x20(%rbx), %r12
testq %r12, %r12
jne 0x308a4
leaq 0x6430(%rip), %rdx      # 0x36c91
leaq -0x1b0(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1968, %ecx           # imm = 0x1968
callq 0xb450
leaq 0x6534(%rip), %rsi      # 0x36db5
movq %r14, %rdi
callq 0xb980
leaq -0x178(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x1b0(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x20(%rbx), %rdi
callq 0x2fb58
testb $0x4, %r15b
je 0x30915
movq 0x28(%rbx), %r12
testq %r12, %r12
jne 0x30909
leaq 0x63cb(%rip), %rdx      # 0x36c91
leaq -0x178(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x196c, %ecx           # imm = 0x196C
callq 0xb450
leaq 0x64ef(%rip), %rsi      # 0x36dd5
movq %r14, %rdi
callq 0xb980
leaq -0x140(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x178(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x28(%rbx), %rdi
callq 0x24ae6
testb $0x8, %r15b
je 0x3097a
movq 0x30(%rbx), %r12
testq %r12, %r12
jne 0x3096e
leaq 0x6366(%rip), %rdx      # 0x36c91
leaq -0x140(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1970, %ecx           # imm = 0x1970
callq 0xb450
leaq 0x64aa(%rip), %rsi      # 0x36df5
movq %r14, %rdi
callq 0xb980
leaq -0x108(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x140(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x30(%rbx), %rdi
callq 0x27f12
testb $0x10, %r15b
je 0x309df
movq 0x38(%rbx), %r12
testq %r12, %r12
jne 0x309d3
leaq 0x6301(%rip), %rdx      # 0x36c91
leaq -0x108(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1974, %ecx           # imm = 0x1974
callq 0xb450
leaq 0x6465(%rip), %rsi      # 0x36e15
movq %r14, %rdi
callq 0xb980
leaq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x108(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x38(%rbx), %rdi
callq 0x2a190
testb $0x20, %r15b
je 0x30a44
movq 0x40(%rbx), %r12
testq %r12, %r12
jne 0x30a38
leaq 0x629c(%rip), %rdx      # 0x36c91
leaq -0xd0(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1978, %ecx           # imm = 0x1978
callq 0xb450
leaq 0x6420(%rip), %rsi      # 0x36e35
movq %r14, %rdi
callq 0xb980
leaq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0xd0(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x40(%rbx), %rdi
callq 0x2e0f2
testb $0x40, %r15b
je 0x30aa6
movq 0x48(%rbx), %r12
testq %r12, %r12
jne 0x30a9a
leaq 0x6237(%rip), %rdx      # 0x36c91
leaq -0x98(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x197c, %ecx           # imm = 0x197C
callq 0xb450
leaq 0x63e2(%rip), %rsi      # 0x36e5c
movq %r14, %rdi
callq 0xb980
leaq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x98(%rbp), %rdi
callq 0xb730
testq %r12, %r12
movq 0x48(%rbx), %rdi
callq 0x2e876
testb %r15b, %r15b
jns 0x30b01
movq 0x50(%rbx), %r15
testq %r15, %r15
jne 0x30af5
leaq 0x61d6(%rip), %rdx      # 0x36c91
leaq -0x60(%rbp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1980, %ecx           # imm = 0x1980
callq 0xb450
leaq 0x63a7(%rip), %rsi      # 0x36e7f
movq %r14, %rdi
callq 0xb980
leaq -0x21(%rbp), %rdi
movq %rax, %rsi
callq 0xb600
leaq -0x60(%rbp), %rdi
callq 0xb730
testq %r15, %r15
movq 0x50(%rbx), %rdi
callq 0x2f138
movq $0x0, 0x58(%rbx)
movl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
je 0x30b22
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x33226
addq $0x190, %rsp            # imm = 0x190
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x30b38
jmp 0x30b43
jmp 0x30b51
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
jmp 0x30b8f
jmp 0x30b5f
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
jmp 0x30b8f
jmp 0x30b6d
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
jmp 0x30b8f
jmp 0x30b79
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
jmp 0x30b8f
jmp 0x30b85
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
jmp 0x30b8f
movq %rax, %rbx
leaq -0x178(%rbp), %rdi
jmp 0x30b8f
movq %rax, %rbx
leaq -0x1b0(%rbp), %rdi
callq 0xb730
movq %rbx, %rdi
callq 0xb4d0