LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedBranchSummary::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* TaintedBranchSummary::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:panda.TaintedBranchSummary)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  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.TaintedBranchSummary)
  return target;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
movl 0x10(%rdi), %ebp
testb $0x1, %bpl
je 0x12174
cmpq %rsi, (%rbx)
jbe 0x12201
movq 0x18(%r14), %rcx
movb $0x8, (%rsi)
cmpq $0x7f, %rcx
ja 0x12132
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x12174
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movq %rcx, %rax
shrq $0x7, %rax
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x12152
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x12174
addq $0x3, %rsi
movq %rax, %rcx
movl %ecx, %edx
orb $-0x80, %dl
movb %dl, -0x1(%rsi)
shrq $0x7, %rax
incq %rsi
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x12156
movb %al, -0x1(%rsi)
testb $0x2, %bpl
je 0x121db
cmpq %rsi, (%rbx)
jbe 0x12211
movq 0x20(%r14), %rcx
movb $0x10, (%rsi)
cmpq $0x7f, %rcx
ja 0x12199
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x121db
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movq %rcx, %rax
shrq $0x7, %rax
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x121b9
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x121db
addq $0x3, %rsi
movq %rax, %rcx
movl %ecx, %edx
orb $-0x80, %dl
movb %dl, -0x1(%rsi)
shrq $0x7, %rax
incq %rsi
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x121bd
movb %al, -0x1(%rsi)
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x121ed
movq %rsi, %rax
popq %rbx
popq %r14
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %rbp
jmp 0x61a0
movq %rbx, %rdi
callq 0x6520
movq %rax, %rsi
jmp 0x1211c
movq %rbx, %rdi
callq 0x6520
movq %rax, %rsi
jmp 0x12183
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedBranchSummary::ByteSizeLong() const
size_t TaintedBranchSummary::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:panda.TaintedBranchSummary)
  size_t total_size = 0;

  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
    // required uint64 asid = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
        this->_internal_asid());

    // required uint64 pc = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
        this->_internal_pc());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x10(%rdi), %eax
notl %eax
testb $0x3, %al
jne 0x122a8
movq 0x18(%rbx), %rax
movq 0x20(%rbx), %rcx
orq $0x1, %rax
bsrq %rax, %rax
leal (%rax,%rax,8), %eax
addl $0x49, %eax
shrl $0x6, %eax
orq $0x1, %rcx
bsrq %rcx, %rcx
leal (%rcx,%rcx,8), %ecx
addl $0x49, %ecx
shrl $0x6, %ecx
addq %rcx, %rax
addq $0x2, %rax
jmp 0x122b0
movq %rbx, %rdi
callq 0x12222
testb $0x1, 0x8(%rbx)
jne 0x122bb
movl %eax, 0x14(%rbx)
popq %rbx
retq
leaq 0x8(%rbx), %rdi
addq $0x14, %rbx
movq %rax, %rsi
movq %rbx, %rdx
popq %rbx
jmp 0x6050
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedBranchSummary::MergeFrom(google::protobuf::Message const&)
void TaintedBranchSummary::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:panda.TaintedBranchSummary)
  GOOGLE_DCHECK_NE(&from, this);
  const TaintedBranchSummary* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TaintedBranchSummary>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:panda.TaintedBranchSummary)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:panda.TaintedBranchSummary)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x12328
leaq 0x7e9b(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x12cf, %ecx           # imm = 0x12CF
callq 0x6530
leaq 0x7e88(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
cmpq %r14, %rbx
leaq 0x11606(%rip), %rax     # 0x23938
cmpq %rax, (%rbx)
je 0x12344
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6330
jmp 0x1234f
movq %r14, %rdi
movq %rbx, %rsi
callq 0x12370
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x1235b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedBranchSummary::MergeFrom(panda::TaintedBranchSummary const&)
void TaintedBranchSummary::MergeFrom(const TaintedBranchSummary& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:panda.TaintedBranchSummary)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      asid_ = from.asid_;
    }
    if (cached_has_bits & 0x00000002u) {
      pc_ = from.pc_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq %rdi, %rsi
jne 0x123c8
leaq 0x7dfb(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x12de, %ecx           # imm = 0x12DE
callq 0x6530
leaq 0x7de8(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x123e6
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x18514
movl 0x10(%r14), %eax
testb $0x3, %al
je 0x12409
testb $0x1, %al
je 0x123fa
movq 0x18(%r14), %rcx
movq %rcx, 0x18(%rbx)
testb $0x2, %al
je 0x12406
movq 0x20(%r14), %rcx
movq %rcx, 0x20(%rbx)
orl %eax, 0x10(%rbx)
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x12415
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedBranchSummary::InternalSwap(panda::TaintedBranchSummary*)
void TaintedBranchSummary::InternalSwap(TaintedBranchSummary* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TaintedBranchSummary, pc_)
      + sizeof(TaintedBranchSummary::pc_)
      - PROTOBUF_FIELD_OFFSET(TaintedBranchSummary, asid_)>(
          reinterpret_cast<char*>(&asid_),
          reinterpret_cast<char*>(&other->asid_));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x124a1
testb $0x1, (%rdi)
je 0x124be
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x124e4
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x18576
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movups 0x18(%r14), %xmm0
movups 0x18(%rbx), %xmm1
movups %xmm1, 0x18(%r14)
movups %xmm0, 0x18(%rbx)
popq %rbx
popq %r14
popq %r15
retq
callq 0x1839e
movq %rax, %rsi
jmp 0x124b6
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstr::TaintedInstr(panda::TaintedInstr const&)
TaintedInstr::TaintedInstr(const TaintedInstr& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_),
      taint_query_(from.taint_query_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_call_stack()) {
    call_stack_ = new ::panda::CallStack(*from.call_stack_);
  } else {
    call_stack_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:panda.TaintedInstr)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rsi, %r15
movq %rdi, %r14
movq $0x0, 0x8(%rdi)
leaq 0x11435(%rip), %rax     # 0x239e8
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
leaq 0x18(%rdi), %rbx
addq $0x18, %rsi
xorps %xmm0, %xmm0
movups %xmm0, 0x14(%rdi)
movups %xmm0, 0x20(%rdi)
movq %rbx, %rdi
callq 0x186ea
movq 0x8(%r15), %rsi
testb $0x1, %sil
je 0x125f2
leaq 0x8(%r14), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x18514
movl 0x10(%r15), %ebp
testb $0x1, %bpl
je 0x12646
cmpq $0x0, 0x30(%r15)
jne 0x12646
leaq 0x6b38(%rip), %rdx      # 0x19142
leaq 0x8(%rsp), %rdi
movl $0x3, %esi
movl $0x16b3, %ecx           # imm = 0x16B3
callq 0x6530
leaq 0x7fea(%rip), %rsi      # 0x1a60f
leaq 0x8(%rsp), %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
testb $0x1, %bpl
je 0x1266a
movq 0x30(%r15), %r12
movl $0x28, %edi
callq 0x6360
movq %rax, %r15
movq %rax, %rdi
movq %r12, %rsi
callq 0x91e0
jmp 0x1266d
xorl %r15d, %r15d
movq %r15, 0x30(%r14)
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movl $0x28, %esi
movq %r15, %rdi
callq 0x6370
jmp 0x126b1
jmp 0x12692
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x65a0
jmp 0x126b1
movq %rax, %r14
movq %rbx, %rdi
callq 0x186d2
jmp 0x126b9
movq %rax, %r14
movq %rbx, %rdi
callq 0x1774c
movq %r14, %rdi
callq 0x65b0
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstr::Clear()
void TaintedInstr::Clear() {
// @@protoc_insertion_point(message_clear_start:panda.TaintedInstr)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  taint_query_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(call_stack_ != nullptr);
    call_stack_->Clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
addq $0x18, %rdi
callq 0x1846e
testb $0x1, 0x10(%rbx)
je 0x127b3
movq 0x30(%rbx), %r15
testq %r15, %r15
jne 0x12796
leaq 0x7a2d(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x1365, %ecx           # imm = 0x1365
callq 0x6530
leaq 0x7ad0(%rip), %rsi      # 0x1a247
movq %r14, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
testq %r15, %r15
movq 0x30(%rbx), %rdi
movl $0x0, 0x10(%rdi)
testb $0x1, 0x8(%rdi)
je 0x127b3
addq $0x8, %rdi
callq 0x18542
movl $0x0, 0x10(%rbx)
testb $0x1, 0x8(%rbx)
je 0x127cc
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x18542
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x127d8
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstr::MergeFrom(google::protobuf::Message const&)
void TaintedInstr::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:panda.TaintedInstr)
  GOOGLE_DCHECK_NE(&from, this);
  const TaintedInstr* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TaintedInstr>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:panda.TaintedInstr)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:panda.TaintedInstr)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x12d0e
leaq 0x74b5(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x13de, %ecx           # imm = 0x13DE
callq 0x6530
leaq 0x74a2(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
cmpq %r14, %rbx
leaq 0x10cd0(%rip), %rax     # 0x239e8
cmpq %rax, (%rbx)
je 0x12d2a
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6330
jmp 0x12d35
movq %r14, %rdi
movq %rbx, %rsi
callq 0x12d56
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x12d41
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstr::MergeFrom(panda::TaintedInstr const&)
void TaintedInstr::MergeFrom(const TaintedInstr& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:panda.TaintedInstr)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  taint_query_.MergeFrom(from.taint_query_);
  if (from._internal_has_call_stack()) {
    _internal_mutable_call_stack()->::panda::CallStack::MergeFrom(from._internal_call_stack());
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x80, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x12db4
leaq 0x740f(%rip), %rdx      # 0x1a186
leaq 0x48(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x13ed, %ecx           # imm = 0x13ED
callq 0x6530
leaq 0x73fc(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x48(%rsp), %rdi
callq 0x65a0
cmpq %r14, %rbx
leaq 0x8(%r14), %r15
movq 0x8(%rbx), %rsi
testb $0x1, %sil
je 0x12dd5
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x18514
leaq 0x18(%r14), %rdi
leaq 0x18(%rbx), %rsi
callq 0x186ea
movl 0x10(%rbx), %ebp
testb $0x1, %bpl
je 0x12e36
cmpq $0x0, 0x30(%rbx)
jne 0x12e36
leaq 0x6349(%rip), %rdx      # 0x19142
leaq 0x10(%rsp), %r12
movq %r12, %rdi
movl $0x3, %esi
movl $0x16b3, %ecx           # imm = 0x16B3
callq 0x6530
leaq 0x77f8(%rip), %rsi      # 0x1a60f
movq %r12, %rdi
callq 0x6580
leaq 0xf(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x10(%rsp), %rdi
callq 0x65a0
testb $0x1, %bpl
je 0x12e75
orb $0x1, 0x10(%r14)
cmpq $0x0, 0x30(%r14)
jne 0x12e5a
movq (%r15), %rdi
testb $0x1, %dil
jne 0x12e85
callq 0x16a54
movq %rax, 0x30(%r14)
movq 0x30(%r14), %rdi
movq 0x30(%rbx), %rax
testq %rax, %rax
leaq 0x1186c(%rip), %rsi     # 0x246d8
cmovneq %rax, %rsi
callq 0x9702
addq $0x80, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
andq $-0x2, %rdi
movq (%rdi), %rdi
jmp 0x12e51
jmp 0x12e90
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x12ea4
jmp 0x12e9c
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstr::InternalSwap(panda::TaintedInstr*)
void TaintedInstr::InternalSwap(TaintedInstr* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  taint_query_.InternalSwap(&other->taint_query_);
  swap(call_stack_, other->call_stack_);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x12f2f
testb $0x1, (%rdi)
je 0x12f4c
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x12f7d
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x18576
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
leaq 0x18(%r14), %rdi
leaq 0x18(%rbx), %rsi
callq 0x18854
movq 0x30(%r14), %rax
movq 0x30(%rbx), %rcx
movq %rcx, 0x30(%r14)
movq %rax, 0x30(%rbx)
popq %rbx
popq %r14
popq %r15
retq
callq 0x1839e
movq %rax, %rsi
jmp 0x12f44
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstrSummary::TaintedInstrSummary(panda::TaintedInstrSummary const&)
TaintedInstrSummary::TaintedInstrSummary(const TaintedInstrSummary& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&asid_, &from.asid_,
    static_cast<size_t>(reinterpret_cast<char*>(&pc_) -
    reinterpret_cast<char*>(&asid_)) + sizeof(pc_));
  // @@protoc_insertion_point(copy_constructor:panda.TaintedInstrSummary)
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq $0x0, 0x8(%rdi)
leaq 0x10ab1(%rip), %rax     # 0x23a98
movq %rax, (%rdi)
movl 0x10(%rsi), %eax
movl %eax, 0x10(%rdi)
movl $0x0, 0x14(%rdi)
movq 0x8(%rsi), %rsi
testb $0x1, %sil
je 0x13012
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x18514
movups 0x18(%r14), %xmm0
movups %xmm0, 0x18(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstrSummary::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const
::PROTOBUF_NAMESPACE_ID::uint8* TaintedInstrSummary::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:panda.TaintedInstrSummary)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  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.TaintedInstrSummary)
  return target;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
movl 0x10(%rdi), %ebp
testb $0x1, %bpl
je 0x13368
cmpq %rsi, (%rbx)
jbe 0x133f5
movq 0x18(%r14), %rcx
movb $0x8, (%rsi)
cmpq $0x7f, %rcx
ja 0x13326
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x13368
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movq %rcx, %rax
shrq $0x7, %rax
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x13346
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x13368
addq $0x3, %rsi
movq %rax, %rcx
movl %ecx, %edx
orb $-0x80, %dl
movb %dl, -0x1(%rsi)
shrq $0x7, %rax
incq %rsi
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x1334a
movb %al, -0x1(%rsi)
testb $0x2, %bpl
je 0x133cf
cmpq %rsi, (%rbx)
jbe 0x13405
movq 0x20(%r14), %rcx
movb $0x10, (%rsi)
cmpq $0x7f, %rcx
ja 0x1338d
movb %cl, 0x1(%rsi)
addq $0x2, %rsi
jmp 0x133cf
movl %ecx, %eax
orb $-0x80, %al
movb %al, 0x1(%rsi)
movq %rcx, %rax
shrq $0x7, %rax
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x133ad
movb %al, 0x2(%rsi)
addq $0x3, %rsi
jmp 0x133cf
addq $0x3, %rsi
movq %rax, %rcx
movl %ecx, %edx
orb $-0x80, %dl
movb %dl, -0x1(%rsi)
shrq $0x7, %rax
incq %rsi
cmpq $0x3fff, %rcx           # imm = 0x3FFF
ja 0x133b1
movb %al, -0x1(%rsi)
movq 0x8(%r14), %rdi
testb $0x1, %dil
jne 0x133e1
movq %rsi, %rax
popq %rbx
popq %r14
popq %rbp
retq
andq $-0x2, %rdi
addq $0x8, %rdi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %rbp
jmp 0x61a0
movq %rbx, %rdi
callq 0x6520
movq %rax, %rsi
jmp 0x13310
movq %rbx, %rdi
callq 0x6520
movq %rax, %rsi
jmp 0x13377
nop
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstrSummary::MergeFrom(google::protobuf::Message const&)
void TaintedInstrSummary::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:panda.TaintedInstrSummary)
  GOOGLE_DCHECK_NE(&from, this);
  const TaintedInstrSummary* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TaintedInstrSummary>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:panda.TaintedInstrSummary)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:panda.TaintedInstrSummary)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x1351c
leaq 0x6ca7(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x14ea, %ecx           # imm = 0x14EA
callq 0x6530
leaq 0x6c94(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
cmpq %r14, %rbx
leaq 0x10572(%rip), %rax     # 0x23a98
cmpq %rax, (%rbx)
je 0x13538
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6330
jmp 0x13543
movq %r14, %rdi
movq %rbx, %rsi
callq 0x13564
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x1354f
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstrSummary::MergeFrom(panda::TaintedInstrSummary const&)
void TaintedInstrSummary::MergeFrom(const TaintedInstrSummary& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:panda.TaintedInstrSummary)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      asid_ = from.asid_;
    }
    if (cached_has_bits & 0x00000002u) {
      pc_ = from.pc_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq %rdi, %rsi
jne 0x135bc
leaq 0x6c07(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x14f9, %ecx           # imm = 0x14F9
callq 0x6530
leaq 0x6bf4(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
cmpq %rbx, %r14
movq 0x8(%r14), %rsi
testb $0x1, %sil
je 0x135da
leaq 0x8(%rbx), %rdi
andq $-0x2, %rsi
addq $0x8, %rsi
callq 0x18514
movl 0x10(%r14), %eax
testb $0x3, %al
je 0x135fd
testb $0x1, %al
je 0x135ee
movq 0x18(%r14), %rcx
movq %rcx, 0x18(%rbx)
testb $0x2, %al
je 0x135fa
movq 0x20(%r14), %rcx
movq %rcx, 0x20(%rbx)
orl %eax, 0x10(%rbx)
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x13609
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::TaintedInstrSummary::InternalSwap(panda::TaintedInstrSummary*)
void TaintedInstrSummary::InternalSwap(TaintedInstrSummary* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TaintedInstrSummary, pc_)
      + sizeof(TaintedInstrSummary::pc_)
      - PROTOBUF_FIELD_OFFSET(TaintedInstrSummary, asid_)>(
          reinterpret_cast<char*>(&asid_),
          reinterpret_cast<char*>(&other->asid_));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x13695
testb $0x1, (%rdi)
je 0x136b2
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x136d8
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x18576
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
movups 0x18(%r14), %xmm0
movups 0x18(%rbx), %xmm1
movups %xmm1, 0x18(%r14)
movups %xmm0, 0x18(%rbx)
popq %rbx
popq %r14
popq %r15
retq
callq 0x1839e
movq %rax, %rsi
jmp 0x136aa
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::LogEntry::MergeFrom(google::protobuf::Message const&)
void LogEntry::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:panda.LogEntry)
  GOOGLE_DCHECK_NE(&from, this);
  const LogEntry* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LogEntry>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:panda.LogEntry)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:panda.LogEntry)
    MergeFrom(*source);
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq %rdi, %rsi
jne 0x15e06
leaq 0x43bd(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movl $0x3, %esi
movl $0x18c1, %ecx           # imm = 0x18C1
callq 0x6530
leaq 0x43aa(%rip), %rsi      # 0x1a191
movq %r15, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
cmpq %r14, %rbx
leaq 0xdd38(%rip), %rax      # 0x23b48
cmpq %rax, (%rbx)
je 0x15e22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6330
jmp 0x15e2d
movq %r14, %rdi
movq %rbx, %rsi
callq 0x15e4e
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x15e39
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::LogEntry::InternalSwap(panda::LogEntry*)
void LogEntry::InternalSwap(LogEntry* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  process_name_.Swap(&other->process_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LogEntry, total_instr_)
      + sizeof(LogEntry::total_instr_)
      - PROTOBUF_FIELD_OFFSET(LogEntry, call_stack_)>(
          reinterpret_cast<char*>(&call_stack_),
          reinterpret_cast<char*>(&other->call_stack_));
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %rdi
testb $0x1, 0x8(%r14)
jne 0x16923
testb $0x1, (%rdi)
je 0x16944
leaq 0x8(%r14), %r15
movq (%rdi), %rsi
testb $0x1, %sil
je 0x16a21
andq $-0x2, %rsi
addq $0x8, %rsi
movq %r15, %rdi
callq 0x18576
movl 0x10(%r14), %eax
movl 0x10(%rbx), %ecx
movl %ecx, 0x10(%r14)
movl %eax, 0x10(%rbx)
leaq 0x18(%r14), %r12
movq 0x8(%r14), %r15
testb $0x1, %r15b
jne 0x16a15
leaq 0x18(%rbx), %r13
movq (%r12), %rax
cmpq 0xd64d(%rip), %rax      # 0x23fc0
je 0x169e4
movq (%r12), %r12
movq (%r13), %rax
cmpq 0xd63c(%rip), %rax      # 0x23fc0
jne 0x16998
movq 0xd633(%rip), %rdx      # 0x23fc0
movq %r13, %rdi
movq %r15, %rsi
callq 0x180fe
movq (%r13), %rsi
movq %r12, %rdi
callq 0x6220
movups 0x20(%r14), %xmm0
movups 0x20(%rbx), %xmm1
movups %xmm1, 0x20(%r14)
movups %xmm0, 0x20(%rbx)
movups 0x30(%r14), %xmm0
movups 0x30(%rbx), %xmm1
movups %xmm1, 0x30(%r14)
movups %xmm0, 0x30(%rbx)
addq $0x40, %r14
addq $0x40, %rbx
movq %r14, %rdi
movq %rbx, %rsi
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x1894e
movq (%r13), %rcx
cmpq 0xd5d1(%rip), %rcx      # 0x23fc0
je 0x169a4
cmpq 0xd5c8(%rip), %rax      # 0x23fc0
jne 0x16975
movq 0xd5bb(%rip), %rdx      # 0x23fc0
movq %r12, %rdi
movq %r15, %rsi
callq 0x180fe
jmp 0x16975
andq $-0x2, %r15
movq (%r15), %r15
jmp 0x16964
callq 0x1839e
movq %rax, %rsi
jmp 0x1693c
// File: /workspace/github_cpp_makefile_star2_O1/moyix[P]pandalog_taint_parser/plog.pb.cc
// Function: panda::DwarfCall::SharedDtor()
void DwarfCall::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  file_callee_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  function_name_callee_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  file_caller_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
movq 0x8(%rdi), %r15
testb $0x1, %r15b
jne 0x1745a
testq %r15, %r15
je 0x17399
leaq 0x2e2a(%rip), %rdx      # 0x1a186
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movl $0x3, %esi
movl $0x3bd, %ecx            # imm = 0x3BD
callq 0x6530
leaq 0x314c(%rip), %rsi      # 0x1a4c6
movq %r14, %rdi
callq 0x6580
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
callq 0x6450
leaq 0x8(%rsp), %rdi
callq 0x65a0
testq %r15, %r15
movq 0x18(%rbx), %r14
cmpq 0xcc19(%rip), %r14      # 0x23fc0
sete %al
testq %r14, %r14
sete %cl
orb %al, %cl
jne 0x173d8
movq (%r14), %rdi
leaq 0x10(%r14), %rax
cmpq %rax, %rdi
je 0x173cb
movq (%rax), %rsi
incq %rsi
callq 0x6370
movl $0x20, %esi
movq %r14, %rdi
callq 0x6370
movq 0x20(%rbx), %r14
cmpq 0xcbdd(%rip), %r14      # 0x23fc0
sete %al
testq %r14, %r14
sete %cl
orb %al, %cl
jne 0x17414
movq (%r14), %rdi
leaq 0x10(%r14), %rax
cmpq %rax, %rdi
je 0x17407
movq (%rax), %rsi
incq %rsi
callq 0x6370
movl $0x20, %esi
movq %r14, %rdi
callq 0x6370
movq 0x28(%rbx), %rbx
cmpq 0xcba1(%rip), %rbx      # 0x23fc0
sete %al
testq %rbx, %rbx
sete %cl
orb %al, %cl
jne 0x17450
movq (%rbx), %rdi
leaq 0x10(%rbx), %rax
cmpq %rax, %rdi
je 0x17443
movq (%rax), %rsi
incq %rsi
callq 0x6370
movl $0x20, %esi
movq %rbx, %rdi
callq 0x6370
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
andq $-0x2, %r15
movq (%r15), %r15
jmp 0x17350
jmp 0x17468
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x65a0
movq %rbx, %rdi
callq 0x65b0
nop
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/main.cpp
// Function: main
int main(){
    sparty.initialize();
    while(1) {
        sparty.updateADC();
        sparty.updateSensors();
        sparty.updatePressurePID();
        sparty.updatePWM();
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
leaq 0x6bcf(%rip), %rbx      # 0x91f8
movq %rbx, %rdi
callq 0x385a
movq %rbx, %rdi
callq 0x30e4
movq %rbx, %rdi
callq 0x320c
movq %rbx, %rdi
callq 0x35de
movq %rbx, %rdi
callq 0x36d4
jmp 0x2631
nop
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/exosuit.cpp
// Function: ExoSuit::updateADC()
void ExoSuit::updateADC(void){
    adcValues.clear();
    std::vector<std::string> str = cvt.splitString(board.getADC(), ',');
    for(int i = 0; i < str.size(); i++) {
        adcValues.push_back(cvt.stringToInt(str[i]));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
movq 0x318(%rdi), %rax
cmpq %rax, 0x320(%rdi)
je 0x310f
movq %rax, 0x320(%rbx)
leaq 0x48(%rbx), %r14
leaq 0x50(%rbx), %rsi
leaq -0x60(%rbp), %r15
movq %r15, %rdi
callq 0x4e7e
leaq -0x40(%rbp), %rdi
movq %r14, %rsi
movq %r15, %rdx
movl $0x2c, %ecx
callq 0x52be
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3150
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x40(%rbp), %rsi
cmpq %rsi, -0x38(%rbp)
je 0x31bb
leaq 0x318(%rbx), %r15
xorl %r13d, %r13d
xorl %r12d, %r12d
addq %r13, %rsi
movq %r14, %rdi
callq 0x53ea
movl %eax, -0x60(%rbp)
movq 0x320(%rbx), %rsi
cmpq 0x328(%rbx), %rsi
je 0x3194
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x320(%rbx)
jmp 0x31a0
movq %r15, %rdi
leaq -0x60(%rbp), %rdx
callq 0x3de6
incq %r12
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rsi, %rax
sarq $0x5, %rax
addq $0x20, %r13
cmpq %r12, %rax
ja 0x3167
leaq -0x40(%rbp), %rdi
callq 0x307a
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x31fd
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0x31fd
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x307a
movq %rbx, %rdi
callq 0x2360
nop
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/exosuit.cpp
// Function: ExoSuit::updatePressurePID()
void ExoSuit::updatePressurePID(void){
    outputStates.clear();
    for(int i = 0; i < pressurePID.size(); i++) {
        pressurePID[i].inputValue = pressureStates[i];
        pressurePID[i].setPoint = setpointValue;
        pressurePID[i].computeValues();
        outputStates.push_back(pressurePID[i].outputValue);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x410(%rdi), %rax
cmpq %rax, 0x418(%rdi)
je 0x3606
movq %rax, 0x418(%rbx)
movq 0x470(%rbx), %rax
cmpq %rax, 0x478(%rbx)
je 0x36c5
leaq 0x410(%rbx), %r14
xorl %r15d, %r15d
movabsq $-0xf0f0f0f0f0f0f0f, %r12 # imm = 0xF0F0F0F0F0F0F0F1
xorl %r13d, %r13d
movq 0x378(%rbx), %rcx
movsd (%rcx,%r13,8), %xmm0
leaq (%rax,%r15), %rdi
movsd %xmm0, 0x28(%rax,%r15)
movsd 0x408(%rbx), %xmm0
movsd %xmm0, 0x40(%rax,%r15)
callq 0x58fc
movq 0x418(%rbx), %rsi
movq 0x470(%rbx), %rax
leaq (%rax,%r15), %rdx
addq $0x30, %rdx
cmpq 0x420(%rbx), %rsi
je 0x3691
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x418(%rbx)
jmp 0x3699
movq %r14, %rdi
callq 0x404c
incq %r13
movq 0x470(%rbx), %rax
movq 0x478(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
imulq %r12, %rcx
addq $0x88, %r15
cmpq %r13, %rcx
ja 0x3631
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/exosuit.cpp
// Function: ExoSuit::updatePWM()
void ExoSuit::updatePWM(void){
    dutyCycleStates.clear();
    dutyCycles.clear();
    for(int i = 0; i < outputStates.size(); i++) {
        dutyCycleStates.push_back((int)std::round(outputStates[i]));
        dutyCycles.push_back(cvt.intToString(dutyCycleStates[i]));
    }
    board.setPWM(dutyCycles);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
movq 0x440(%rdi), %rax
cmpq %rax, 0x448(%rdi)
je 0x36ff
movq %rax, 0x448(%rbx)
leaq 0x458(%rbx), %rdi
movq 0x458(%rbx), %rsi
movq %rdi, -0x30(%rbp)
callq 0x412c
movq 0x410(%rbx), %rax
cmpq %rax, 0x418(%rbx)
je 0x37d0
leaq 0x440(%rbx), %r15
leaq 0x48(%rbx), %r12
xorl %r14d, %r14d
leaq -0x50(%rbp), %r13
movsd (%rax,%r14,8), %xmm0
callq 0x20c0
cvttsd2si %xmm0, %eax
movl %eax, -0x50(%rbp)
movq 0x448(%rbx), %rsi
cmpq 0x450(%rbx), %rsi
je 0x376d
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x448(%rbx)
jmp 0x3778
movq %r15, %rdi
movq %r13, %rdx
callq 0x417e
movq (%r15), %rax
movl (%rax,%r14,4), %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x5566
movq -0x30(%rbp), %rdi
movq %r13, %rsi
callq 0x42be
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x37af
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x21e0
incq %r14
movq 0x410(%rbx), %rax
movq 0x418(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r14, %rcx
ja 0x373c
addq $0x50, %rbx
leaq -0x68(%rbp), %r15
movq %r15, %rdi
movq -0x30(%rbp), %rsi
callq 0x3bd6
leaq -0x88(%rbp), %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x5112
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x380f
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x68(%rbp), %rdi
callq 0x307a
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0x307a
jmp 0x3851
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3851
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
nop
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/arduinomicro.cpp
// Function: ArduinoMicro::createPacket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>)
std::string ArduinoMicro::createPacket(std::string command, std::vector<std::string> parameters = {}){
    std::string message = "";
    message.reserve(message.capacity() * 10); // Increase message capacity for appending parameters
    message.append(command);
    if(!parameters.empty()) {
        for(int i = 0; i < parameters.size(); i++) {
            message.append(PacketDelimiterString);
            message.append(parameters[i]);
        }
    }
    message.append(PacketTerminatorString);
    return message;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r15
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10(%rdi), %r13
movq %r13, (%rdi)
leaq 0x1564(%rip), %rdx      # 0x62fc
movq %rdx, %rsi
callq 0x2f36
movq 0x10(%rbx), %rax
addq %rax, %rax
movq %r13, -0x30(%rbp)
cmpq %r13, (%rbx)
leaq (%rax,%rax,4), %rax
movl $0x96, %esi
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x2300
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %rbx, %rdi
callq 0x2070
movq (%r15), %rax
cmpq 0x8(%r15), %rax
je 0x4e30
movq 0x8(%r15), %rax
cmpq (%r15), %rax
je 0x4e30
movl $0x8, %r12d
xorl %r13d, %r13d
movq 0x1a0(%r14), %rsi
movq 0x1a8(%r14), %rdx
movq %rbx, %rdi
callq 0x2070
movq (%r15), %rax
movq -0x8(%rax,%r12), %rsi
movq (%rax,%r12), %rdx
movq %rbx, %rdi
callq 0x2070
movq 0x8(%r15), %rax
subq (%r15), %rax
incq %r13
sarq $0x5, %rax
addq $0x20, %r12
cmpq %r13, %rax
ja 0x4def
movq 0x1c0(%r14), %rsi
movq 0x1c8(%r14), %rdx
movq %rbx, %rdi
callq 0x2070
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4e5a
movq %rax, %r14
movq (%rbx), %rdi
cmpq -0x30(%rbp), %rdi
je 0x4e75
movq -0x30(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x21e0
movq %r14, %rdi
callq 0x2360
nop
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/arduinomicro.cpp
// Function: ArduinoMicro::getADC[abi:cxx11]()
std::string ArduinoMicro::getADC(void){
    packet = this->createPacket(GetADCValuesString).c_str();
    arduinoPort.writePort(packet);
    usleep(waitTime * 1000); // Delay before reading buffer
    data = arduinoPort.readPort();
    return std::string(data);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x1e0(%rsi), %rsi
movq 0x1e8(%r14), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r15
movq %r15, %rdi
callq 0x45c2
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4d70
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
movq %rdi, 0x168(%r14)
cmpq %rax, %rdi
je 0x4efc
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x60(%rbp), %rdi
callq 0x307a
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x4f1a
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x168(%r14), %rsi
movq %r14, %rdi
callq 0x5dd0
imull $0x3e8, 0x160(%r14), %edi # imm = 0x3E8
callq 0x2280
movq %r14, %rdi
callq 0x5e40
movq %rax, %r15
leaq 0x170(%r14), %r12
movq 0x178(%r14), %r13
movq %rax, %rdi
callq 0x20d0
movq %r12, %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %r15, %rcx
movq %rax, %r8
callq 0x22f0
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq 0x170(%r14), %rsi
movq 0x178(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x45c2
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x307a
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x4fc0
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/arduinomicro.cpp
// Function: ArduinoMicro::getGPIO[abi:cxx11]()
std::string ArduinoMicro::getGPIO(void){
    packet = this->createPacket(GetGPIOValuesString).c_str();
    arduinoPort.writePort(packet);
    usleep(waitTime * 1000); // Delay before reading buffer
    data = arduinoPort.readPort();
    return std::string(data);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x200(%rsi), %rsi
movq 0x208(%r14), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r15
movq %r15, %rdi
callq 0x45c2
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4d70
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
movq %rdi, 0x168(%r14)
cmpq %rax, %rdi
je 0x5046
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x60(%rbp), %rdi
callq 0x307a
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x5064
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x168(%r14), %rsi
movq %r14, %rdi
callq 0x5dd0
imull $0x3e8, 0x160(%r14), %edi # imm = 0x3E8
callq 0x2280
movq %r14, %rdi
callq 0x5e40
movq %rax, %r15
leaq 0x170(%r14), %r12
movq 0x178(%r14), %r13
movq %rax, %rdi
callq 0x20d0
movq %r12, %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %r15, %rcx
movq %rax, %r8
callq 0x22f0
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq 0x170(%r14), %rsi
movq 0x178(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x45c2
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x307a
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x510a
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/arduinomicro.cpp
// Function: ArduinoMicro::setPWM(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>)
std::string ArduinoMicro::setPWM(std::vector<std::string> dutyCycles){
    packet = this->createPacket(SetPWMDutyCycleString, dutyCycles).c_str();
    arduinoPort.writePort(packet);
    usleep(waitTime * 1000); // Delay before reading buffer
    data = arduinoPort.readPort();
    return std::string(data);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x280(%rsi), %rsi
movq 0x288(%r14), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0x45c2
leaq -0x60(%rbp), %rdi
movq %r15, %rsi
callq 0x3bd6
leaq -0x80(%rbp), %rdi
leaq -0x48(%rbp), %rdx
leaq -0x60(%rbp), %rcx
movq %r14, %rsi
callq 0x4d70
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
movq %rdi, 0x168(%r14)
cmpq %rax, %rdi
je 0x518f
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x60(%rbp), %rdi
callq 0x307a
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x51ad
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x168(%r14), %rsi
movq %r14, %rdi
callq 0x5dd0
imull $0x3e8, 0x160(%r14), %edi # imm = 0x3E8
callq 0x2280
movq %r14, %rdi
callq 0x5e40
movq %rax, %r15
leaq 0x170(%r14), %r12
movq 0x178(%r14), %r13
movq %rax, %rdi
callq 0x20d0
movq %r12, %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %r15, %rcx
movq %rax, %r8
callq 0x22f0
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq 0x170(%r14), %rsi
movq 0x178(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x45c2
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x307a
jmp 0x5243
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x5258
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/arduinomicro.cpp
// Function: ArduinoMicro::setupSerial(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
void ArduinoMicro::setupSerial(std::string portName, int baudRate){
    arduinoPort.portName = portName.c_str();
    arduinoPort.baudRate = baudRate;
    arduinoPort.openPort();
    arduinoPort.setPort();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rsi), %rax
movq %rax, 0x118(%rdi)
movl %edx, 0x10(%rdi)
callq 0x5bd8
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x5c2a
nopl (%rax)
// File: /workspace/github_cpp_makefile_star2_O1/msu-starx[P]starx/converter.cpp
// Function: Converter::splitString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char)
std::vector<std::string> Converter::splitString(const std::string &str, char delimiter){
    std::vector<std::string> tokens = {};
    std::string token = "";
    std::stringstream stream(str);
    while(std::getline(stream, token, delimiter)) {
        tokens.push_back(token);
    }
    return tokens;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movl %ecx, %r14d
movq %rdx, %r15
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x1004(%rip), %rdx      # 0x62fc
leaq -0x48(%rbp), %rdi
movq %rdx, %rsi
callq 0x2f36
leaq -0x1d0(%rbp), %rdi
movq %r15, %rsi
movl $0x18, %edx
callq 0x2310
movsbl %r14b, %r14d
leaq -0x1d0(%rbp), %r15
leaq -0x48(%rbp), %r12
movq %r15, %rdi
movq %r12, %rsi
movl %r14d, %edx
callq 0x2380
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5350
movq %rbx, %rdi
movq %r12, %rsi
callq 0x5610
jmp 0x5327
movq 0x3c61(%rip), %rsi      # 0x8fb8
leaq -0x1d0(%rbp), %rdi
callq 0x2150
leaq -0x150(%rbp), %rdi
callq 0x2080
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x5384
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
jmp 0x53c5
movq %rax, %r14
jmp 0x53da
movq %rax, %r14
movq 0x3c0b(%rip), %rsi      # 0x8fb8
leaq -0x1d0(%rbp), %rdi
callq 0x2150
leaq -0x150(%rbp), %rdi
callq 0x2080
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x53da
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x307a
movq %r14, %rdi
callq 0x2360