
int file_has_acl(char *name,stat_conflict *sb)

{
  _Bool _Var1;
  int iVar2;
  ssize_t sVar3;
  int *piVar4;
  
  if ((sb->st_mode & 0xf000) == 0xa000) {
    return 0;
  }
  sVar3 = getxattr(name,"system.posix_acl_access",(void *)0x0,0);
  if (sVar3 < 0) {
    piVar4 = __errno_location();
    if (*piVar4 == 0x3d) goto LAB_0010d37b;
LAB_0010d368:
    piVar4 = __errno_location();
    _Var1 = acl_errno_valid(*piVar4);
    iVar2 = -(uint)_Var1;
  }
  else {
    if (0 < sVar3) {
      return 1;
    }
LAB_0010d37b:
    sVar3 = 0;
    if ((sb->st_mode & 0xf000) == 0x4000) {
      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);
      if (sVar3 < 0) {
        piVar4 = __errno_location();
        if (*piVar4 != 0x3d) goto LAB_0010d368;
        sVar3 = 0;
      }
      else if (0 < sVar3) {
        return 1;
      }
    }
    iVar2 = (int)sVar3;
  }
  return iVar2;
}



ulong FUN_0010d312(char *param_1,long param_2)

{
  byte bVar1;
  ssize_t sVar2;
  int *piVar3;
  ulong uVar4;
  
  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {
    return 0;
  }
  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);
  if (sVar2 < 0) {
    piVar3 = __errno_location();
    if (*piVar3 == 0x3d) goto LAB_0010d37b;
LAB_0010d368:
    piVar3 = __errno_location();
    bVar1 = FUN_001154ba(*piVar3);
    uVar4 = (ulong)-(uint)bVar1;
  }
  else {
    if (0 < sVar2) {
      return 1;
    }
LAB_0010d37b:
    uVar4 = 0;
    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {
      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);
      if ((long)uVar4 < 0) {
        piVar3 = __errno_location();
        if (*piVar3 != 0x3d) goto LAB_0010d368;
        uVar4 = 0;
      }
      else if (0 < (long)uVar4) {
        return 1;
      }
    }
    uVar4 = uVar4 & 0xffffffff;
  }
  return uVar4;
}


MOV EDX,dword ptr [RSI + 0x18]
AND EDX,0xf000
MOV EAX,0x0
CMP EDX,0xa000
JNZ 0x0010d329
RET
PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV RBX,RSI
MOV RBP,RDI
MOV ECX,0x0
MOV EDX,0x0
LEA RSI,[0x11a0ab]
CALL 0x001045e0
TEST RAX,RAX
JS 0x0010d35e
MOV EAX,0x1
JLE 0x0010d37b
ADD RSP,0x8
POP RBX
POP RBP
RET
CALL 0x00104090
CMP dword ptr [RAX],0x3d
JZ 0x0010d37b
CALL 0x00104090
MOV EDI,dword ptr [RAX]
CALL 0x001154ba
MOVZX EAX,AL
NEG EAX
JMP 0x0010d357
MOV EDX,dword ptr [RBX + 0x18]
AND EDX,0xf000
MOV ECX,0x0
CMP EDX,0x4000
JZ 0x0010d395
MOV EAX,ECX
JMP 0x0010d357
MOV EDX,0x0
LEA RSI,[0x11a0c3]
MOV RDI,RBP
CALL 0x001045e0
MOV RCX,RAX
TEST RAX,RAX
JS 0x0010d3ba
MOV EAX,0x1
JG 0x0010d357
JMP 0x0010d391
CALL 0x00104090
CMP dword ptr [RAX],0x3d
JNZ 0x0010d368
MOV ECX,0x0
JMP 0x0010d391
(translation_unit "ulong FUN_0010d312(char *param_1,long param_2)\n\n{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}\n\n" (function_definition "ulong FUN_0010d312(char *param_1,long param_2)\n\n{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_0010d312(char *param_1,long param_2)" identifier (parameter_list "(char *param_1,long param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ssize_t sVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (if_statement "if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }" if (parenthesized_expression "((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000)" ( (binary_expression "(*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000" (parenthesized_expression "(*(uint *)(param_2 + 0x18) & 0xf000)" ( (binary_expression "*(uint *)(param_2 + 0x18) & 0xf000" (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);" (assignment_expression "sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0)" identifier = (call_expression "getxattr(param_1,"system.posix_acl_access",(void *)0x0,0)" identifier (argument_list "(param_1,"system.posix_acl_access",(void *)0x0,0)" ( identifier , (string_literal ""system.posix_acl_access"" " string_content ") , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" if (parenthesized_expression "(sVar2 < 0)" ( (binary_expression "sVar2 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar3 == 0x3d) goto LAB_0010d37b;" if (parenthesized_expression "(*piVar3 == 0x3d)" ( (binary_expression "*piVar3 == 0x3d" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0010d37b;" goto statement_identifier ;)) (labeled_statement "LAB_0010d368:\n    piVar3 = __errno_location();" statement_identifier : (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "bVar1 = FUN_001154ba(*piVar3);" (assignment_expression "bVar1 = FUN_001154ba(*piVar3)" identifier = (call_expression "FUN_001154ba(*piVar3)" identifier (argument_list "(*piVar3)" ( (pointer_expression "*piVar3" * identifier) )))) ;) (expression_statement "uVar4 = (ulong)-(uint)bVar1;" (assignment_expression "uVar4 = (ulong)-(uint)bVar1" identifier = (binary_expression "(ulong)-(uint)bVar1" (parenthesized_expression "(ulong)" ( identifier )) - (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" else (compound_statement "{\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" { (if_statement "if (0 < sVar2) {\n      return 1;\n    }" if (parenthesized_expression "(0 < sVar2)" ( (binary_expression "0 < sVar2" number_literal < identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010d37b:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (if_statement "if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }" if (parenthesized_expression "((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000)" ( (binary_expression "(*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000" (parenthesized_expression "(*(uint *)(param_2 + 0x18) & 0xf000)" ( (binary_expression "*(uint *)(param_2 + 0x18) & 0xf000" (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }" { (expression_statement "uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);" (assignment_expression "uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0)" identifier = (call_expression "getxattr(param_1,"system.posix_acl_default",(void *)0x0,0)" identifier (argument_list "(param_1,"system.posix_acl_default",(void *)0x0,0)" ( identifier , (string_literal ""system.posix_acl_default"" " string_content ") , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }" if (parenthesized_expression "((long)uVar4 < 0)" ( (binary_expression "(long)uVar4 < 0" (cast_expression "(long)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar3 != 0x3d) goto LAB_0010d368;" if (parenthesized_expression "(*piVar3 != 0x3d)" ( (binary_expression "*piVar3 != 0x3d" (pointer_expression "*piVar3" * identifier) != number_literal) )) (goto_statement "goto LAB_0010d368;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else if (0 < (long)uVar4) {\n        return 1;\n      }" else (if_statement "if (0 < (long)uVar4) {\n        return 1;\n      }" if (parenthesized_expression "(0 < (long)uVar4)" ( (binary_expression "0 < (long)uVar4" number_literal < (cast_expression "(long)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })))) })) (expression_statement "uVar4 = uVar4 & 0xffffffff;" (assignment_expression "uVar4 = uVar4 & 0xffffffff" identifier = (binary_expression "uVar4 & 0xffffffff" identifier & number_literal)) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "int file_has_acl(char *name,stat_conflict *sb)\n\n{\n  _Bool _Var1;\n  int iVar2;\n  ssize_t sVar3;\n  int *piVar4;\n  \n  if ((sb->st_mode & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar3 = getxattr(name,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar3 < 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar4 = __errno_location();\n    _Var1 = acl_errno_valid(*piVar4);\n    iVar2 = -(uint)_Var1;\n  }\n  else {\n    if (0 < sVar3) {\n      return 1;\n    }\nLAB_0010d37b:\n    sVar3 = 0;\n    if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }\n    iVar2 = (int)sVar3;\n  }\n  return iVar2;\n}\n\n" (function_definition "int file_has_acl(char *name,stat_conflict *sb)\n\n{\n  _Bool _Var1;\n  int iVar2;\n  ssize_t sVar3;\n  int *piVar4;\n  \n  if ((sb->st_mode & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar3 = getxattr(name,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar3 < 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar4 = __errno_location();\n    _Var1 = acl_errno_valid(*piVar4);\n    iVar2 = -(uint)_Var1;\n  }\n  else {\n    if (0 < sVar3) {\n      return 1;\n    }\nLAB_0010d37b:\n    sVar3 = 0;\n    if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }\n    iVar2 = (int)sVar3;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "file_has_acl(char *name,stat_conflict *sb)" identifier (parameter_list "(char *name,stat_conflict *sb)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "stat_conflict *sb" type_identifier (pointer_declarator "*sb" * identifier)) ))) (compound_statement "{\n  _Bool _Var1;\n  int iVar2;\n  ssize_t sVar3;\n  int *piVar4;\n  \n  if ((sb->st_mode & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar3 = getxattr(name,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar3 < 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar4 = __errno_location();\n    _Var1 = acl_errno_valid(*piVar4);\n    iVar2 = -(uint)_Var1;\n  }\n  else {\n    if (0 < sVar3) {\n      return 1;\n    }\nLAB_0010d37b:\n    sVar3 = 0;\n    if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }\n    iVar2 = (int)sVar3;\n  }\n  return iVar2;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "ssize_t sVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (if_statement "if ((sb->st_mode & 0xf000) == 0xa000) {\n    return 0;\n  }" if (parenthesized_expression "((sb->st_mode & 0xf000) == 0xa000)" ( (binary_expression "(sb->st_mode & 0xf000) == 0xa000" (parenthesized_expression "(sb->st_mode & 0xf000)" ( (binary_expression "sb->st_mode & 0xf000" (field_expression "sb->st_mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar3 = getxattr(name,"system.posix_acl_access",(void *)0x0,0);" (assignment_expression "sVar3 = getxattr(name,"system.posix_acl_access",(void *)0x0,0)" identifier = (call_expression "getxattr(name,"system.posix_acl_access",(void *)0x0,0)" identifier (argument_list "(name,"system.posix_acl_access",(void *)0x0,0)" ( identifier , (string_literal ""system.posix_acl_access"" " string_content ") , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if (sVar3 < 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar4 = __errno_location();\n    _Var1 = acl_errno_valid(*piVar4);\n    iVar2 = -(uint)_Var1;\n  }\n  else {\n    if (0 < sVar3) {\n      return 1;\n    }\nLAB_0010d37b:\n    sVar3 = 0;\n    if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }\n    iVar2 = (int)sVar3;\n  }" if (parenthesized_expression "(sVar3 < 0)" ( (binary_expression "sVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar4 = __errno_location();\n    if (*piVar4 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar4 = __errno_location();\n    _Var1 = acl_errno_valid(*piVar4);\n    iVar2 = -(uint)_Var1;\n  }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 == 0x3d) goto LAB_0010d37b;" if (parenthesized_expression "(*piVar4 == 0x3d)" ( (binary_expression "*piVar4 == 0x3d" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0010d37b;" goto statement_identifier ;)) (labeled_statement "LAB_0010d368:\n    piVar4 = __errno_location();" statement_identifier : (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "_Var1 = acl_errno_valid(*piVar4);" (assignment_expression "_Var1 = acl_errno_valid(*piVar4)" identifier = (call_expression "acl_errno_valid(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "iVar2 = -(uint)_Var1;" (assignment_expression "iVar2 = -(uint)_Var1" identifier = (unary_expression "-(uint)_Var1" - (cast_expression "(uint)_Var1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    if (0 < sVar3) {\n      return 1;\n    }\nLAB_0010d37b:\n    sVar3 = 0;\n    if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }\n    iVar2 = (int)sVar3;\n  }" else (compound_statement "{\n    if (0 < sVar3) {\n      return 1;\n    }\nLAB_0010d37b:\n    sVar3 = 0;\n    if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }\n    iVar2 = (int)sVar3;\n  }" { (if_statement "if (0 < sVar3) {\n      return 1;\n    }" if (parenthesized_expression "(0 < sVar3)" ( (binary_expression "0 < sVar3" number_literal < identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010d37b:\n    sVar3 = 0;" statement_identifier : (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;)) (if_statement "if ((sb->st_mode & 0xf000) == 0x4000) {\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }" if (parenthesized_expression "((sb->st_mode & 0xf000) == 0x4000)" ( (binary_expression "(sb->st_mode & 0xf000) == 0x4000" (parenthesized_expression "(sb->st_mode & 0xf000)" ( (binary_expression "sb->st_mode & 0xf000" (field_expression "sb->st_mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);\n      if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }\n    }" { (expression_statement "sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0);" (assignment_expression "sVar3 = getxattr(name,"system.posix_acl_default",(void *)0x0,0)" identifier = (call_expression "getxattr(name,"system.posix_acl_default",(void *)0x0,0)" identifier (argument_list "(name,"system.posix_acl_default",(void *)0x0,0)" ( identifier , (string_literal ""system.posix_acl_default"" " string_content ") , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if (sVar3 < 0) {\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }\n      else if (0 < sVar3) {\n        return 1;\n      }" if (parenthesized_expression "(sVar3 < 0)" ( (binary_expression "sVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        piVar4 = __errno_location();\n        if (*piVar4 != 0x3d) goto LAB_0010d368;\n        sVar3 = 0;\n      }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 != 0x3d) goto LAB_0010d368;" if (parenthesized_expression "(*piVar4 != 0x3d)" ( (binary_expression "*piVar4 != 0x3d" (pointer_expression "*piVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_0010d368;" goto statement_identifier ;)) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else if (0 < sVar3) {\n        return 1;\n      }" else (if_statement "if (0 < sVar3) {\n        return 1;\n      }" if (parenthesized_expression "(0 < sVar3)" ( (binary_expression "0 < sVar3" number_literal < identifier) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })))) })) (expression_statement "iVar2 = (int)sVar3;" (assignment_expression "iVar2 = (int)sVar3" identifier = (cast_expression "(int)sVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "ulong FUN_0010d312(char *param_1,long param_2)\n\n{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}\n\n" (function_definition "ulong FUN_0010d312(char *param_1,long param_2)\n\n{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_0010d312(char *param_1,long param_2)" identifier (parameter_list "(char *param_1,long param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ssize_t sVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (if_statement "if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }" if (parenthesized_expression "((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000)" ( (binary_expression "(*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000" (parenthesized_expression "(*(uint *)(param_2 + 0x18) & 0xf000)" ( (binary_expression "*(uint *)(param_2 + 0x18) & 0xf000" (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);" (assignment_expression "sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0)" identifier = (call_expression "getxattr(param_1,"system.posix_acl_access",(void *)0x0,0)" identifier (argument_list "(param_1,"system.posix_acl_access",(void *)0x0,0)" ( identifier , (string_literal ""system.posix_acl_access"" " string_content ") , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" if (parenthesized_expression "(sVar2 < 0)" ( (binary_expression "sVar2 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar3 == 0x3d) goto LAB_0010d37b;" if (parenthesized_expression "(*piVar3 == 0x3d)" ( (binary_expression "*piVar3 == 0x3d" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0010d37b;" goto statement_identifier ;)) (labeled_statement "LAB_0010d368:\n    piVar3 = __errno_location();" statement_identifier : (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "bVar1 = FUN_001154ba(*piVar3);" (assignment_expression "bVar1 = FUN_001154ba(*piVar3)" identifier = (call_expression "FUN_001154ba(*piVar3)" identifier (argument_list "(*piVar3)" ( (pointer_expression "*piVar3" * identifier) )))) ;) (expression_statement "uVar4 = (ulong)-(uint)bVar1;" (assignment_expression "uVar4 = (ulong)-(uint)bVar1" identifier = (binary_expression "(ulong)-(uint)bVar1" (parenthesized_expression "(ulong)" ( identifier )) - (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" else (compound_statement "{\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" { (if_statement "if (0 < sVar2) {\n      return 1;\n    }" if (parenthesized_expression "(0 < sVar2)" ( (binary_expression "0 < sVar2" number_literal < identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010d37b:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (if_statement "if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }" if (parenthesized_expression "((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000)" ( (binary_expression "(*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000" (parenthesized_expression "(*(uint *)(param_2 + 0x18) & 0xf000)" ( (binary_expression "*(uint *)(param_2 + 0x18) & 0xf000" (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }" { (expression_statement "uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);" (assignment_expression "uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0)" identifier = (call_expression "getxattr(param_1,"system.posix_acl_default",(void *)0x0,0)" identifier (argument_list "(param_1,"system.posix_acl_default",(void *)0x0,0)" ( identifier , (string_literal ""system.posix_acl_default"" " string_content ") , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }" if (parenthesized_expression "((long)uVar4 < 0)" ( (binary_expression "(long)uVar4 < 0" (cast_expression "(long)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar3 != 0x3d) goto LAB_0010d368;" if (parenthesized_expression "(*piVar3 != 0x3d)" ( (binary_expression "*piVar3 != 0x3d" (pointer_expression "*piVar3" * identifier) != number_literal) )) (goto_statement "goto LAB_0010d368;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else if (0 < (long)uVar4) {\n        return 1;\n      }" else (if_statement "if (0 < (long)uVar4) {\n        return 1;\n      }" if (parenthesized_expression "(0 < (long)uVar4)" ( (binary_expression "0 < (long)uVar4" number_literal < (cast_expression "(long)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })))) })) (expression_statement "uVar4 = uVar4 & 0xffffffff;" (assignment_expression "uVar4 = uVar4 & 0xffffffff" identifier = (binary_expression "uVar4 & 0xffffffff" identifier & number_literal)) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (return_statement return LIT ;) })))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (return_statement return IDENT ;) })))
(function_definition "ulong FUN_0010d312(char *param_1,long param_2)\n\n{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}" (type_identifier "ulong") (function_declarator "FUN_0010d312(char *param_1,long param_2)" (identifier "FUN_0010d312") (parameter_list "(char *param_1,long param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  ulong uVar4;\n  \n  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }\n  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);\n  if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }\n  return uVar4;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "ssize_t sVar2;" (primitive_type "ssize_t") (identifier "sVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (if_statement "if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {\n    return 0;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000)" (( "(") (binary_expression "(*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000" (parenthesized_expression "(*(uint *)(param_2 + 0x18) & 0xf000)" (( "(") (binary_expression "*(uint *)(param_2 + 0x18) & 0xf000" (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0xa000")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);" (assignment_expression "sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0)" (identifier "sVar2") (= "=") (call_expression "getxattr(param_1,"system.posix_acl_access",(void *)0x0,0)" (identifier "getxattr") (argument_list "(param_1,"system.posix_acl_access",(void *)0x0,0)" (( "(") (identifier "param_1") (, ",") (string_literal ""system.posix_acl_access"" (" """) (string_content "system.posix_acl_access") (" """)) (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (sVar2 < 0) {\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }\n  else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" (if "if") (parenthesized_expression "(sVar2 < 0)" (( "(") (binary_expression "sVar2 < 0" (identifier "sVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    piVar3 = __errno_location();\n    if (*piVar3 == 0x3d) goto LAB_0010d37b;\nLAB_0010d368:\n    piVar3 = __errno_location();\n    bVar1 = FUN_001154ba(*piVar3);\n    uVar4 = (ulong)-(uint)bVar1;\n  }" ({ "{") (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar3 == 0x3d) goto LAB_0010d37b;" (if "if") (parenthesized_expression "(*piVar3 == 0x3d)" (( "(") (binary_expression "*piVar3 == 0x3d" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0x3d")) () ")")) (goto_statement "goto LAB_0010d37b;" (goto "goto") (statement_identifier "LAB_0010d37b") (; ";"))) (labeled_statement "LAB_0010d368:\n    piVar3 = __errno_location();" (statement_identifier "LAB_0010d368") (: ":") (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "bVar1 = FUN_001154ba(*piVar3);" (assignment_expression "bVar1 = FUN_001154ba(*piVar3)" (identifier "bVar1") (= "=") (call_expression "FUN_001154ba(*piVar3)" (identifier "FUN_001154ba") (argument_list "(*piVar3)" (( "(") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) () ")")))) (; ";")) (expression_statement "uVar4 = (ulong)-(uint)bVar1;" (assignment_expression "uVar4 = (ulong)-(uint)bVar1" (identifier "uVar4") (= "=") (binary_expression "(ulong)-(uint)bVar1" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (- "-") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (} "}")) (else_clause "else {\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" (else "else") (compound_statement "{\n    if (0 < sVar2) {\n      return 1;\n    }\nLAB_0010d37b:\n    uVar4 = 0;\n    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }\n    uVar4 = uVar4 & 0xffffffff;\n  }" ({ "{") (if_statement "if (0 < sVar2) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(0 < sVar2)" (( "(") (binary_expression "0 < sVar2" (number_literal "0") (< "<") (identifier "sVar2")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_0010d37b:\n    uVar4 = 0;" (statement_identifier "LAB_0010d37b") (: ":") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }" (if "if") (parenthesized_expression "((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000)" (( "(") (binary_expression "(*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000" (parenthesized_expression "(*(uint *)(param_2 + 0x18) & 0xf000)" (( "(") (binary_expression "*(uint *)(param_2 + 0x18) & 0xf000" (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0x4000")) () ")")) (compound_statement "{\n      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);\n      if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }\n    }" ({ "{") (expression_statement "uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);" (assignment_expression "uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0)" (identifier "uVar4") (= "=") (call_expression "getxattr(param_1,"system.posix_acl_default",(void *)0x0,0)" (identifier "getxattr") (argument_list "(param_1,"system.posix_acl_default",(void *)0x0,0)" (( "(") (identifier "param_1") (, ",") (string_literal ""system.posix_acl_default"" (" """) (string_content "system.posix_acl_default") (" """)) (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((long)uVar4 < 0) {\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }\n      else if (0 < (long)uVar4) {\n        return 1;\n      }" (if "if") (parenthesized_expression "((long)uVar4 < 0)" (( "(") (binary_expression "(long)uVar4 < 0" (cast_expression "(long)uVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        piVar3 = __errno_location();\n        if (*piVar3 != 0x3d) goto LAB_0010d368;\n        uVar4 = 0;\n      }" ({ "{") (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar3 != 0x3d) goto LAB_0010d368;" (if "if") (parenthesized_expression "(*piVar3 != 0x3d)" (( "(") (binary_expression "*piVar3 != 0x3d" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (!= "!=") (number_literal "0x3d")) () ")")) (goto_statement "goto LAB_0010d368;" (goto "goto") (statement_identifier "LAB_0010d368") (; ";"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (0 < (long)uVar4) {\n        return 1;\n      }" (else "else") (if_statement "if (0 < (long)uVar4) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(0 < (long)uVar4)" (( "(") (binary_expression "0 < (long)uVar4" (number_literal "0") (< "<") (cast_expression "(long)uVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))))) (} "}"))) (expression_statement "uVar4 = uVar4 & 0xffffffff;" (assignment_expression "uVar4 = uVar4 & 0xffffffff" (identifier "uVar4") (= "=") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

int function_1(char *name,type_1 *sb)

{
  type_2 _Var1;
  int iVar2;
  ssize_t var_2;
  int *piVar4;
  
  if ((sb->st_mode & 0xf000) == 0xa000) {
    return 0;
  }
  var_2 = var_1(name,"system.posix_acl_access",(void *)0x0,0);
  if (var_2 < 0) {
    piVar4 = var_3();
    if (*piVar4 == 0x3d) goto LAB_0010d37b;
LAB_0010d368:
    piVar4 = var_3();
    _Var1 = var_4(*piVar4);
    iVar2 = -(type_3)_Var1;
  }
  else {
    if (0 < var_2) {
      return 1;
    }
LAB_0010d37b:
    var_2 = 0;
    if ((sb->st_mode & 0xf000) == 0x4000) {
      var_2 = var_1(name,"system.posix_acl_default",(void *)0x0,0);
      if (var_2 < 0) {
        piVar4 = var_3();
        if (*piVar4 != 0x3d) goto LAB_0010d368;
        var_2 = 0;
      }
      else if (0 < var_2) {
        return 1;
      }
    }
    iVar2 = (int)var_2;
  }
  return iVar2;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) consequence: (compound_statement (return_statement (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))))

ulong MASKED(char *param_1,long param_2)

{
  byte bVar1;
  ssize_t sVar2;
  int *piVar3;
  ulong uVar4;
  
  if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0xa000) {
    return 0;
  }
  sVar2 = getxattr(param_1,"system.posix_acl_access",(void *)0x0,0);
  if (sVar2 < 0) {
    piVar3 = __errno_location();
    if (*piVar3 == 0x3d) goto LAB_0010d37b;
LAB_0010d368:
    piVar3 = __errno_location();
    bVar1 = FUN_001154ba(*piVar3);
    uVar4 = (ulong)-(uint)bVar1;
  }
  else {
    if (0 < sVar2) {
      return 1;
    }
LAB_0010d37b:
    uVar4 = 0;
    if ((*(uint *)(param_2 + 0x18) & 0xf000) == 0x4000) {
      uVar4 = getxattr(param_1,"system.posix_acl_default",(void *)0x0,0);
      if ((long)uVar4 < 0) {
        piVar3 = __errno_location();
        if (*piVar3 != 0x3d) goto LAB_0010d368;
        uVar4 = 0;
      }
      else if (0 < (long)uVar4) {
        return 1;
      }
    }
    uVar4 = uVar4 & 0xffffffff;
  }
  return uVar4;
}

