// File: /workspace/github_c_makefile_star2_O0/AlxHnr[P]nano-backup/src/informations.c
// Function: addNode
static void addNode(const PathNode *node, ChangeSummary *changes,
                    const bool timestamp_changed_by_subnodes)
{
  const BackupHint hint = backupHintNoPol(node->hint);
  const PathState *state = getExistingState(node);
  uint64_t size = 0;

  if(state->type == PST_regular_file)
  {
    size = state->metadata.file_info.size;
  }

  if(hint == BH_added)
  {
    changeDetailAdd(&changes->new_items, 1, size);
    changes->affects_parent_timestamp = true;
  }
  else if(hint == BH_removed)
  {
    changeDetailAdd(&changes->removed_items, 1, size);
    changes->affects_parent_timestamp = true;
  }
  else if(hint == BH_not_part_of_repository)
  {
    changeDetailAdd(&changes->lost_items, 1, size);

    if(node->policy == BPOL_mirror && !(node->hint & BH_policy_changed))
    {
      changes->affects_parent_timestamp = true;
    }
  }
  else if(hint & BH_content_changed)
  {
    changeDetailAdd(&changes->changed_items, 1, size);
    changes->affects_parent_timestamp = true;
    incrementExtraChangedAttributes(changes, hint);
  }
  else if(node->hint > BH_unchanged &&
          (node->policy != BPOL_none ||
           (node->hint < BH_owner_changed ||
            node->hint > BH_timestamp_changed)))
  {
    changes->other_changes_exist = true;
    changes->affects_parent_timestamp |=
      (hint >= BH_regular_to_symlink && hint <= BH_other_to_directory);

    incrementExtraChangedAttributes(changes, node->hint);
    if(node->hint == BH_timestamp_changed &&
       !timestamp_changed_by_subnodes)
    {
      changes->changed_attributes =
        sSizeAdd(changes->changed_attributes, 1);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5970
movq %rax, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x20(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x60a0
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x28(%rbp)
cmpl $0x2, -0x18(%rbp)
jne 0x60c5
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movl $0x1, %esi
callq 0x6570
movq -0x10(%rbp), %rax
movb $0x1, 0x49(%rax)
jmp 0x6221
cmpl $0x3, -0x18(%rbp)
jne 0x60ee
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
movq -0x28(%rbp), %rdx
movl $0x1, %esi
callq 0x6570
movq -0x10(%rbp), %rax
movb $0x1, 0x49(%rax)
jmp 0x621f
cmpl $0x4, -0x18(%rbp)
jne 0x6132
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x28(%rbp), %rdx
movl $0x1, %esi
callq 0x6570
movq -0x8(%rbp), %rax
cmpl $0x2, 0x1c(%rax)
jne 0x612d
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
jne 0x612d
movq -0x10(%rbp), %rax
movb $0x1, 0x49(%rax)
jmp 0x621d
movl -0x18(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x616e
movq -0x10(%rbp), %rdi
addq $0x30, %rdi
movq -0x28(%rbp), %rdx
movl $0x1, %esi
callq 0x6570
movq -0x10(%rbp), %rax
movb $0x1, 0x49(%rax)
movq -0x10(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x65c0
jmp 0x621b
movq -0x8(%rbp), %rax
cmpl $0x1, 0x18(%rax)
jbe 0x6219
movq -0x8(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jne 0x619a
movq -0x8(%rbp), %rax
cmpl $0x10, 0x18(%rax)
jb 0x619a
movq -0x8(%rbp), %rax
cmpl $0x40, 0x18(%rax)
jbe 0x6219
movq -0x10(%rbp), %rax
movb $0x1, 0x48(%rax)
xorl %eax, %eax
cmpl $0x5, -0x18(%rbp)
movb %al, -0x29(%rbp)
jb 0x61b7
cmpl $0xd, -0x18(%rbp)
setbe %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
movq -0x10(%rbp), %rax
movb 0x49(%rax), %cl
andb $0x1, %cl
movzbl %cl, %ecx
orl %edx, %ecx
cmpl $0x0, %ecx
setne %cl
andb $0x1, %cl
movb %cl, 0x49(%rax)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x18(%rax), %esi
callq 0x65c0
movq -0x8(%rbp), %rax
cmpl $0x40, 0x18(%rax)
jne 0x6217
testb $0x1, -0x11(%rbp)
jne 0x6217
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
movl $0x1, %esi
callq 0xb8f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
jmp 0x6219
jmp 0x621b
jmp 0x621d
jmp 0x621f
jmp 0x6221
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)