// File: 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
subq $0x290, %rsp            # imm = 0x290
movq %rdi, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x218(%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 $0xff, %eax
cmpl $0x0, %eax
je 0x5c2a8
movl -0x3c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5bcaa
movq -0x218(%rbp), %rdi
addq $0x18, %rdi
callq 0x61c20
movl -0x3c(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5bd73
movq -0x218(%rbp), %rax
movq 0x20(%rax), %rax
movb $0x0, -0x79(%rbp)
cmpq $0x0, %rax
je 0x5bcd0
jmp 0x5bd28
leaq 0xf45a(%rip), %rdx      # 0x6b131
leaq -0x78(%rbp), %rdi
movq %rdi, -0x228(%rbp)
movl $0x3, %esi
movl $0x1968, %ecx           # imm = 0x1968
callq 0xe690
movq -0x228(%rbp), %rdi
movb $0x1, -0x79(%rbp)
leaq 0xf552(%rip), %rsi      # 0x6b255
callq 0xed00
movq %rax, -0x220(%rbp)
jmp 0x5bd11
movq -0x220(%rbp), %rsi
leaq -0x8d(%rbp), %rdi
callq 0xe820
jmp 0x5bd26
jmp 0x5bd28
testb $0x1, -0x79(%rbp)
jne 0x5bd30
jmp 0x5bd39
leaq -0x78(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x5a580
jmp 0x5bd73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x79(%rbp)
jne 0x5bd65
jmp 0x5bd6e
leaq -0x78(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
movl -0x3c(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5be51
movq -0x218(%rbp), %rax
movq 0x28(%rax), %rax
movb $0x0, -0xc9(%rbp)
cmpq $0x0, %rax
je 0x5bd9c
jmp 0x5bdfa
leaq 0xf38e(%rip), %rdx      # 0x6b131
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x3, %esi
movl $0x196c, %ecx           # imm = 0x196C
callq 0xe690
movq -0x238(%rbp), %rdi
movb $0x1, -0xc9(%rbp)
leaq 0xf4a0(%rip), %rsi      # 0x6b275
callq 0xed00
movq %rax, -0x230(%rbp)
jmp 0x5bde3
movq -0x230(%rbp), %rsi
leaq -0xca(%rbp), %rdi
callq 0xe820
jmp 0x5bdf8
jmp 0x5bdfa
testb $0x1, -0xc9(%rbp)
jne 0x5be05
jmp 0x5be11
leaq -0xc8(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x46170
jmp 0x5be51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0xc9(%rbp)
jne 0x5be40
jmp 0x5be4c
leaq -0xc8(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
movl -0x3c(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5bf2f
movq -0x218(%rbp), %rax
movq 0x30(%rax), %rax
movb $0x0, -0x109(%rbp)
cmpq $0x0, %rax
je 0x5be7a
jmp 0x5bed8
leaq 0xf2b0(%rip), %rdx      # 0x6b131
leaq -0x108(%rbp), %rdi
movq %rdi, -0x248(%rbp)
movl $0x3, %esi
movl $0x1970, %ecx           # imm = 0x1970
callq 0xe690
movq -0x248(%rbp), %rdi
movb $0x1, -0x109(%rbp)
leaq 0xf3e2(%rip), %rsi      # 0x6b295
callq 0xed00
movq %rax, -0x240(%rbp)
jmp 0x5bec1
movq -0x240(%rbp), %rsi
leaq -0x10a(%rbp), %rdi
callq 0xe820
jmp 0x5bed6
jmp 0x5bed8
testb $0x1, -0x109(%rbp)
jne 0x5bee3
jmp 0x5beef
leaq -0x108(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x4c4d0
jmp 0x5bf2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x109(%rbp)
jne 0x5bf1e
jmp 0x5bf2a
leaq -0x108(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
movl -0x3c(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x5c00d
movq -0x218(%rbp), %rax
movq 0x38(%rax), %rax
movb $0x0, -0x149(%rbp)
cmpq $0x0, %rax
je 0x5bf58
jmp 0x5bfb6
leaq 0xf1d2(%rip), %rdx      # 0x6b131
leaq -0x148(%rbp), %rdi
movq %rdi, -0x258(%rbp)
movl $0x3, %esi
movl $0x1974, %ecx           # imm = 0x1974
callq 0xe690
movq -0x258(%rbp), %rdi
movb $0x1, -0x149(%rbp)
leaq 0xf324(%rip), %rsi      # 0x6b2b5
callq 0xed00
movq %rax, -0x250(%rbp)
jmp 0x5bf9f
movq -0x250(%rbp), %rsi
leaq -0x14a(%rbp), %rdi
callq 0xe820
jmp 0x5bfb4
jmp 0x5bfb6
testb $0x1, -0x149(%rbp)
jne 0x5bfc1
jmp 0x5bfcd
leaq -0x148(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x501a0
jmp 0x5c00d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x149(%rbp)
jne 0x5bffc
jmp 0x5c008
leaq -0x148(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
movl -0x3c(%rbp), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x5c0eb
movq -0x218(%rbp), %rax
movq 0x40(%rax), %rax
movb $0x0, -0x189(%rbp)
cmpq $0x0, %rax
je 0x5c036
jmp 0x5c094
leaq 0xf0f4(%rip), %rdx      # 0x6b131
leaq -0x188(%rbp), %rdi
movq %rdi, -0x268(%rbp)
movl $0x3, %esi
movl $0x1978, %ecx           # imm = 0x1978
callq 0xe690
movq -0x268(%rbp), %rdi
movb $0x1, -0x189(%rbp)
leaq 0xf266(%rip), %rsi      # 0x6b2d5
callq 0xed00
movq %rax, -0x260(%rbp)
jmp 0x5c07d
movq -0x260(%rbp), %rsi
leaq -0x18a(%rbp), %rdi
callq 0xe820
jmp 0x5c092
jmp 0x5c094
testb $0x1, -0x189(%rbp)
jne 0x5c09f
jmp 0x5c0ab
leaq -0x188(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x571f0
jmp 0x5c0eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x189(%rbp)
jne 0x5c0da
jmp 0x5c0e6
leaq -0x188(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
movl -0x3c(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x5c1c9
movq -0x218(%rbp), %rax
movq 0x48(%rax), %rax
movb $0x0, -0x1c9(%rbp)
cmpq $0x0, %rax
je 0x5c114
jmp 0x5c172
leaq 0xf016(%rip), %rdx      # 0x6b131
leaq -0x1c8(%rbp), %rdi
movq %rdi, -0x278(%rbp)
movl $0x3, %esi
movl $0x197c, %ecx           # imm = 0x197C
callq 0xe690
movq -0x278(%rbp), %rdi
movb $0x1, -0x1c9(%rbp)
leaq 0xf1af(%rip), %rsi      # 0x6b2fc
callq 0xed00
movq %rax, -0x270(%rbp)
jmp 0x5c15b
movq -0x270(%rbp), %rsi
leaq -0x1ca(%rbp), %rdi
callq 0xe820
jmp 0x5c170
jmp 0x5c172
testb $0x1, -0x1c9(%rbp)
jne 0x5c17d
jmp 0x5c189
leaq -0x1c8(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x48(%rax), %rdi
callq 0x58260
jmp 0x5c1c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x1c9(%rbp)
jne 0x5c1b8
jmp 0x5c1c4
leaq -0x1c8(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
movl -0x3c(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x5c2a6
movq -0x218(%rbp), %rax
movq 0x50(%rax), %rax
movb $0x0, -0x209(%rbp)
cmpq $0x0, %rax
je 0x5c1f4
jmp 0x5c252
leaq 0xef36(%rip), %rdx      # 0x6b131
leaq -0x208(%rbp), %rdi
movq %rdi, -0x288(%rbp)
movl $0x3, %esi
movl $0x1980, %ecx           # imm = 0x1980
callq 0xe690
movq -0x288(%rbp), %rdi
movb $0x1, -0x209(%rbp)
leaq 0xf0f2(%rip), %rsi      # 0x6b31f
callq 0xed00
movq %rax, -0x280(%rbp)
jmp 0x5c23b
movq -0x280(%rbp), %rsi
leaq -0x20a(%rbp), %rdi
callq 0xe820
jmp 0x5c250
jmp 0x5c252
testb $0x1, -0x209(%rbp)
jne 0x5c25d
jmp 0x5c269
leaq -0x208(%rbp), %rdi
callq 0xe9d0
movq -0x218(%rbp), %rax
movq 0x50(%rax), %rdi
callq 0x593e0
jmp 0x5c2a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x209(%rbp)
jne 0x5c298
jmp 0x5c2a4
leaq -0x208(%rbp), %rdi
callq 0xe9d0
jmp 0x5c31a
jmp 0x5c2a8
movq -0x218(%rbp), %rax
movq $0x0, 0x58(%rax)
addq $0x10, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0x4, %edx
callq 0xe420
movq -0x218(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x290(%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 0x5c311
movq -0x290(%rbp), %rdi
callq 0x66bc0
addq $0x290, %rsp            # imm = 0x290
popq %rbp
retq
movq -0x88(%rbp), %rdi
callq 0xe700
nopw %cs:(%rax,%rax)