// File: /workspace/github_cpp_makefile_star2_O2/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::LogEntry::_InternalParse(char const*, google::protobuf::internal::ParseContext*)
const char* LogEntry::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // required uint64 pc = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _Internal::set_has_pc(&has_bits);
          pc_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required uint64 instr = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          _Internal::set_has_instr(&has_bits);
          instr_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional uint64 asid = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          _Internal::set_has_asid(&has_bits);
          asid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional string process_name = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_process_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          #ifndef NDEBUG
          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "panda.LogEntry.process_name");
          #endif  // !NDEBUG
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional uint32 process_id = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          _Internal::set_has_process_id(&has_bits);
          process_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional uint64 taint_label_virtual_addr = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          _Internal::set_has_taint_label_virtual_addr(&has_bits);
          taint_label_virtual_addr_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional uint64 taint_label_physical_addr = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          _Internal::set_has_taint_label_physical_addr(&has_bits);
          taint_label_physical_addr_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional uint32 taint_label_number = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          _Internal::set_has_taint_label_number(&has_bits);
          taint_label_number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.CallStack call_stack = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_call_stack(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.TaintedBranch tainted_branch = 36;
      case 36:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_tainted_branch(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.TaintedInstr tainted_instr = 37;
      case 37:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_tainted_instr(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.TaintQueryHypercall taint_query_hypercall = 38;
      case 38:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_taint_query_hypercall(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.AttackPoint attack_point = 39;
      case 39:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_attack_point(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.TaintedInstrSummary tainted_instr_summary = 56;
      case 56:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_tainted_instr_summary(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional uint64 total_instr = 65;
      case 65:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _Internal::set_has_total_instr(&has_bits);
          total_instr_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.DwarfCall dwarf_call = 66;
      case 66:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_dwarf_call(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.DwarfCall dwarf_ret = 67;
      case 67:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_dwarf_ret(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.TaintQueryPri taint_query_pri = 68;
      case 68:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_taint_query_pri(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.AttackPointPri attack_point_pri = 69;
      case 69:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_attack_point_pri(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.SrcInfoPri pri_trace_src_info = 70;
      case 70:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_pri_trace_src_info(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // optional .panda.TaintedBranchSummary tainted_branch_summary = 72;
      case 72:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_tainted_branch_summary(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rdi, %rbx
movq %rsp, %r15
movq %rsi, (%r15)
leaq 0x8(%rdi), %rax
movq %rax, 0x10(%rsp)
xorl %r12d, %r12d
leaq 0xc(%rsp), %r13
movq %r14, %rdi
movq %r15, %rsi
callq 0x1153e
testb %al, %al
jne 0x10093
movq (%rsp), %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x11546
movq %rax, (%rsp)
testq %rax, %rax
je 0x100b2
movl 0xc(%rsp), %ebp
movl %ebp, %ecx
shrl $0x3, %ecx
leal -0x1(%rcx), %edx
cmpl $0x9, %edx
jbe 0xfd2e
leal -0x38(%rcx), %edx
cmpl $0x10, %edx
ja 0xfd63
leaq 0x55cd(%rip), %rsi      # 0x152cc
movslq (%rsi,%rdx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
cmpb $-0x3e, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13a1e
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x139a6
jmp 0x10071
leaq 0x555f(%rip), %rsi      # 0x15294
movslq (%rsi,%rdx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
cmpb $0x8, %bpl
jne 0x1003e
orl $0x2000, %r12d          # imm = 0x2000
movq %r15, %rdi
callq 0x11597
movq %rax, 0x80(%rbx)
jmp 0xff89
addl $-0x24, %ecx
cmpl $0x3, %ecx
ja 0x1003e
leaq 0x5546(%rip), %rdx      # 0x152bc
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpb $0x22, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x1377e
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x13706
jmp 0x10071
cmpb $0x30, %bpl
jne 0x1003e
orl $0x10000, %r12d         # imm = 0x10000
movq %r15, %rdi
callq 0x11597
movq %rax, 0x98(%rbx)
jmp 0xff89
cmpb $0x22, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x136b0
movq %rax, %rbp
movq (%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x6610
movq %rax, (%rsp)
movq %rbp, %rdi
leaq 0x669e(%rip), %rsi      # 0x1649a
callq 0x11718
jmp 0xff89
cmpb $0x28, %bpl
jne 0x1003e
orl $0x20000, %r12d         # imm = 0x20000
movq %r15, %rdi
callq 0x11a2c
movl %eax, 0xa0(%rbx)
jmp 0xff89
cmpb $0x18, %bpl
jne 0x1003e
orl $0x8000, %r12d          # imm = 0x8000
movq %r15, %rdi
callq 0x11597
movq %rax, 0x90(%rbx)
jmp 0xff89
cmpb $0x10, %bpl
jne 0x1003e
orl $0x4000, %r12d          # imm = 0x4000
movq %r15, %rdi
callq 0x11597
movq %rax, 0x88(%rbx)
jmp 0xff89
cmpb $0x40, %bpl
jne 0x1003e
orl $0x40000, %r12d         # imm = 0x40000
movq %r15, %rdi
callq 0x11a2c
movl %eax, 0xa4(%rbx)
jmp 0xff89
cmpb $0x52, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x136d6
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x11cd0
jmp 0x10071
cmpb $0x38, %bpl
jne 0x1003e
orl $0x80000, %r12d         # imm = 0x80000
movq %r15, %rdi
callq 0x11597
movq %rax, 0xa8(%rbx)
jmp 0xff89
cmpb $0x22, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13b9e
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x13b26
jmp 0x10071
cmpb $0x2a, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13c46
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x13bce
jmp 0x10071
cmpb $0x12, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13ac6
jmp 0xff55
cmpb $0x1a, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13af6
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x13a4e
jmp 0x10071
cmpb $0x8, %bpl
jne 0x1003e
orl $0x100000, %r12d        # imm = 0x100000
movq %r15, %rdi
callq 0x11597
movq %rax, 0xb0(%rbx)
cmpq $0x0, (%rsp)
jne 0xfcb1
jmp 0x100b2
cmpb $0x32, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13c76
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x11d78
jmp 0x10071
cmpb $0x42, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13d1e
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x13ca6
jmp 0x10071
cmpb $0x32, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x138ce
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x13856
jmp 0x10071
cmpb $0x3a, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13976
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x138fe
jmp 0x10071
cmpb $0x2a, %bpl
jne 0x1003e
movq %rbx, %rdi
callq 0x13826
movq (%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x137ae
jmp 0x10071
testq %rbp, %rbp
je 0x100aa
movl %ebp, %ecx
andl $0x7, %ecx
cmpl $0x4, %ecx
je 0x100aa
movq 0x10(%rsp), %rcx
movq (%rcx), %rsi
testb $0x1, %sil
je 0x10080
andq $-0x2, %rsi
addq $0x8, %rsi
movq %rbp, %rdi
movq %rax, %rdx
movq %r14, %rcx
callq 0x61c0
movq %rax, (%rsp)
testq %rax, %rax
jne 0xfcb1
jmp 0x100b2
movq 0x10(%rsp), %rdi
callq 0x144e8
movq %rax, %rsi
movq (%rsp), %rax
jmp 0x10063
movq (%rsp), %rax
orl %r12d, 0x10(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
decl %ebp
movl %ebp, 0x50(%r14)
jmp 0x10097
xorl %eax, %eax
jmp 0x10097