
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

_Bool set_file_security_ctx(char *dst_name,_Bool process_local,_Bool recurse,cp_options *x)

{
  _Bool _Var1;
  char *pcVar2;
  undefined4 uVar3;
  int *piVar4;
  
  if ((x->data_copy_required == false) || (x->require_preserve_context != false)) {
    _Var1 = restorecon(dst_name,recurse,process_local);
    if (!_Var1) {
      piVar4 = __errno_location();
      goto LAB_00015adf;
    }
  }
  else {
    if (x->reduce_diagnostics != false) {
      _Var1 = restorecon(dst_name,recurse,process_local);
      return _Var1;
    }
    _Var1 = restorecon(dst_name,recurse,process_local);
    if (!_Var1) {
      piVar4 = __errno_location();
      if (*piVar4 == 0x5f) {
        return _Var1;
      }
      if (*piVar4 == 0x3d) {
        return _Var1;
      }
LAB_00015adf:
      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);
      uVar3 = dcgettext(0,"failed to set the security context of %s",5);
                    /* WARNING: Subroutine does not return */
      error(0,*piVar4,uVar3,pcVar2);
    }
  }
  return true;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)

{
  char cVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  int *piVar4;
  
  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {
    cVar1 = FUN_0001b640(param_1,param_3,param_2);
    if (cVar1 == '\0') {
      piVar4 = __errno_location();
      goto LAB_00015adf;
    }
  }
  else {
    if (*(char *)(param_4 + 0x29) != '\0') {
      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);
      return uVar2;
    }
    uVar2 = FUN_0001b640(param_1,param_3,param_2);
    if ((char)uVar2 == '\0') {
      piVar4 = __errno_location();
      if (*piVar4 == 0x5f) {
        return uVar2;
      }
      if (*piVar4 == 0x3d) {
        return uVar2;
      }
LAB_00015adf:
      uVar2 = FUN_00020290(0,4,param_1);
      uVar3 = dcgettext(0,"failed to set the security context of %s",5);
                    /* WARNING: Subroutine does not return */
      error(0,*piVar4,uVar3,uVar2);
    }
  }
  return 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000132d0
ADD EBX,0x23597
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [ESP + 0x20]
MOVZX ECX,byte ptr [ESP + 0x28]
MOVZX EDX,byte ptr [ESP + 0x24]
CMP byte ptr [EAX + 0x23],0x0
JZ 0x00015ab0
CMP byte ptr [EAX + 0x26],0x0
JNZ 0x00015ab0
CMP byte ptr [EAX + 0x29],0x0
JZ 0x00015b20
PUSH EAX
PUSH EDX
PUSH ECX
PUSH ESI
CALL 0x0001b640
ADD ESP,0x10
MOV EDI,EAX
JMP 0x00015ac7
SUB ESP,0x4
PUSH EDX
PUSH ECX
PUSH ESI
CALL 0x0001b640
ADD ESP,0x10
TEST AL,AL
JZ 0x00015ad8
MOV EDI,0x1
ADD ESP,0xc
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x000125a0
MOV EBP,EAX
SUB ESP,0x4
XOR EDI,EDI
PUSH ESI
PUSH 0x4
PUSH 0x0
CALL 0x00020290
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xffff5360]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121f0
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP]
PUSH 0x0
CALL 0x000123a0
SUB ESP,0x4
PUSH EDX
PUSH ECX
PUSH ESI
CALL 0x0001b640
ADD ESP,0x10
MOV EDI,EAX
TEST AL,AL
JNZ 0x00015ac2
CALL 0x000125a0
MOV EBP,EAX
MOV EAX,dword ptr [EAX]
CMP EAX,0x5f
JZ 0x00015ac7
CMP EAX,0x3d
JNZ 0x00015adf
JMP 0x00015ac7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined1 param_2" type_identifier identifier) , (parameter_declaration "undefined1 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (if_statement "if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" if (parenthesized_expression "((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0'))" ( (binary_expression "(*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')" (parenthesized_expression "(*(char *)(param_4 + 0x23) == '\0')" ( (binary_expression "*(char *)(param_4 + 0x23) == '\0'" (pointer_expression "*(char *)(param_4 + 0x23)" * (cast_expression "(char *)(param_4 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x23)" ( (binary_expression "param_4 + 0x23" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(param_4 + 0x26) != '\0')" ( (binary_expression "*(char *)(param_4 + 0x26) != '\0'" (pointer_expression "*(char *)(param_4 + 0x26)" * (cast_expression "(char *)(param_4 + 0x26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x26)" ( (binary_expression "param_4 + 0x26" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }" { (expression_statement "cVar1 = FUN_0001b640(param_1,param_3,param_2);" (assignment_expression "cVar1 = FUN_0001b640(param_1,param_3,param_2)" identifier = (call_expression "FUN_0001b640(param_1,param_3,param_2)" identifier (argument_list "(param_1,param_3,param_2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00015adf;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" else (compound_statement "{\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" { (if_statement "if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }" if (parenthesized_expression "(*(char *)(param_4 + 0x29) != '\0')" ( (binary_expression "*(char *)(param_4 + 0x29) != '\0'" (pointer_expression "*(char *)(param_4 + 0x29)" * (cast_expression "(char *)(param_4 + 0x29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x29)" ( (binary_expression "param_4 + 0x29" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }" { (expression_statement "uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);" (assignment_expression "uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4)" identifier = (call_expression "FUN_0001b640(param_1,param_3,param_2,param_4)" identifier (argument_list "(param_1,param_3,param_2,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar2 = FUN_0001b640(param_1,param_3,param_2);" (assignment_expression "uVar2 = FUN_0001b640(param_1,param_3,param_2)" identifier = (call_expression "FUN_0001b640(param_1,param_3,param_2)" identifier (argument_list "(param_1,param_3,param_2)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }" if (parenthesized_expression "((char)uVar2 == '\0')" ( (binary_expression "(char)uVar2 == '\0'" (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,uVar2);\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 == 0x5f) {\n        return uVar2;\n      }" if (parenthesized_expression "(*piVar4 == 0x5f)" ( (binary_expression "*piVar4 == 0x5f" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) })) (if_statement "if (*piVar4 == 0x3d) {\n        return uVar2;\n      }" if (parenthesized_expression "(*piVar4 == 0x3d)" ( (binary_expression "*piVar4 == 0x3d" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) })) (labeled_statement "LAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);" statement_identifier : (expression_statement "uVar2 = FUN_00020290(0,4,param_1);" (assignment_expression "uVar2 = FUN_00020290(0,4,param_1)" identifier = (call_expression "FUN_00020290(0,4,param_1)" identifier (argument_list "(0,4,param_1)" ( number_literal , number_literal , identifier )))) ;)) (expression_statement "uVar3 = dcgettext(0,"failed to set the security context of %s",5);" (assignment_expression "uVar3 = dcgettext(0,"failed to set the security context of %s",5)" identifier = (call_expression "dcgettext(0,"failed to set the security context of %s",5)" identifier (argument_list "(0,"failed to set the security context of %s",5)" ( number_literal , (string_literal ""failed to set the security context of %s"" " string_content ") , number_literal )))) ;) comment (expression_statement "error(0,*piVar4,uVar3,uVar2);" (call_expression "error(0,*piVar4,uVar3,uVar2)" identifier (argument_list "(0,*piVar4,uVar3,uVar2)" ( number_literal , (pointer_expression "*piVar4" * identifier) , identifier , identifier ))) ;) })) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\n_Bool set_file_security_ctx(char *dst_name,_Bool process_local,_Bool recurse,cp_options *x)\n\n{\n  _Bool _Var1;\n  char *pcVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((x->data_copy_required == false) || (x->require_preserve_context != false)) {\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }\n  }\n  return true;\n}\n\n" comment comment (function_definition "_Bool set_file_security_ctx(char *dst_name,_Bool process_local,_Bool recurse,cp_options *x)\n\n{\n  _Bool _Var1;\n  char *pcVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((x->data_copy_required == false) || (x->require_preserve_context != false)) {\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }\n  }\n  return true;\n}" type_identifier (function_declarator "set_file_security_ctx(char *dst_name,_Bool process_local,_Bool recurse,cp_options *x)" identifier (parameter_list "(char *dst_name,_Bool process_local,_Bool recurse,cp_options *x)" ( (parameter_declaration "char *dst_name" primitive_type (pointer_declarator "*dst_name" * identifier)) , (parameter_declaration "_Bool process_local" type_identifier identifier) , (parameter_declaration "_Bool recurse" type_identifier identifier) , (parameter_declaration "cp_options *x" type_identifier (pointer_declarator "*x" * identifier)) ))) (compound_statement "{\n  _Bool _Var1;\n  char *pcVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((x->data_copy_required == false) || (x->require_preserve_context != false)) {\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }\n  }\n  return true;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (if_statement "if ((x->data_copy_required == false) || (x->require_preserve_context != false)) {\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }\n  }" if (parenthesized_expression "((x->data_copy_required == false) || (x->require_preserve_context != false))" ( (binary_expression "(x->data_copy_required == false) || (x->require_preserve_context != false)" (parenthesized_expression "(x->data_copy_required == false)" ( (binary_expression "x->data_copy_required == false" (field_expression "x->data_copy_required" identifier -> field_identifier) == false) )) || (parenthesized_expression "(x->require_preserve_context != false)" ( (binary_expression "x->require_preserve_context != false" (field_expression "x->require_preserve_context" identifier -> field_identifier) != false) ))) )) (compound_statement "{\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }" { (expression_statement "_Var1 = restorecon(dst_name,recurse,process_local);" (assignment_expression "_Var1 = restorecon(dst_name,recurse,process_local)" identifier = (call_expression "restorecon(dst_name,recurse,process_local)" identifier (argument_list "(dst_name,recurse,process_local)" ( identifier , identifier , identifier )))) ;) (if_statement "if (!_Var1) {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" if (parenthesized_expression "(!_Var1)" ( (unary_expression "!_Var1" ! identifier) )) (compound_statement "{\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00015adf;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }\n  }" else (compound_statement "{\n    if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }\n    _Var1 = restorecon(dst_name,recurse,process_local);\n    if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }\n  }" { (if_statement "if (x->reduce_diagnostics != false) {\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }" if (parenthesized_expression "(x->reduce_diagnostics != false)" ( (binary_expression "x->reduce_diagnostics != false" (field_expression "x->reduce_diagnostics" identifier -> field_identifier) != false) )) (compound_statement "{\n      _Var1 = restorecon(dst_name,recurse,process_local);\n      return _Var1;\n    }" { (expression_statement "_Var1 = restorecon(dst_name,recurse,process_local);" (assignment_expression "_Var1 = restorecon(dst_name,recurse,process_local)" identifier = (call_expression "restorecon(dst_name,recurse,process_local)" identifier (argument_list "(dst_name,recurse,process_local)" ( identifier , identifier , identifier )))) ;) (return_statement "return _Var1;" return identifier ;) })) (expression_statement "_Var1 = restorecon(dst_name,recurse,process_local);" (assignment_expression "_Var1 = restorecon(dst_name,recurse,process_local)" identifier = (call_expression "restorecon(dst_name,recurse,process_local)" identifier (argument_list "(dst_name,recurse,process_local)" ( identifier , identifier , identifier )))) ;) (if_statement "if (!_Var1) {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }" if (parenthesized_expression "(!_Var1)" ( (unary_expression "!_Var1" ! identifier) )) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return _Var1;\n      }\n      if (*piVar4 == 0x3d) {\n        return _Var1;\n      }\nLAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,*piVar4,uVar3,pcVar2);\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 == 0x5f) {\n        return _Var1;\n      }" if (parenthesized_expression "(*piVar4 == 0x5f)" ( (binary_expression "*piVar4 == 0x5f" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        return _Var1;\n      }" { (return_statement "return _Var1;" return identifier ;) })) (if_statement "if (*piVar4 == 0x3d) {\n        return _Var1;\n      }" if (parenthesized_expression "(*piVar4 == 0x3d)" ( (binary_expression "*piVar4 == 0x3d" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        return _Var1;\n      }" { (return_statement "return _Var1;" return identifier ;) })) (labeled_statement "LAB_00015adf:\n      pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);" statement_identifier : (expression_statement "pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name);" (assignment_expression "pcVar2 = quotearg_n_style(0,shell_escape_always_quoting_style,dst_name)" identifier = (call_expression "quotearg_n_style(0,shell_escape_always_quoting_style,dst_name)" identifier (argument_list "(0,shell_escape_always_quoting_style,dst_name)" ( number_literal , identifier , identifier )))) ;)) (expression_statement "uVar3 = dcgettext(0,"failed to set the security context of %s",5);" (assignment_expression "uVar3 = dcgettext(0,"failed to set the security context of %s",5)" identifier = (call_expression "dcgettext(0,"failed to set the security context of %s",5)" identifier (argument_list "(0,"failed to set the security context of %s",5)" ( number_literal , (string_literal ""failed to set the security context of %s"" " string_content ") , number_literal )))) ;) comment (expression_statement "error(0,*piVar4,uVar3,pcVar2);" (call_expression "error(0,*piVar4,uVar3,pcVar2)" identifier (argument_list "(0,*piVar4,uVar3,pcVar2)" ( number_literal , (pointer_expression "*piVar4" * identifier) , identifier , identifier ))) ;) })) }))) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4 FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined1 param_2" type_identifier identifier) , (parameter_declaration "undefined1 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (if_statement "if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" if (parenthesized_expression "((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0'))" ( (binary_expression "(*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')" (parenthesized_expression "(*(char *)(param_4 + 0x23) == '\0')" ( (binary_expression "*(char *)(param_4 + 0x23) == '\0'" (pointer_expression "*(char *)(param_4 + 0x23)" * (cast_expression "(char *)(param_4 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x23)" ( (binary_expression "param_4 + 0x23" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(param_4 + 0x26) != '\0')" ( (binary_expression "*(char *)(param_4 + 0x26) != '\0'" (pointer_expression "*(char *)(param_4 + 0x26)" * (cast_expression "(char *)(param_4 + 0x26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x26)" ( (binary_expression "param_4 + 0x26" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }" { (expression_statement "cVar1 = FUN_0001b640(param_1,param_3,param_2);" (assignment_expression "cVar1 = FUN_0001b640(param_1,param_3,param_2)" identifier = (call_expression "FUN_0001b640(param_1,param_3,param_2)" identifier (argument_list "(param_1,param_3,param_2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00015adf;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" else (compound_statement "{\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" { (if_statement "if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }" if (parenthesized_expression "(*(char *)(param_4 + 0x29) != '\0')" ( (binary_expression "*(char *)(param_4 + 0x29) != '\0'" (pointer_expression "*(char *)(param_4 + 0x29)" * (cast_expression "(char *)(param_4 + 0x29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x29)" ( (binary_expression "param_4 + 0x29" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }" { (expression_statement "uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);" (assignment_expression "uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4)" identifier = (call_expression "FUN_0001b640(param_1,param_3,param_2,param_4)" identifier (argument_list "(param_1,param_3,param_2,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar2 = FUN_0001b640(param_1,param_3,param_2);" (assignment_expression "uVar2 = FUN_0001b640(param_1,param_3,param_2)" identifier = (call_expression "FUN_0001b640(param_1,param_3,param_2)" identifier (argument_list "(param_1,param_3,param_2)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }" if (parenthesized_expression "((char)uVar2 == '\0')" ( (binary_expression "(char)uVar2 == '\0'" (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 == 0x5f) {\n        return uVar2;\n      }" if (parenthesized_expression "(*piVar4 == 0x5f)" ( (binary_expression "*piVar4 == 0x5f" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) })) (if_statement "if (*piVar4 == 0x3d) {\n        return uVar2;\n      }" if (parenthesized_expression "(*piVar4 == 0x3d)" ( (binary_expression "*piVar4 == 0x3d" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) })) (labeled_statement "LAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);" statement_identifier : (expression_statement "uVar2 = FUN_00020290(0,4,param_1);" (assignment_expression "uVar2 = FUN_00020290(0,4,param_1)" identifier = (call_expression "FUN_00020290(0,4,param_1)" identifier (argument_list "(0,4,param_1)" ( number_literal , number_literal , identifier )))) ;)) (expression_statement "uVar3 = dcgettext(0,"failed to set the security context of %s",5);" (assignment_expression "uVar3 = dcgettext(0,"failed to set the security context of %s",5)" identifier = (call_expression "dcgettext(0,"failed to set the security context of %s",5)" identifier (argument_list "(0,"failed to set the security context of %s",5)" ( number_literal , (string_literal ""failed to set the security context of %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar4,uVar3,uVar2);" (call_expression "error(0,*piVar4,uVar3,uVar2)" identifier (argument_list "(0,*piVar4,uVar3,uVar2)" ( number_literal , (pointer_expression "*piVar4" * identifier) , identifier , identifier ))) ;) })) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) , IDENT , IDENT ))) ;) })) }))) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00015a60(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)" (identifier "FUN_00015a60") (parameter_list "(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined1 param_2" (type_identifier "undefined1") (identifier "param_2")) (, ",") (parameter_declaration "undefined1 param_3" (type_identifier "undefined1") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  \n  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }\n  return 1;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (if_statement "if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }\n  else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" (if "if") (parenthesized_expression "((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0'))" (( "(") (binary_expression "(*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')" (parenthesized_expression "(*(char *)(param_4 + 0x23) == '\0')" (( "(") (binary_expression "*(char *)(param_4 + 0x23) == '\0'" (pointer_expression "*(char *)(param_4 + 0x23)" (* "*") (cast_expression "(char *)(param_4 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x23)" (( "(") (binary_expression "param_4 + 0x23" (identifier "param_4") (+ "+") (number_literal "0x23")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_4 + 0x26) != '\0')" (( "(") (binary_expression "*(char *)(param_4 + 0x26) != '\0'" (pointer_expression "*(char *)(param_4 + 0x26)" (* "*") (cast_expression "(char *)(param_4 + 0x26)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x26)" (( "(") (binary_expression "param_4 + 0x26" (identifier "param_4") (+ "+") (number_literal "0x26")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    cVar1 = FUN_0001b640(param_1,param_3,param_2);\n    if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }\n  }" ({ "{") (expression_statement "cVar1 = FUN_0001b640(param_1,param_3,param_2);" (assignment_expression "cVar1 = FUN_0001b640(param_1,param_3,param_2)" (identifier "cVar1") (= "=") (call_expression "FUN_0001b640(param_1,param_3,param_2)" (identifier "FUN_0001b640") (argument_list "(param_1,param_3,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (cVar1 == '\0') {\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar4 = __errno_location();\n      goto LAB_00015adf;\n    }" ({ "{") (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" (identifier "piVar4") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00015adf;" (goto "goto") (statement_identifier "LAB_00015adf") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" (else "else") (compound_statement "{\n    if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }\n    uVar2 = FUN_0001b640(param_1,param_3,param_2);\n    if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }\n  }" ({ "{") (if_statement "if (*(char *)(param_4 + 0x29) != '\0') {\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_4 + 0x29) != '\0')" (( "(") (binary_expression "*(char *)(param_4 + 0x29) != '\0'" (pointer_expression "*(char *)(param_4 + 0x29)" (* "*") (cast_expression "(char *)(param_4 + 0x29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x29)" (( "(") (binary_expression "param_4 + 0x29" (identifier "param_4") (+ "+") (number_literal "0x29")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);\n      return uVar2;\n    }" ({ "{") (expression_statement "uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);" (assignment_expression "uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4)" (identifier "uVar2") (= "=") (call_expression "FUN_0001b640(param_1,param_3,param_2,param_4)" (identifier "FUN_0001b640") (argument_list "(param_1,param_3,param_2,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_0001b640(param_1,param_3,param_2);" (assignment_expression "uVar2 = FUN_0001b640(param_1,param_3,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0001b640(param_1,param_3,param_2)" (identifier "FUN_0001b640") (argument_list "(param_1,param_3,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((char)uVar2 == '\0') {\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }" (if "if") (parenthesized_expression "((char)uVar2 == '\0')" (( "(") (binary_expression "(char)uVar2 == '\0'" (cast_expression "(char)uVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar2")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 == 0x5f) {\n        return uVar2;\n      }\n      if (*piVar4 == 0x3d) {\n        return uVar2;\n      }\nLAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);\n      uVar3 = dcgettext(0,"failed to set the security context of %s",5);\n                    \n      error(0,*piVar4,uVar3,uVar2);\n    }" ({ "{") (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" (identifier "piVar4") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar4 == 0x5f) {\n        return uVar2;\n      }" (if "if") (parenthesized_expression "(*piVar4 == 0x5f)" (( "(") (binary_expression "*piVar4 == 0x5f" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "0x5f")) () ")")) (compound_statement "{\n        return uVar2;\n      }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (if_statement "if (*piVar4 == 0x3d) {\n        return uVar2;\n      }" (if "if") (parenthesized_expression "(*piVar4 == 0x3d)" (( "(") (binary_expression "*piVar4 == 0x3d" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n        return uVar2;\n      }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (labeled_statement "LAB_00015adf:\n      uVar2 = FUN_00020290(0,4,param_1);" (statement_identifier "LAB_00015adf") (: ":") (expression_statement "uVar2 = FUN_00020290(0,4,param_1);" (assignment_expression "uVar2 = FUN_00020290(0,4,param_1)" (identifier "uVar2") (= "=") (call_expression "FUN_00020290(0,4,param_1)" (identifier "FUN_00020290") (argument_list "(0,4,param_1)" (( "(") (number_literal "0") (, ",") (number_literal "4") (, ",") (identifier "param_1") () ")")))) (; ";"))) (expression_statement "uVar3 = dcgettext(0,"failed to set the security context of %s",5);" (assignment_expression "uVar3 = dcgettext(0,"failed to set the security context of %s",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"failed to set the security context of %s",5)" (identifier "dcgettext") (argument_list "(0,"failed to set the security context of %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""failed to set the security context of %s"" (" """) (string_content "failed to set the security context of %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,*piVar4,uVar3,uVar2);" (call_expression "error(0,*piVar4,uVar3,uVar2)" (identifier "error") (argument_list "(0,*piVar4,uVar3,uVar2)" (( "(") (number_literal "0") (, ",") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (, ",") (identifier "uVar3") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

type_1 function_1(char *dst_name,type_1 process_local,type_1 recurse,type_2 *x)

{
  type_1 _Var1;
  char *pcVar2;
  type_3 uVar3;
  int *piVar4;
  
  if ((x->data_copy_required == false) || (x->require_preserve_context != false)) {
    _Var1 = var_1(dst_name,recurse,process_local);
    if (!_Var1) {
      piVar4 = var_2();
      goto LAB_00015adf;
    }
  }
  else {
    if (x->reduce_diagnostics != false) {
      _Var1 = var_1(dst_name,recurse,process_local);
      return _Var1;
    }
    _Var1 = var_1(dst_name,recurse,process_local);
    if (!_Var1) {
      piVar4 = var_2();
      if (*piVar4 == 0x5f) {
        return _Var1;
      }
      if (*piVar4 == 0x3d) {
        return _Var1;
      }
LAB_00015adf:
      pcVar2 = var_3(0,shell_escape_always_quoting_style,dst_name);
      uVar3 = var_4(0,"failed to set the security context of %s",5);
                    /* WARNING: Subroutine does not return */
      var_5(0,*piVar4,uVar3,pcVar2);
    }
  }
  return true;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(undefined4 param_1,undefined1 param_2,undefined1 param_3,int param_4)

{
  char cVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  int *piVar4;
  
  if ((*(char *)(param_4 + 0x23) == '\0') || (*(char *)(param_4 + 0x26) != '\0')) {
    cVar1 = FUN_0001b640(param_1,param_3,param_2);
    if (cVar1 == '\0') {
      piVar4 = __errno_location();
      goto LAB_00015adf;
    }
  }
  else {
    if (*(char *)(param_4 + 0x29) != '\0') {
      uVar2 = FUN_0001b640(param_1,param_3,param_2,param_4);
      return uVar2;
    }
    uVar2 = FUN_0001b640(param_1,param_3,param_2);
    if ((char)uVar2 == '\0') {
      piVar4 = __errno_location();
      if (*piVar4 == 0x5f) {
        return uVar2;
      }
      if (*piVar4 == 0x3d) {
        return uVar2;
      }
LAB_00015adf:
      uVar2 = FUN_00020290(0,4,param_1);
      uVar3 = dcgettext(0,"failed to set the security context of %s",5);
                    /* WARNING: Subroutine does not return */
      error(0,*piVar4,uVar3,uVar2);
    }
  }
  return 1;
}

