// File: /workspace/github_cpp_makefile_star2_O2/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::LogEntry::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* LogEntry::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:panda.LogEntry)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required uint64 pc = 1;
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(1, this->_internal_pc(), target);
  }

  // required uint64 instr = 2;
  if (cached_has_bits & 0x00004000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(2, this->_internal_instr(), target);
  }

  // optional uint64 asid = 3;
  if (cached_has_bits & 0x00008000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(3, this->_internal_asid(), target);
  }

  // optional string process_name = 4;
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_process_name().data(), static_cast<int>(this->_internal_process_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "panda.LogEntry.process_name");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_process_name(), target);
  }

  // optional uint32 process_id = 5;
  if (cached_has_bits & 0x00020000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_process_id(), target);
  }

  // optional uint64 taint_label_virtual_addr = 6;
  if (cached_has_bits & 0x00010000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(6, this->_internal_taint_label_virtual_addr(), target);
  }

  // optional uint64 taint_label_physical_addr = 7;
  if (cached_has_bits & 0x00080000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(7, this->_internal_taint_label_physical_addr(), target);
  }

  // optional uint32 taint_label_number = 8;
  if (cached_has_bits & 0x00040000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_taint_label_number(), target);
  }

  // optional .panda.CallStack call_stack = 10;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        10, _Internal::call_stack(this), target, stream);
  }

  // optional .panda.TaintedBranch tainted_branch = 36;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        36, _Internal::tainted_branch(this), target, stream);
  }

  // optional .panda.TaintedInstr tainted_instr = 37;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        37, _Internal::tainted_instr(this), target, stream);
  }

  // optional .panda.TaintQueryHypercall taint_query_hypercall = 38;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        38, _Internal::taint_query_hypercall(this), target, stream);
  }

  // optional .panda.AttackPoint attack_point = 39;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        39, _Internal::attack_point(this), target, stream);
  }

  // optional .panda.TaintedInstrSummary tainted_instr_summary = 56;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        56, _Internal::tainted_instr_summary(this), target, stream);
  }

  // optional uint64 total_instr = 65;
  if (cached_has_bits & 0x00100000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(65, this->_internal_total_instr(), target);
  }

  // optional .panda.DwarfCall dwarf_call = 66;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        66, _Internal::dwarf_call(this), target, stream);
  }

  // optional .panda.DwarfCall dwarf_ret = 67;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        67, _Internal::dwarf_ret(this), target, stream);
  }

  // optional .panda.TaintQueryPri taint_query_pri = 68;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        68, _Internal::taint_query_pri(this), target, stream);
  }

  // optional .panda.AttackPointPri attack_point_pri = 69;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        69, _Internal::attack_point_pri(this), target, stream);
  }

  // optional .panda.SrcInfoPri pri_trace_src_info = 70;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        70, _Internal::pri_trace_src_info(this), target, stream);
  }

  // optional .panda.TaintedBranchSummary tainted_branch_summary = 72;
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        72, _Internal::tainted_branch_summary(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:panda.LogEntry)
  return target;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movl 0x10(%rdi), %ebp
btl $0xd, %ebp
jae 0x100f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x80(%r14), %rdi
movb $0x8, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1417c
movq %rax, %r15
btl $0xe, %ebp
jae 0x10117
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x88(%r14), %rdi
movb $0x10, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1417c
movq %rax, %r15
testw %bp, %bp
jns 0x1013d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x90(%r14), %rdi
movb $0x18, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1417c
movq %rax, %r15
testb $0x1, %bpl
je 0x10171
movq 0x18(%r14), %rax
movq (%rax), %rdi
movl 0x8(%rax), %esi
leaq 0x6346(%rip), %rcx      # 0x1649a
pushq $0x1
popq %rdx
callq 0x6280
movq 0x18(%r14), %rdx
pushq $0x4
popq %rsi
movq %rbx, %rdi
movq %r15, %rcx
callq 0x11796
movq %rax, %r15
btl $0x11, %ebp
jae 0x10198
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movl 0xa0(%r14), %edi
movb $0x28, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1412e
movq %rax, %r15
btl $0x10, %ebp
jae 0x101bf
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x98(%r14), %rdi
movb $0x30, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1417c
movq %rax, %r15
btl $0x13, %ebp
jae 0x101e6
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0xa8(%r14), %rdi
movb $0x38, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1417c
movq %rax, %r15
btl $0x12, %ebp
jae 0x1020d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movl 0xa4(%r14), %edi
movb $0x40, (%rax)
leaq 0x1(%rax), %rsi
callq 0x1412e
movq %rax, %r15
testb $0x2, %bpl
je 0x10243
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x20(%r14), %r15
movb $0x52, (%rax)
leaq 0x1(%rax), %rsi
movl 0x20(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x8a26
movq %rax, %r15
testb $0x4, %bpl
je 0x1027b
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x28(%r14), %r15
movw $0x2a2, (%rax)          # imm = 0x2A2
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xddf2
movq %rax, %r15
testb $0x8, %bpl
je 0x102b3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x30(%r14), %r15
movw $0x2aa, (%rax)          # imm = 0x2AA
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xea2e
movq %rax, %r15
testb $0x10, %bpl
je 0x102eb
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x38(%r14), %r15
movw $0x2b2, (%rax)          # imm = 0x2B2
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xd44e
movq %rax, %r15
testb $0x20, %bpl
je 0x10323
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x40(%r14), %r15
movw $0x2ba, (%rax)          # imm = 0x2BA
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xca9a
movq %rax, %r15
testb $0x40, %bpl
je 0x1035b
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x48(%r14), %r15
movw $0x3c2, (%rax)          # imm = 0x3C2
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xefda
movq %rax, %r15
btl $0x14, %ebp
jae 0x10384
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0xb0(%r14), %rdi
movw $0x488, (%rax)          # imm = 0x488
leaq 0x2(%rax), %rsi
callq 0x1417c
movq %rax, %r15
testb %bpl, %bpl
jns 0x103bb
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x50(%r14), %r15
movw $0x492, (%rax)          # imm = 0x492
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x9062
movq %rax, %r15
btl $0x8, %ebp
jae 0x103f3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x58(%r14), %r15
movw $0x49a, (%rax)          # imm = 0x49A
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x9062
movq %rax, %r15
btl $0x9, %ebp
jae 0x1042b
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x60(%r14), %r15
movw $0x4a2, (%rax)          # imm = 0x4A2
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xacd2
movq %rax, %r15
btl $0xa, %ebp
jae 0x10463
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x68(%r14), %r15
movw $0x4aa, (%rax)          # imm = 0x4AA
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xa31e
movq %rax, %r15
btl $0xb, %ebp
jae 0x1049b
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x70(%r14), %r15
movw $0x4b2, (%rax)          # imm = 0x4B2
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x99dc
movq %rax, %r15
btl $0xc, %ebp
jae 0x104d3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x115ba
movq 0x78(%r14), %r15
movw $0x4c2, (%rax)          # imm = 0x4C2
leaq 0x2(%rax), %rsi
movl 0x14(%r15), %edi
callq 0x1412e
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0xe39e
movq %rax, %r15
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x104eb
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %r15, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x61b0