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

int __regparm3 restorecon_private(char *path,_Bool local)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int *piVar5;
  int in_GS_OFFSET;
  int local_94;
  int local_90;
  char *scon;
  char *tcon;
  stat sb;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  scon = (char *)0x0;
  tcon = (char *)0x0;
  if (local) {
    iVar2 = getfscreatecon(&tcon);
    if (iVar2 < 0) {
      iVar2 = -1;
    }
    else if (tcon == (char *)0x0) {
      piVar5 = __errno_location();
      iVar2 = -1;
      *piVar5 = 0x3d;
    }
    else {
      iVar2 = lsetfilecon(path,tcon);
      freecon(tcon);
    }
    goto LAB_000132e4;
  }
  iVar2 = open64(path,0x20000);
  if (iVar2 == -1) {
    piVar5 = __errno_location();
    if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))
    goto LAB_0001333f;
    local_94 = 0;
    iVar3 = 0;
  }
  else {
    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);
    if (iVar3 < 0) {
      local_94 = 0;
      iVar3 = 0;
      local_90 = -1;
      goto LAB_00013435;
    }
LAB_0001333f:
    iVar3 = matchpathcon(path,sb.st_mode,&scon);
    if (iVar3 < 0) {
      piVar5 = __errno_location();
      if (*piVar5 != 2) goto LAB_0001341e;
      *piVar5 = 0x3d;
      iVar3 = 0;
      local_94 = 0;
LAB_00013428:
      if (iVar2 == -1) goto LAB_00013445;
LAB_0001342d:
      local_90 = -1;
    }
    else {
      iVar3 = context_new(scon);
      if (iVar3 == 0) {
LAB_0001341e:
        local_94 = 0;
        iVar3 = 0;
        goto LAB_00013428;
      }
      if (iVar2 != -1) {
        iVar4 = rpl_fgetfilecon(iVar2,&tcon);
        if (iVar4 < 0) {
          local_94 = 0;
          local_90 = -1;
          goto LAB_00013435;
        }
        local_94 = context_new(tcon);
        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {
          iVar4 = context_type_set(local_94,iVar4);
          local_90 = -1;
          if (iVar4 == 0) goto LAB_000133da;
          goto LAB_00013435;
        }
        goto LAB_0001342d;
      }
      iVar4 = rpl_lgetfilecon(path,&tcon);
      local_94 = 0;
      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||
          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||
         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;
LAB_000133da:
      iVar4 = context_str(local_94);
      if (iVar4 == 0) goto LAB_00013428;
      if (iVar2 == -1) {
        iVar2 = lsetfilecon(path,iVar4);
        goto LAB_00013445;
      }
      local_90 = fsetfilecon(iVar2,iVar4);
    }
LAB_00013435:
    close(iVar2);
    iVar2 = local_90;
  }
LAB_00013445:
  context_free(iVar3);
  context_free(local_94);
  freecon(scon);
  freecon(tcon);
LAB_000132e4:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return iVar2;
}



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

int __regparm3 FUN_00013270(char *param_1,char param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int in_GS_OFFSET;
  int local_94;
  int local_90;
  undefined4 local_88;
  int local_84;
  stat64 local_80;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1327b;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_88 = 0;
  local_84 = 0;
  if (param_2 != '\0') {
    iVar1 = getfscreatecon(&local_84);
    if (iVar1 < 0) {
      iVar1 = -1;
    }
    else if (local_84 == 0) {
      piVar4 = __errno_location();
      iVar1 = -1;
      *piVar4 = 0x3d;
    }
    else {
      iVar1 = lsetfilecon(param_1,local_84);
      freecon(local_84);
    }
    goto LAB_000132e4;
  }
  iVar1 = open64(param_1,0x20000);
  if (iVar1 == -1) {
    piVar4 = __errno_location();
    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))
    goto LAB_0001333f;
    local_94 = 0;
    iVar2 = 0;
  }
  else {
    iVar2 = __fxstat64(3,iVar1,&local_80);
    if (iVar2 < 0) {
      local_94 = 0;
      iVar2 = 0;
      local_90 = -1;
      goto LAB_00013435;
    }
LAB_0001333f:
    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);
    if (iVar2 < 0) {
      piVar4 = __errno_location();
      if (*piVar4 != 2) goto LAB_0001341e;
      *piVar4 = 0x3d;
      iVar2 = 0;
      local_94 = 0;
LAB_00013428:
      if (iVar1 == -1) goto LAB_00013445;
LAB_0001342d:
      local_90 = -1;
    }
    else {
      iVar2 = context_new(local_88);
      if (iVar2 == 0) {
LAB_0001341e:
        local_94 = 0;
        iVar2 = 0;
        goto LAB_00013428;
      }
      if (iVar1 != -1) {
        iVar3 = FUN_0001cc60(iVar1,&local_84);
        if (iVar3 < 0) {
          local_94 = 0;
          local_90 = -1;
          goto LAB_00013435;
        }
        local_94 = context_new(local_84);
        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {
          iVar3 = context_type_set(local_94,iVar3);
          local_90 = -1;
          if (iVar3 == 0) goto LAB_000133da;
          goto LAB_00013435;
        }
        goto LAB_0001342d;
      }
      iVar3 = FUN_0001cbc0(param_1,&local_84);
      local_94 = 0;
      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||
          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||
         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;
LAB_000133da:
      iVar3 = context_str(local_94);
      if (iVar3 == 0) goto LAB_00013428;
      if (iVar1 == -1) {
        iVar1 = lsetfilecon(param_1,iVar3);
        goto LAB_00013445;
      }
      local_90 = fsetfilecon(iVar1,iVar3);
    }
LAB_00013435:
    close(iVar1);
    iVar1 = local_90;
  }
LAB_00013445:
  context_free(iVar2);
  context_free(local_94);
  freecon(local_88);
  freecon(local_84);
LAB_000132e4:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00021780();
  }
  return iVar1;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00012aa0
ADD EBX,0x16d85
SUB ESP,0x8c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x7c],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x18],0x0
TEST DL,DL
JZ 0x00013308
SUB ESP,0xc
LEA EAX,[ESP + 0x24]
PUSH EAX
CALL 0x00012550
ADD ESP,0x10
TEST EAX,EAX
JS 0x000134c7
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x00013575
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL 0x000120d0
POP EDI
PUSH dword ptr [ESP + 0x24]
MOV ESI,EAX
CALL 0x000124e0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x7c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,ESI
JNZ 0x0001359e
ADD ESP,0x8c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH 0x20000
PUSH EDI
CALL 0x00012080
ADD ESP,0x10
MOV ESI,EAX
CMP EAX,-0x1
JZ 0x00013478
SUB ESP,0x4
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH ESI
PUSH 0x3
CALL 0x00012200
ADD ESP,0x10
TEST EAX,EAX
JS 0x000134b0
SUB ESP,0x4
LEA EAX,[ESP + 0x18]
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH EDI
CALL 0x00012230
ADD ESP,0x10
TEST EAX,EAX
JS 0x00013410
SUB ESP,0xc
PUSH dword ptr [ESP + 0x20]
CALL 0x00012140
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0001341e
CMP ESI,-0x1
JZ 0x000134d8
SUB ESP,0x8
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH ESI
CALL 0x0001cc60
ADD ESP,0x10
TEST EAX,EAX
JS 0x00013560
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00012140
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001342d
SUB ESP,0xc
PUSH EBP
CALL 0x000120b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001342d
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012190
ADD ESP,0x10
MOV dword ptr [ESP + 0xc],0xffffffff
TEST EAX,EAX
JNZ 0x00013435
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00012580
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00013428
CMP ESI,-0x1
JZ 0x0001358a
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x00012430
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
JMP 0x00013435
CALL 0x000123d0
CMP dword ptr [EAX],0x2
JZ 0x00013548
MOV dword ptr [ESP + 0x8],0x0
XOR EBP,EBP
CMP ESI,-0x1
JZ 0x00013445
MOV dword ptr [ESP + 0xc],0xffffffff
SUB ESP,0xc
PUSH ESI
CALL 0x000125d0
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0xc]
SUB ESP,0xc
PUSH EBP
CALL 0x000122e0
POP EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000122e0
POP EDX
PUSH dword ptr [ESP + 0x20]
CALL 0x000124e0
POP ECX
PUSH dword ptr [ESP + 0x24]
CALL 0x000124e0
ADD ESP,0x10
JMP 0x000132e4
CALL 0x000123d0
CMP dword ptr [EAX],0x28
JZ 0x00013490
MOV dword ptr [ESP + 0x8],0x0
XOR EBP,EBP
JMP 0x00013445
SUB ESP,0x4
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH EDI
PUSH 0x3
CALL 0x000125b0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x0001333f
JMP 0x00013482
MOV dword ptr [ESP + 0x8],0x0
XOR EBP,EBP
MOV dword ptr [ESP + 0xc],0xffffffff
JMP 0x00013435
MOV ESI,0xffffffff
JMP 0x000132e4
SUB ESP,0x8
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH EDI
CALL 0x0001cbc0
ADD ESP,0x10
MOV dword ptr [ESP + 0x8],0x0
TEST EAX,EAX
JS 0x00013445
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00012140
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00013445
SUB ESP,0xc
PUSH EBP
CALL 0x000120b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00013445
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012190
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00013445
JMP 0x000133da
MOV dword ptr [EAX],0x3d
XOR EBP,EBP
MOV dword ptr [ESP + 0x8],0x0
JMP 0x00013428
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0xc],0xffffffff
JMP 0x00013435
CALL 0x000123d0
MOV ESI,0xffffffff
MOV dword ptr [EAX],0x3d
JMP 0x000132e4
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL 0x000120d0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00013445
CALL 0x00021780
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_00013270(char *param_1,char param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00021780();\n  }\n  return iVar1;\n}\n\n" comment (function_definition "int __regparm3 FUN_00013270(char *param_1,char param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00021780();\n  }\n  return iVar1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00013270(char *param_1,char param_2)" identifier (parameter_list "(char *param_1,char param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00021780();\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "stat64 local_80;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1327b;" (assignment_expression "uStack_14 = 0x1327b" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (if_statement "if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }" { (expression_statement "iVar1 = getfscreatecon(&local_84);" (assignment_expression "iVar1 = getfscreatecon(&local_84)" identifier = (call_expression "getfscreatecon(&local_84)" identifier (argument_list "(&local_84)" ( (pointer_expression "&local_84" & identifier) )))) ;) (if_statement "if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = -1;\n    }" { (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) }) (else_clause "else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" else (if_statement "if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) (expression_statement "*piVar4 = 0x3d;" (assignment_expression "*piVar4 = 0x3d" (pointer_expression "*piVar4" * identifier) = number_literal) ;) }) (else_clause "else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" else (compound_statement "{\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" { (expression_statement "iVar1 = lsetfilecon(param_1,local_84);" (assignment_expression "iVar1 = lsetfilecon(param_1,local_84)" identifier = (call_expression "lsetfilecon(param_1,local_84)" identifier (argument_list "(param_1,local_84)" ( identifier , identifier )))) ;) (expression_statement "freecon(local_84);" (call_expression "freecon(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) }))))) (goto_statement "goto LAB_000132e4;" goto statement_identifier ;) })) (expression_statement "iVar1 = open64(param_1,0x20000);" (assignment_expression "iVar1 = open64(param_1,0x20000)" identifier = (call_expression "open64(param_1,0x20000)" identifier (argument_list "(param_1,0x20000)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;" if (parenthesized_expression "((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))" ( (binary_expression "(*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2)" (parenthesized_expression "(*piVar4 == 0x28)" ( (binary_expression "*piVar4 == 0x28" (pointer_expression "*piVar4" * identifier) == number_literal) )) && (parenthesized_expression "(iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2)" ( (comma_expression "iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2" (assignment_expression "iVar2 = __lxstat64(3,param_1,&local_80)" identifier = (call_expression "__lxstat64(3,param_1,&local_80)" identifier (argument_list "(3,param_1,&local_80)" ( number_literal , identifier , (pointer_expression "&local_80" & identifier) )))) , (binary_expression "-1 < iVar2" number_literal < identifier)) ))) )) (goto_statement "goto LAB_0001333f;" goto statement_identifier ;)) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" else (compound_statement "{\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" { (expression_statement "iVar2 = __fxstat64(3,iVar1,&local_80);" (assignment_expression "iVar2 = __fxstat64(3,iVar1,&local_80)" identifier = (call_expression "__fxstat64(3,iVar1,&local_80)" identifier (argument_list "(3,iVar1,&local_80)" ( number_literal , identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (labeled_statement "LAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);" statement_identifier : (expression_statement "iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);" (assignment_expression "iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88)" identifier = (call_expression "matchpathcon(param_1,local_80.st_mode,&local_88)" identifier (argument_list "(param_1,local_80.st_mode,&local_88)" ( identifier , (field_expression "local_80.st_mode" identifier . field_identifier) , (pointer_expression "&local_88" & identifier) )))) ;)) (if_statement "if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 != 2) goto LAB_0001341e;" if (parenthesized_expression "(*piVar4 != 2)" ( (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_0001341e;" goto statement_identifier ;)) (expression_statement "*piVar4 = 0x3d;" (assignment_expression "*piVar4 = 0x3d" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;" statement_identifier : (if_statement "if (iVar1 == -1) goto LAB_00013445;" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00013445;" goto statement_identifier ;))) (labeled_statement "LAB_0001342d:\n      local_90 = -1;" statement_identifier : (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" else (compound_statement "{\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" { (expression_statement "iVar2 = context_new(local_88);" (assignment_expression "iVar2 = context_new(local_88)" identifier = (call_expression "context_new(local_88)" identifier (argument_list "(local_88)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }" { (labeled_statement "LAB_0001341e:\n        local_94 = 0;" statement_identifier : (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;)) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013428;" goto statement_identifier ;) })) (if_statement "if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" { (expression_statement "iVar3 = FUN_0001cc60(iVar1,&local_84);" (assignment_expression "iVar3 = FUN_0001cc60(iVar1,&local_84)" identifier = (call_expression "FUN_0001cc60(iVar1,&local_84)" identifier (argument_list "(iVar1,&local_84)" ( identifier , (pointer_expression "&local_84" & identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (expression_statement "local_94 = context_new(local_84);" (assignment_expression "local_94 = context_new(local_84)" identifier = (call_expression "context_new(local_84)" identifier (argument_list "(local_84)" ( identifier )))) ;) (if_statement "if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" if (parenthesized_expression "((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0))" ( (binary_expression "(local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)" (parenthesized_expression "(local_94 != 0)" ( (binary_expression "local_94 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = context_type_get(iVar2), iVar3 != 0)" ( (comma_expression "iVar3 = context_type_get(iVar2), iVar3 != 0" (assignment_expression "iVar3 = context_type_get(iVar2)" identifier = (call_expression "context_type_get(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" { (expression_statement "iVar3 = context_type_set(local_94,iVar3);" (assignment_expression "iVar3 = context_type_set(local_94,iVar3)" identifier = (call_expression "context_type_set(local_94,iVar3)" identifier (argument_list "(local_94,iVar3)" ( identifier , identifier )))) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_000133da;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000133da;" goto statement_identifier ;)) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001342d;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_0001cbc0(param_1,&local_84);" (assignment_expression "iVar3 = FUN_0001cbc0(param_1,&local_84)" identifier = (call_expression "FUN_0001cbc0(param_1,&local_84)" identifier (argument_list "(param_1,&local_84)" ( identifier , (pointer_expression "&local_84" & identifier) )))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (if_statement "if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;" if (parenthesized_expression "((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0))" ( (binary_expression "(((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)" (parenthesized_expression "(((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0))" ( (binary_expression "((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)" (parenthesized_expression "((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0))" ( (binary_expression "(iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)" (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) || (parenthesized_expression "(local_94 = context_new(local_84), local_94 == 0)" ( (comma_expression "local_94 = context_new(local_84), local_94 == 0" (assignment_expression "local_94 = context_new(local_84)" identifier = (call_expression "context_new(local_84)" identifier (argument_list "(local_84)" ( identifier )))) , (binary_expression "local_94 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar3 = context_type_get(iVar2), iVar3 == 0)" ( (comma_expression "iVar3 = context_type_get(iVar2), iVar3 == 0" (assignment_expression "iVar3 = context_type_get(iVar2)" identifier = (call_expression "context_type_get(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)" ( (comma_expression "iVar3 = context_type_set(local_94,iVar3), iVar3 != 0" (assignment_expression "iVar3 = context_type_set(local_94,iVar3)" identifier = (call_expression "context_type_set(local_94,iVar3)" identifier (argument_list "(local_94,iVar3)" ( identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00013445;" goto statement_identifier ;)) (labeled_statement "LAB_000133da:\n      iVar3 = context_str(local_94);" statement_identifier : (expression_statement "iVar3 = context_str(local_94);" (assignment_expression "iVar3 = context_str(local_94)" identifier = (call_expression "context_str(local_94)" identifier (argument_list "(local_94)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00013428;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013428;" goto statement_identifier ;)) (if_statement "if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }" { (expression_statement "iVar1 = lsetfilecon(param_1,iVar3);" (assignment_expression "iVar1 = lsetfilecon(param_1,iVar3)" identifier = (call_expression "lsetfilecon(param_1,iVar3)" identifier (argument_list "(param_1,iVar3)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00013445;" goto statement_identifier ;) })) (expression_statement "local_90 = fsetfilecon(iVar1,iVar3);" (assignment_expression "local_90 = fsetfilecon(iVar1,iVar3)" identifier = (call_expression "fsetfilecon(iVar1,iVar3)" identifier (argument_list "(iVar1,iVar3)" ( identifier , identifier )))) ;) }))) (labeled_statement "LAB_00013435:\n    close(iVar1);" statement_identifier : (expression_statement "close(iVar1);" (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;)) (expression_statement "iVar1 = local_90;" (assignment_expression "iVar1 = local_90" identifier = identifier) ;) }))) (labeled_statement "LAB_00013445:\n  context_free(iVar2);" statement_identifier : (expression_statement "context_free(iVar2);" (call_expression "context_free(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;)) (expression_statement "context_free(local_94);" (call_expression "context_free(local_94)" identifier (argument_list "(local_94)" ( identifier ))) ;) (expression_statement "freecon(local_88);" (call_expression "freecon(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) (expression_statement "freecon(local_84);" (call_expression "freecon(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (labeled_statement "LAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00021780();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00021780();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00021780();\n  }" { comment (expression_statement "FUN_00021780();" (call_expression "FUN_00021780()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 restorecon_private(char *path,_Bool local)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  char *scon;\n  char *tcon;\n  stat sb;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  scon = (char *)0x0;\n  tcon = (char *)0x0;\n  if (local) {\n    iVar2 = getfscreatecon(&tcon);\n    if (iVar2 < 0) {\n      iVar2 = -1;\n    }\n    else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }\n    goto LAB_000132e4;\n  }\n  iVar2 = open64(path,0x20000);\n  if (iVar2 == -1) {\n    piVar5 = __errno_location();\n    if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar3 = 0;\n  }\n  else {\n    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);\n    if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);\n    if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }\nLAB_00013435:\n    close(iVar2);\n    iVar2 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar3);\n  context_free(local_94);\n  freecon(scon);\n  freecon(tcon);\nLAB_000132e4:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar2;\n}\n\n" comment (function_definition "int __regparm3 restorecon_private(char *path,_Bool local)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  char *scon;\n  char *tcon;\n  stat sb;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  scon = (char *)0x0;\n  tcon = (char *)0x0;\n  if (local) {\n    iVar2 = getfscreatecon(&tcon);\n    if (iVar2 < 0) {\n      iVar2 = -1;\n    }\n    else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }\n    goto LAB_000132e4;\n  }\n  iVar2 = open64(path,0x20000);\n  if (iVar2 == -1) {\n    piVar5 = __errno_location();\n    if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar3 = 0;\n  }\n  else {\n    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);\n    if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);\n    if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }\nLAB_00013435:\n    close(iVar2);\n    iVar2 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar3);\n  context_free(local_94);\n  freecon(scon);\n  freecon(tcon);\nLAB_000132e4:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "restorecon_private(char *path,_Bool local)" identifier (parameter_list "(char *path,_Bool local)" ( (parameter_declaration "char *path" primitive_type (pointer_declarator "*path" * identifier)) , (parameter_declaration "_Bool local" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  char *scon;\n  char *tcon;\n  stat sb;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  scon = (char *)0x0;\n  tcon = (char *)0x0;\n  if (local) {\n    iVar2 = getfscreatecon(&tcon);\n    if (iVar2 < 0) {\n      iVar2 = -1;\n    }\n    else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }\n    goto LAB_000132e4;\n  }\n  iVar2 = open64(path,0x20000);\n  if (iVar2 == -1) {\n    piVar5 = __errno_location();\n    if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar3 = 0;\n  }\n  else {\n    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);\n    if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);\n    if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }\nLAB_00013435:\n    close(iVar2);\n    iVar2 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar3);\n  context_free(local_94);\n  freecon(scon);\n  freecon(tcon);\nLAB_000132e4:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "char *scon;" primitive_type (pointer_declarator "*scon" * identifier) ;) (declaration "char *tcon;" primitive_type (pointer_declarator "*tcon" * identifier) ;) (declaration "stat sb;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "scon = (char *)0x0;" (assignment_expression "scon = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "tcon = (char *)0x0;" (assignment_expression "tcon = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local) {\n    iVar2 = getfscreatecon(&tcon);\n    if (iVar2 < 0) {\n      iVar2 = -1;\n    }\n    else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }\n    goto LAB_000132e4;\n  }" if (parenthesized_expression "(local)" ( identifier )) (compound_statement "{\n    iVar2 = getfscreatecon(&tcon);\n    if (iVar2 < 0) {\n      iVar2 = -1;\n    }\n    else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }\n    goto LAB_000132e4;\n  }" { (expression_statement "iVar2 = getfscreatecon(&tcon);" (assignment_expression "iVar2 = getfscreatecon(&tcon)" identifier = (call_expression "getfscreatecon(&tcon)" identifier (argument_list "(&tcon)" ( (pointer_expression "&tcon" & identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n      iVar2 = -1;\n    }\n    else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }" else (if_statement "if (tcon == (char *)0x0) {\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }\n    else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }" if (parenthesized_expression "(tcon == (char *)0x0)" ( (binary_expression "tcon == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar5 = __errno_location();\n      iVar2 = -1;\n      *piVar5 = 0x3d;\n    }" { (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (expression_statement "*piVar5 = 0x3d;" (assignment_expression "*piVar5 = 0x3d" (pointer_expression "*piVar5" * identifier) = number_literal) ;) }) (else_clause "else {\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }" else (compound_statement "{\n      iVar2 = lsetfilecon(path,tcon);\n      freecon(tcon);\n    }" { (expression_statement "iVar2 = lsetfilecon(path,tcon);" (assignment_expression "iVar2 = lsetfilecon(path,tcon)" identifier = (call_expression "lsetfilecon(path,tcon)" identifier (argument_list "(path,tcon)" ( identifier , identifier )))) ;) (expression_statement "freecon(tcon);" (call_expression "freecon(tcon)" identifier (argument_list "(tcon)" ( identifier ))) ;) }))))) (goto_statement "goto LAB_000132e4;" goto statement_identifier ;) })) (expression_statement "iVar2 = open64(path,0x20000);" (assignment_expression "iVar2 = open64(path,0x20000)" identifier = (call_expression "open64(path,0x20000)" identifier (argument_list "(path,0x20000)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == -1) {\n    piVar5 = __errno_location();\n    if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar3 = 0;\n  }\n  else {\n    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);\n    if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);\n    if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }\nLAB_00013435:\n    close(iVar2);\n    iVar2 = local_90;\n  }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n    piVar5 = __errno_location();\n    if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar3 = 0;\n  }" { (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))\n    goto LAB_0001333f;" if (parenthesized_expression "((*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3))" ( (binary_expression "(*piVar5 == 0x28) && (iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3)" (parenthesized_expression "(*piVar5 == 0x28)" ( (binary_expression "*piVar5 == 0x28" (pointer_expression "*piVar5" * identifier) == number_literal) )) && (parenthesized_expression "(iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3)" ( (comma_expression "iVar3 = __lxstat64(3,path,(stat64 *)&sb), -1 < iVar3" (assignment_expression "iVar3 = __lxstat64(3,path,(stat64 *)&sb)" identifier = (call_expression "__lxstat64(3,path,(stat64 *)&sb)" identifier (argument_list "(3,path,(stat64 *)&sb)" ( number_literal , identifier , (cast_expression "(stat64 *)&sb" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sb" & identifier)) )))) , (binary_expression "-1 < iVar3" number_literal < identifier)) ))) )) (goto_statement "goto LAB_0001333f;" goto statement_identifier ;)) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);\n    if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);\n    if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }\nLAB_00013435:\n    close(iVar2);\n    iVar2 = local_90;\n  }" else (compound_statement "{\n    iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);\n    if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);\n    if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }\nLAB_00013435:\n    close(iVar2);\n    iVar2 = local_90;\n  }" { (expression_statement "iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb);" (assignment_expression "iVar3 = __fxstat64(3,iVar2,(stat64 *)&sb)" identifier = (call_expression "__fxstat64(3,iVar2,(stat64 *)&sb)" identifier (argument_list "(3,iVar2,(stat64 *)&sb)" ( number_literal , identifier , (cast_expression "(stat64 *)&sb" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sb" & identifier)) )))) ;) (if_statement "if (iVar3 < 0) {\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      local_94 = 0;\n      iVar3 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (labeled_statement "LAB_0001333f:\n    iVar3 = matchpathcon(path,sb.st_mode,&scon);" statement_identifier : (expression_statement "iVar3 = matchpathcon(path,sb.st_mode,&scon);" (assignment_expression "iVar3 = matchpathcon(path,sb.st_mode,&scon)" identifier = (call_expression "matchpathcon(path,sb.st_mode,&scon)" identifier (argument_list "(path,sb.st_mode,&scon)" ( identifier , (field_expression "sb.st_mode" identifier . field_identifier) , (pointer_expression "&scon" & identifier) )))) ;)) (if_statement "if (iVar3 < 0) {\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar5 = __errno_location();\n      if (*piVar5 != 2) goto LAB_0001341e;\n      *piVar5 = 0x3d;\n      iVar3 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }" { (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar5 != 2) goto LAB_0001341e;" if (parenthesized_expression "(*piVar5 != 2)" ( (binary_expression "*piVar5 != 2" (pointer_expression "*piVar5" * identifier) != number_literal) )) (goto_statement "goto LAB_0001341e;" goto statement_identifier ;)) (expression_statement "*piVar5 = 0x3d;" (assignment_expression "*piVar5 = 0x3d" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00013428:\n      if (iVar2 == -1) goto LAB_00013445;" statement_identifier : (if_statement "if (iVar2 == -1) goto LAB_00013445;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00013445;" goto statement_identifier ;))) (labeled_statement "LAB_0001342d:\n      local_90 = -1;" statement_identifier : (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }" else (compound_statement "{\n      iVar3 = context_new(scon);\n      if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar4 = rpl_lgetfilecon(path,&tcon);\n      local_94 = 0;\n      if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar4 = context_str(local_94);\n      if (iVar4 == 0) goto LAB_00013428;\n      if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar2,iVar4);\n    }" { (expression_statement "iVar3 = context_new(scon);" (assignment_expression "iVar3 = context_new(scon)" identifier = (call_expression "context_new(scon)" identifier (argument_list "(scon)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001341e:\n        local_94 = 0;\n        iVar3 = 0;\n        goto LAB_00013428;\n      }" { (labeled_statement "LAB_0001341e:\n        local_94 = 0;" statement_identifier : (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013428;" goto statement_identifier ;) })) (if_statement "if (iVar2 != -1) {\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n        iVar4 = rpl_fgetfilecon(iVar2,&tcon);\n        if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(tcon);\n        if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" { (expression_statement "iVar4 = rpl_fgetfilecon(iVar2,&tcon);" (assignment_expression "iVar4 = rpl_fgetfilecon(iVar2,&tcon)" identifier = (call_expression "rpl_fgetfilecon(iVar2,&tcon)" identifier (argument_list "(iVar2,&tcon)" ( identifier , (pointer_expression "&tcon" & identifier) )))) ;) (if_statement "if (iVar4 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (expression_statement "local_94 = context_new(tcon);" (assignment_expression "local_94 = context_new(tcon)" identifier = (call_expression "context_new(tcon)" identifier (argument_list "(tcon)" ( identifier )))) ;) (if_statement "if ((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)) {\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" if (parenthesized_expression "((local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0))" ( (binary_expression "(local_94 != 0) && (iVar4 = context_type_get(iVar3), iVar4 != 0)" (parenthesized_expression "(local_94 != 0)" ( (binary_expression "local_94 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = context_type_get(iVar3), iVar4 != 0)" ( (comma_expression "iVar4 = context_type_get(iVar3), iVar4 != 0" (assignment_expression "iVar4 = context_type_get(iVar3)" identifier = (call_expression "context_type_get(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar4 = context_type_set(local_94,iVar4);\n          local_90 = -1;\n          if (iVar4 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" { (expression_statement "iVar4 = context_type_set(local_94,iVar4);" (assignment_expression "iVar4 = context_type_set(local_94,iVar4)" identifier = (call_expression "context_type_set(local_94,iVar4)" identifier (argument_list "(local_94,iVar4)" ( identifier , identifier )))) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) goto LAB_000133da;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000133da;" goto statement_identifier ;)) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001342d;" goto statement_identifier ;) })) (expression_statement "iVar4 = rpl_lgetfilecon(path,&tcon);" (assignment_expression "iVar4 = rpl_lgetfilecon(path,&tcon)" identifier = (call_expression "rpl_lgetfilecon(path,&tcon)" identifier (argument_list "(path,&tcon)" ( identifier , (pointer_expression "&tcon" & identifier) )))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (if_statement "if ((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)) goto LAB_00013445;" if (parenthesized_expression "((((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0))" ( (binary_expression "(((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)) ||\n         (iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)" (parenthesized_expression "(((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0))" ( (binary_expression "((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)) ||\n          (iVar4 = context_type_get(iVar3), iVar4 == 0)" (parenthesized_expression "((iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0))" ( (binary_expression "(iVar4 < 0) || (local_94 = context_new(tcon), local_94 == 0)" (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) || (parenthesized_expression "(local_94 = context_new(tcon), local_94 == 0)" ( (comma_expression "local_94 = context_new(tcon), local_94 == 0" (assignment_expression "local_94 = context_new(tcon)" identifier = (call_expression "context_new(tcon)" identifier (argument_list "(tcon)" ( identifier )))) , (binary_expression "local_94 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar4 = context_type_get(iVar3), iVar4 == 0)" ( (comma_expression "iVar4 = context_type_get(iVar3), iVar4 == 0" (assignment_expression "iVar4 = context_type_get(iVar3)" identifier = (call_expression "context_type_get(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar4 = context_type_set(local_94,iVar4), iVar4 != 0)" ( (comma_expression "iVar4 = context_type_set(local_94,iVar4), iVar4 != 0" (assignment_expression "iVar4 = context_type_set(local_94,iVar4)" identifier = (call_expression "context_type_set(local_94,iVar4)" identifier (argument_list "(local_94,iVar4)" ( identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00013445;" goto statement_identifier ;)) (labeled_statement "LAB_000133da:\n      iVar4 = context_str(local_94);" statement_identifier : (expression_statement "iVar4 = context_str(local_94);" (assignment_expression "iVar4 = context_str(local_94)" identifier = (call_expression "context_str(local_94)" identifier (argument_list "(local_94)" ( identifier )))) ;)) (if_statement "if (iVar4 == 0) goto LAB_00013428;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013428;" goto statement_identifier ;)) (if_statement "if (iVar2 == -1) {\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n        iVar2 = lsetfilecon(path,iVar4);\n        goto LAB_00013445;\n      }" { (expression_statement "iVar2 = lsetfilecon(path,iVar4);" (assignment_expression "iVar2 = lsetfilecon(path,iVar4)" identifier = (call_expression "lsetfilecon(path,iVar4)" identifier (argument_list "(path,iVar4)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00013445;" goto statement_identifier ;) })) (expression_statement "local_90 = fsetfilecon(iVar2,iVar4);" (assignment_expression "local_90 = fsetfilecon(iVar2,iVar4)" identifier = (call_expression "fsetfilecon(iVar2,iVar4)" identifier (argument_list "(iVar2,iVar4)" ( identifier , identifier )))) ;) }))) (labeled_statement "LAB_00013435:\n    close(iVar2);" statement_identifier : (expression_statement "close(iVar2);" (call_expression "close(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;)) (expression_statement "iVar2 = local_90;" (assignment_expression "iVar2 = local_90" identifier = identifier) ;) }))) (labeled_statement "LAB_00013445:\n  context_free(iVar3);" statement_identifier : (expression_statement "context_free(iVar3);" (call_expression "context_free(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;)) (expression_statement "context_free(local_94);" (call_expression "context_free(local_94)" identifier (argument_list "(local_94)" ( identifier ))) ;) (expression_statement "freecon(scon);" (call_expression "freecon(scon)" identifier (argument_list "(scon)" ( identifier ))) ;) (expression_statement "freecon(tcon);" (call_expression "freecon(tcon)" identifier (argument_list "(tcon)" ( identifier ))) ;) (labeled_statement "LAB_000132e4:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_00013270(char *param_1,char param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }\n  return iVar1;\n}\n\n" (function_definition "int __regparm3 FUN_00013270(char *param_1,char param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }\n  return iVar1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00013270(char *param_1,char param_2)" identifier (parameter_list "(char *param_1,char param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "stat64 local_80;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1327b;" (assignment_expression "uStack_14 = 0x1327b" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (if_statement "if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }" { (expression_statement "iVar1 = getfscreatecon(&local_84);" (assignment_expression "iVar1 = getfscreatecon(&local_84)" identifier = (call_expression "getfscreatecon(&local_84)" identifier (argument_list "(&local_84)" ( (pointer_expression "&local_84" & identifier) )))) ;) (if_statement "if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = -1;\n    }" { (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) }) (else_clause "else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" else (if_statement "if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) (expression_statement "*piVar4 = 0x3d;" (assignment_expression "*piVar4 = 0x3d" (pointer_expression "*piVar4" * identifier) = number_literal) ;) }) (else_clause "else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" else (compound_statement "{\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" { (expression_statement "iVar1 = lsetfilecon(param_1,local_84);" (assignment_expression "iVar1 = lsetfilecon(param_1,local_84)" identifier = (call_expression "lsetfilecon(param_1,local_84)" identifier (argument_list "(param_1,local_84)" ( identifier , identifier )))) ;) (expression_statement "freecon(local_84);" (call_expression "freecon(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) }))))) (goto_statement "goto LAB_000132e4;" goto statement_identifier ;) })) (expression_statement "iVar1 = open64(param_1,0x20000);" (assignment_expression "iVar1 = open64(param_1,0x20000)" identifier = (call_expression "open64(param_1,0x20000)" identifier (argument_list "(param_1,0x20000)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;" if (parenthesized_expression "((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))" ( (binary_expression "(*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2)" (parenthesized_expression "(*piVar4 == 0x28)" ( (binary_expression "*piVar4 == 0x28" (pointer_expression "*piVar4" * identifier) == number_literal) )) && (parenthesized_expression "(iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2)" ( (comma_expression "iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2" (assignment_expression "iVar2 = __lxstat64(3,param_1,&local_80)" identifier = (call_expression "__lxstat64(3,param_1,&local_80)" identifier (argument_list "(3,param_1,&local_80)" ( number_literal , identifier , (pointer_expression "&local_80" & identifier) )))) , (binary_expression "-1 < iVar2" number_literal < identifier)) ))) )) (goto_statement "goto LAB_0001333f;" goto statement_identifier ;)) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" else (compound_statement "{\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" { (expression_statement "iVar2 = __fxstat64(3,iVar1,&local_80);" (assignment_expression "iVar2 = __fxstat64(3,iVar1,&local_80)" identifier = (call_expression "__fxstat64(3,iVar1,&local_80)" identifier (argument_list "(3,iVar1,&local_80)" ( number_literal , identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (labeled_statement "LAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);" statement_identifier : (expression_statement "iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);" (assignment_expression "iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88)" identifier = (call_expression "matchpathcon(param_1,local_80.st_mode,&local_88)" identifier (argument_list "(param_1,local_80.st_mode,&local_88)" ( identifier , (field_expression "local_80.st_mode" identifier . field_identifier) , (pointer_expression "&local_88" & identifier) )))) ;)) (if_statement "if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 != 2) goto LAB_0001341e;" if (parenthesized_expression "(*piVar4 != 2)" ( (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_0001341e;" goto statement_identifier ;)) (expression_statement "*piVar4 = 0x3d;" (assignment_expression "*piVar4 = 0x3d" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;" statement_identifier : (if_statement "if (iVar1 == -1) goto LAB_00013445;" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00013445;" goto statement_identifier ;))) (labeled_statement "LAB_0001342d:\n      local_90 = -1;" statement_identifier : (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" else (compound_statement "{\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" { (expression_statement "iVar2 = context_new(local_88);" (assignment_expression "iVar2 = context_new(local_88)" identifier = (call_expression "context_new(local_88)" identifier (argument_list "(local_88)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }" { (labeled_statement "LAB_0001341e:\n        local_94 = 0;" statement_identifier : (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;)) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013428;" goto statement_identifier ;) })) (if_statement "if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" { (expression_statement "iVar3 = FUN_0001cc60(iVar1,&local_84);" (assignment_expression "iVar3 = FUN_0001cc60(iVar1,&local_84)" identifier = (call_expression "FUN_0001cc60(iVar1,&local_84)" identifier (argument_list "(iVar1,&local_84)" ( identifier , (pointer_expression "&local_84" & identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (expression_statement "local_94 = context_new(local_84);" (assignment_expression "local_94 = context_new(local_84)" identifier = (call_expression "context_new(local_84)" identifier (argument_list "(local_84)" ( identifier )))) ;) (if_statement "if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" if (parenthesized_expression "((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0))" ( (binary_expression "(local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)" (parenthesized_expression "(local_94 != 0)" ( (binary_expression "local_94 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = context_type_get(iVar2), iVar3 != 0)" ( (comma_expression "iVar3 = context_type_get(iVar2), iVar3 != 0" (assignment_expression "iVar3 = context_type_get(iVar2)" identifier = (call_expression "context_type_get(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" { (expression_statement "iVar3 = context_type_set(local_94,iVar3);" (assignment_expression "iVar3 = context_type_set(local_94,iVar3)" identifier = (call_expression "context_type_set(local_94,iVar3)" identifier (argument_list "(local_94,iVar3)" ( identifier , identifier )))) ;) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_000133da;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000133da;" goto statement_identifier ;)) (goto_statement "goto LAB_00013435;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001342d;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_0001cbc0(param_1,&local_84);" (assignment_expression "iVar3 = FUN_0001cbc0(param_1,&local_84)" identifier = (call_expression "FUN_0001cbc0(param_1,&local_84)" identifier (argument_list "(param_1,&local_84)" ( identifier , (pointer_expression "&local_84" & identifier) )))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (if_statement "if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;" if (parenthesized_expression "((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0))" ( (binary_expression "(((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)" (parenthesized_expression "(((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0))" ( (binary_expression "((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)" (parenthesized_expression "((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0))" ( (binary_expression "(iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)" (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) || (parenthesized_expression "(local_94 = context_new(local_84), local_94 == 0)" ( (comma_expression "local_94 = context_new(local_84), local_94 == 0" (assignment_expression "local_94 = context_new(local_84)" identifier = (call_expression "context_new(local_84)" identifier (argument_list "(local_84)" ( identifier )))) , (binary_expression "local_94 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar3 = context_type_get(iVar2), iVar3 == 0)" ( (comma_expression "iVar3 = context_type_get(iVar2), iVar3 == 0" (assignment_expression "iVar3 = context_type_get(iVar2)" identifier = (call_expression "context_type_get(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)" ( (comma_expression "iVar3 = context_type_set(local_94,iVar3), iVar3 != 0" (assignment_expression "iVar3 = context_type_set(local_94,iVar3)" identifier = (call_expression "context_type_set(local_94,iVar3)" identifier (argument_list "(local_94,iVar3)" ( identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00013445;" goto statement_identifier ;)) (labeled_statement "LAB_000133da:\n      iVar3 = context_str(local_94);" statement_identifier : (expression_statement "iVar3 = context_str(local_94);" (assignment_expression "iVar3 = context_str(local_94)" identifier = (call_expression "context_str(local_94)" identifier (argument_list "(local_94)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00013428;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013428;" goto statement_identifier ;)) (if_statement "if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }" { (expression_statement "iVar1 = lsetfilecon(param_1,iVar3);" (assignment_expression "iVar1 = lsetfilecon(param_1,iVar3)" identifier = (call_expression "lsetfilecon(param_1,iVar3)" identifier (argument_list "(param_1,iVar3)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00013445;" goto statement_identifier ;) })) (expression_statement "local_90 = fsetfilecon(iVar1,iVar3);" (assignment_expression "local_90 = fsetfilecon(iVar1,iVar3)" identifier = (call_expression "fsetfilecon(iVar1,iVar3)" identifier (argument_list "(iVar1,iVar3)" ( identifier , identifier )))) ;) }))) (labeled_statement "LAB_00013435:\n    close(iVar1);" statement_identifier : (expression_statement "close(iVar1);" (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;)) (expression_statement "iVar1 = local_90;" (assignment_expression "iVar1 = local_90" identifier = identifier) ;) }))) (labeled_statement "LAB_00013445:\n  context_free(iVar2);" statement_identifier : (expression_statement "context_free(iVar2);" (call_expression "context_free(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;)) (expression_statement "context_free(local_94);" (call_expression "context_free(local_94)" identifier (argument_list "(local_94)" ( identifier ))) ;) (expression_statement "freecon(local_88);" (call_expression "freecon(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) (expression_statement "freecon(local_84);" (call_expression "freecon(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (labeled_statement "LAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00021780();\n  }" { (expression_statement "FUN_00021780();" (call_expression "FUN_00021780()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) , (binary_expression LIT < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) , (pointer_expression & IDENT) )))) ;)) (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 ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_00013270(char *param_1,char param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }\n  return iVar1;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00013270(char *param_1,char param_2)" (identifier "FUN_00013270") (parameter_list "(char *param_1,char param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char param_2" (primitive_type "char") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int in_GS_OFFSET;\n  int local_94;\n  int local_90;\n  undefined4 local_88;\n  int local_84;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1327b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_88 = 0;\n  local_84 = 0;\n  if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }\n  iVar1 = open64(param_1,0x20000);\n  if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }\nLAB_00013445:\n  context_free(iVar2);\n  context_free(local_94);\n  freecon(local_88);\n  freecon(local_84);\nLAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "stat64 local_80;" (type_identifier "stat64") (identifier "local_80") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1327b;" (assignment_expression "uStack_14 = 0x1327b" (identifier "uStack_14") (= "=") (number_literal "0x1327b")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 != '\0') {\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }" (if "if") (parenthesized_expression "(param_2 != '\0')" (( "(") (binary_expression "param_2 != '\0'" (identifier "param_2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar1 = getfscreatecon(&local_84);\n    if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }\n    goto LAB_000132e4;\n  }" ({ "{") (expression_statement "iVar1 = getfscreatecon(&local_84);" (assignment_expression "iVar1 = getfscreatecon(&local_84)" (identifier "iVar1") (= "=") (call_expression "getfscreatecon(&local_84)" (identifier "getfscreatecon") (argument_list "(&local_84)" (( "(") (pointer_expression "&local_84" (& "&") (identifier "local_84")) () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n      iVar1 = -1;\n    }\n    else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = -1;\n    }" ({ "{") (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" (identifier "iVar1") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" (else "else") (if_statement "if (local_84 == 0) {\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }\n    else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" (if "if") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar4 = __errno_location();\n      iVar1 = -1;\n      *piVar4 = 0x3d;\n    }" ({ "{") (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" (identifier "piVar4") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" (identifier "iVar1") (= "=") (number_literal "-1")) (; ";")) (expression_statement "*piVar4 = 0x3d;" (assignment_expression "*piVar4 = 0x3d" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0x3d")) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" (else "else") (compound_statement "{\n      iVar1 = lsetfilecon(param_1,local_84);\n      freecon(local_84);\n    }" ({ "{") (expression_statement "iVar1 = lsetfilecon(param_1,local_84);" (assignment_expression "iVar1 = lsetfilecon(param_1,local_84)" (identifier "iVar1") (= "=") (call_expression "lsetfilecon(param_1,local_84)" (identifier "lsetfilecon") (argument_list "(param_1,local_84)" (( "(") (identifier "param_1") (, ",") (identifier "local_84") () ")")))) (; ";")) (expression_statement "freecon(local_84);" (call_expression "freecon(local_84)" (identifier "freecon") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")"))) (; ";")) (} "}")))))) (goto_statement "goto LAB_000132e4;" (goto "goto") (statement_identifier "LAB_000132e4") (; ";")) (} "}"))) (expression_statement "iVar1 = open64(param_1,0x20000);" (assignment_expression "iVar1 = open64(param_1,0x20000)" (identifier "iVar1") (= "=") (call_expression "open64(param_1,0x20000)" (identifier "open64") (argument_list "(param_1,0x20000)" (( "(") (identifier "param_1") (, ",") (number_literal "0x20000") () ")")))) (; ";")) (if_statement "if (iVar1 == -1) {\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\n  }\n  else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" (if "if") (parenthesized_expression "(iVar1 == -1)" (( "(") (binary_expression "iVar1 == -1" (identifier "iVar1") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    piVar4 = __errno_location();\n    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;\n    local_94 = 0;\n    iVar2 = 0;\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 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))\n    goto LAB_0001333f;" (if "if") (parenthesized_expression "((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))" (( "(") (binary_expression "(*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2)" (parenthesized_expression "(*piVar4 == 0x28)" (( "(") (binary_expression "*piVar4 == 0x28" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "0x28")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2)" (( "(") (comma_expression "iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2" (assignment_expression "iVar2 = __lxstat64(3,param_1,&local_80)" (identifier "iVar2") (= "=") (call_expression "__lxstat64(3,param_1,&local_80)" (identifier "__lxstat64") (argument_list "(3,param_1,&local_80)" (( "(") (number_literal "3") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (, ",") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2"))) () ")"))) () ")")) (goto_statement "goto LAB_0001333f;" (goto "goto") (statement_identifier "LAB_0001333f") (; ";"))) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" (else "else") (compound_statement "{\n    iVar2 = __fxstat64(3,iVar1,&local_80);\n    if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }\nLAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);\n    if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }\nLAB_00013435:\n    close(iVar1);\n    iVar1 = local_90;\n  }" ({ "{") (expression_statement "iVar2 = __fxstat64(3,iVar1,&local_80);" (assignment_expression "iVar2 = __fxstat64(3,iVar1,&local_80)" (identifier "iVar2") (= "=") (call_expression "__fxstat64(3,iVar1,&local_80)" (identifier "__fxstat64") (argument_list "(3,iVar1,&local_80)" (( "(") (number_literal "3") (, ",") (identifier "iVar1") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      local_94 = 0;\n      iVar2 = 0;\n      local_90 = -1;\n      goto LAB_00013435;\n    }" ({ "{") (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" (identifier "local_90") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00013435;" (goto "goto") (statement_identifier "LAB_00013435") (; ";")) (} "}"))) (labeled_statement "LAB_0001333f:\n    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);" (statement_identifier "LAB_0001333f") (: ":") (expression_statement "iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);" (assignment_expression "iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88)" (identifier "iVar2") (= "=") (call_expression "matchpathcon(param_1,local_80.st_mode,&local_88)" (identifier "matchpathcon") (argument_list "(param_1,local_80.st_mode,&local_88)" (( "(") (identifier "param_1") (, ",") (field_expression "local_80.st_mode" (identifier "local_80") (. ".") (field_identifier "st_mode")) (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")")))) (; ";"))) (if_statement "if (iVar2 < 0) {\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\n    }\n    else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar4 = __errno_location();\n      if (*piVar4 != 2) goto LAB_0001341e;\n      *piVar4 = 0x3d;\n      iVar2 = 0;\n      local_94 = 0;\nLAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;\nLAB_0001342d:\n      local_90 = -1;\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 != 2) goto LAB_0001341e;" (if "if") (parenthesized_expression "(*piVar4 != 2)" (( "(") (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_0001341e;" (goto "goto") (statement_identifier "LAB_0001341e") (; ";"))) (expression_statement "*piVar4 = 0x3d;" (assignment_expression "*piVar4 = 0x3d" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0x3d")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00013428:\n      if (iVar1 == -1) goto LAB_00013445;" (statement_identifier "LAB_00013428") (: ":") (if_statement "if (iVar1 == -1) goto LAB_00013445;" (if "if") (parenthesized_expression "(iVar1 == -1)" (( "(") (binary_expression "iVar1 == -1" (identifier "iVar1") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00013445;" (goto "goto") (statement_identifier "LAB_00013445") (; ";")))) (labeled_statement "LAB_0001342d:\n      local_90 = -1;" (statement_identifier "LAB_0001342d") (: ":") (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" (identifier "local_90") (= "=") (number_literal "-1")) (; ";"))) (} "}")) (else_clause "else {\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" (else "else") (compound_statement "{\n      iVar2 = context_new(local_88);\n      if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }\n      if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }\n      iVar3 = FUN_0001cbc0(param_1,&local_84);\n      local_94 = 0;\n      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;\nLAB_000133da:\n      iVar3 = context_str(local_94);\n      if (iVar3 == 0) goto LAB_00013428;\n      if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }\n      local_90 = fsetfilecon(iVar1,iVar3);\n    }" ({ "{") (expression_statement "iVar2 = context_new(local_88);" (assignment_expression "iVar2 = context_new(local_88)" (identifier "iVar2") (= "=") (call_expression "context_new(local_88)" (identifier "context_new") (argument_list "(local_88)" (( "(") (identifier "local_88") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001341e:\n        local_94 = 0;\n        iVar2 = 0;\n        goto LAB_00013428;\n      }" ({ "{") (labeled_statement "LAB_0001341e:\n        local_94 = 0;" (statement_identifier "LAB_0001341e") (: ":") (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00013428;" (goto "goto") (statement_identifier "LAB_00013428") (; ";")) (} "}"))) (if_statement "if (iVar1 != -1) {\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" (if "if") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        iVar3 = FUN_0001cc60(iVar1,&local_84);\n        if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }\n        local_94 = context_new(local_84);\n        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }\n        goto LAB_0001342d;\n      }" ({ "{") (expression_statement "iVar3 = FUN_0001cc60(iVar1,&local_84);" (assignment_expression "iVar3 = FUN_0001cc60(iVar1,&local_84)" (identifier "iVar3") (= "=") (call_expression "FUN_0001cc60(iVar1,&local_84)" (identifier "FUN_0001cc60") (argument_list "(iVar1,&local_84)" (( "(") (identifier "iVar1") (, ",") (pointer_expression "&local_84" (& "&") (identifier "local_84")) () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          local_94 = 0;\n          local_90 = -1;\n          goto LAB_00013435;\n        }" ({ "{") (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" (identifier "local_90") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00013435;" (goto "goto") (statement_identifier "LAB_00013435") (; ";")) (} "}"))) (expression_statement "local_94 = context_new(local_84);" (assignment_expression "local_94 = context_new(local_84)" (identifier "local_94") (= "=") (call_expression "context_new(local_84)" (identifier "context_new") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")")))) (; ";")) (if_statement "if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" (if "if") (parenthesized_expression "((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0))" (( "(") (binary_expression "(local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)" (parenthesized_expression "(local_94 != 0)" (( "(") (binary_expression "local_94 != 0" (identifier "local_94") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = context_type_get(iVar2), iVar3 != 0)" (( "(") (comma_expression "iVar3 = context_type_get(iVar2), iVar3 != 0" (assignment_expression "iVar3 = context_type_get(iVar2)" (identifier "iVar3") (= "=") (call_expression "context_type_get(iVar2)" (identifier "context_type_get") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          iVar3 = context_type_set(local_94,iVar3);\n          local_90 = -1;\n          if (iVar3 == 0) goto LAB_000133da;\n          goto LAB_00013435;\n        }" ({ "{") (expression_statement "iVar3 = context_type_set(local_94,iVar3);" (assignment_expression "iVar3 = context_type_set(local_94,iVar3)" (identifier "iVar3") (= "=") (call_expression "context_type_set(local_94,iVar3)" (identifier "context_type_set") (argument_list "(local_94,iVar3)" (( "(") (identifier "local_94") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "local_90 = -1;" (assignment_expression "local_90 = -1" (identifier "local_90") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_000133da;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000133da;" (goto "goto") (statement_identifier "LAB_000133da") (; ";"))) (goto_statement "goto LAB_00013435;" (goto "goto") (statement_identifier "LAB_00013435") (; ";")) (} "}"))) (goto_statement "goto LAB_0001342d;" (goto "goto") (statement_identifier "LAB_0001342d") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_0001cbc0(param_1,&local_84);" (assignment_expression "iVar3 = FUN_0001cbc0(param_1,&local_84)" (identifier "iVar3") (= "=") (call_expression "FUN_0001cbc0(param_1,&local_84)" (identifier "FUN_0001cbc0") (argument_list "(param_1,&local_84)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_84" (& "&") (identifier "local_84")) () ")")))) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;" (if "if") (parenthesized_expression "((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0))" (( "(") (binary_expression "(((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||\n         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)" (parenthesized_expression "(((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0))" (( "(") (binary_expression "((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||\n          (iVar3 = context_type_get(iVar2), iVar3 == 0)" (parenthesized_expression "((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0))" (( "(") (binary_expression "(iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)" (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_94 = context_new(local_84), local_94 == 0)" (( "(") (comma_expression "local_94 = context_new(local_84), local_94 == 0" (assignment_expression "local_94 = context_new(local_84)" (identifier "local_94") (= "=") (call_expression "context_new(local_84)" (identifier "context_new") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")")))) (, ",") (binary_expression "local_94 == 0" (identifier "local_94") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = context_type_get(iVar2), iVar3 == 0)" (( "(") (comma_expression "iVar3 = context_type_get(iVar2), iVar3 == 0" (assignment_expression "iVar3 = context_type_get(iVar2)" (identifier "iVar3") (= "=") (call_expression "context_type_get(iVar2)" (identifier "context_type_get") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)" (( "(") (comma_expression "iVar3 = context_type_set(local_94,iVar3), iVar3 != 0" (assignment_expression "iVar3 = context_type_set(local_94,iVar3)" (identifier "iVar3") (= "=") (call_expression "context_type_set(local_94,iVar3)" (identifier "context_type_set") (argument_list "(local_94,iVar3)" (( "(") (identifier "local_94") (, ",") (identifier "iVar3") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00013445;" (goto "goto") (statement_identifier "LAB_00013445") (; ";"))) (labeled_statement "LAB_000133da:\n      iVar3 = context_str(local_94);" (statement_identifier "LAB_000133da") (: ":") (expression_statement "iVar3 = context_str(local_94);" (assignment_expression "iVar3 = context_str(local_94)" (identifier "iVar3") (= "=") (call_expression "context_str(local_94)" (identifier "context_str") (argument_list "(local_94)" (( "(") (identifier "local_94") () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_00013428;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00013428;" (goto "goto") (statement_identifier "LAB_00013428") (; ";"))) (if_statement "if (iVar1 == -1) {\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }" (if "if") (parenthesized_expression "(iVar1 == -1)" (( "(") (binary_expression "iVar1 == -1" (identifier "iVar1") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        iVar1 = lsetfilecon(param_1,iVar3);\n        goto LAB_00013445;\n      }" ({ "{") (expression_statement "iVar1 = lsetfilecon(param_1,iVar3);" (assignment_expression "iVar1 = lsetfilecon(param_1,iVar3)" (identifier "iVar1") (= "=") (call_expression "lsetfilecon(param_1,iVar3)" (identifier "lsetfilecon") (argument_list "(param_1,iVar3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar3") () ")")))) (; ";")) (goto_statement "goto LAB_00013445;" (goto "goto") (statement_identifier "LAB_00013445") (; ";")) (} "}"))) (expression_statement "local_90 = fsetfilecon(iVar1,iVar3);" (assignment_expression "local_90 = fsetfilecon(iVar1,iVar3)" (identifier "local_90") (= "=") (call_expression "fsetfilecon(iVar1,iVar3)" (identifier "fsetfilecon") (argument_list "(iVar1,iVar3)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar3") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_00013435:\n    close(iVar1);" (statement_identifier "LAB_00013435") (: ":") (expression_statement "close(iVar1);" (call_expression "close(iVar1)" (identifier "close") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";"))) (expression_statement "iVar1 = local_90;" (assignment_expression "iVar1 = local_90" (identifier "iVar1") (= "=") (identifier "local_90")) (; ";")) (} "}")))) (labeled_statement "LAB_00013445:\n  context_free(iVar2);" (statement_identifier "LAB_00013445") (: ":") (expression_statement "context_free(iVar2);" (call_expression "context_free(iVar2)" (identifier "context_free") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";"))) (expression_statement "context_free(local_94);" (call_expression "context_free(local_94)" (identifier "context_free") (argument_list "(local_94)" (( "(") (identifier "local_94") () ")"))) (; ";")) (expression_statement "freecon(local_88);" (call_expression "freecon(local_88)" (identifier "freecon") (argument_list "(local_88)" (( "(") (identifier "local_88") () ")"))) (; ";")) (expression_statement "freecon(local_84);" (call_expression "freecon(local_84)" (identifier "freecon") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")"))) (; ";")) (labeled_statement "LAB_000132e4:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }" (statement_identifier "LAB_000132e4") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00021780();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00021780();\n  }" ({ "{") (expression_statement "FUN_00021780();" (call_expression "FUN_00021780()" (identifier "FUN_00021780") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

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

int __regparm3 function_1(char *path,type_1 local)

{
  int var_24;
  int var_3;
  int var_10;
  int var_15;
  int *piVar5;
  int var_1;
  int var_16;
  int local_90;
  char *scon;
  char *var_4;
  type_2 sb;
  
  var_24 = *(int *)(var_1 + 0x14);
  scon = (char *)0x0;
  var_4 = (char *)0x0;
  if (local) {
    var_3 = var_2(&var_4);
    if (var_3 < 0) {
      var_3 = -1;
    }
    else if (var_4 == (char *)0x0) {
      piVar5 = var_5();
      var_3 = -1;
      *piVar5 = 0x3d;
    }
    else {
      var_3 = var_6(path,var_4);
      var_7(var_4);
    }
    goto LAB_000132e4;
  }
  var_3 = var_8(path,0x20000);
  if (var_3 == -1) {
    piVar5 = var_5();
    if ((*piVar5 == 0x28) && (var_10 = var_9(3,path,(type_3 *)&sb), -1 < var_10))
    goto LAB_0001333f;
    var_16 = 0;
    var_10 = 0;
  }
  else {
    var_10 = var_11(3,var_3,(type_3 *)&sb);
    if (var_10 < 0) {
      var_16 = 0;
      var_10 = 0;
      local_90 = -1;
      goto LAB_00013435;
    }
LAB_0001333f:
    var_10 = var_12(path,sb.st_mode,&scon);
    if (var_10 < 0) {
      piVar5 = var_5();
      if (*piVar5 != 2) goto LAB_0001341e;
      *piVar5 = 0x3d;
      var_10 = 0;
      var_16 = 0;
LAB_00013428:
      if (var_3 == -1) goto LAB_00013445;
LAB_0001342d:
      local_90 = -1;
    }
    else {
      var_10 = var_13(scon);
      if (var_10 == 0) {
LAB_0001341e:
        var_16 = 0;
        var_10 = 0;
        goto LAB_00013428;
      }
      if (var_3 != -1) {
        var_15 = var_14(var_3,&var_4);
        if (var_15 < 0) {
          var_16 = 0;
          local_90 = -1;
          goto LAB_00013435;
        }
        var_16 = var_13(var_4);
        if ((var_16 != 0) && (var_15 = var_17(var_10), var_15 != 0)) {
          var_15 = var_18(var_16,var_15);
          local_90 = -1;
          if (var_15 == 0) goto LAB_000133da;
          goto LAB_00013435;
        }
        goto LAB_0001342d;
      }
      var_15 = var_19(path,&var_4);
      var_16 = 0;
      if ((((var_15 < 0) || (var_16 = var_13(var_4), var_16 == 0)) ||
          (var_15 = var_17(var_10), var_15 == 0)) ||
         (var_15 = var_18(var_16,var_15), var_15 != 0)) goto LAB_00013445;
LAB_000133da:
      var_15 = var_20(var_16);
      if (var_15 == 0) goto LAB_00013428;
      if (var_3 == -1) {
        var_3 = var_6(path,var_15);
        goto LAB_00013445;
      }
      local_90 = var_21(var_3,var_15);
    }
LAB_00013435:
    var_22(var_3);
    var_3 = local_90;
  }
LAB_00013445:
  var_23(var_10);
  var_23(var_16);
  var_7(scon);
  var_7(var_4);
LAB_000132e4:
  if (var_24 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_25();
  }
  return var_3;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)) (pointer_expression argument: (identifier))))))) (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (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 (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (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 (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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 (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

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

int __regparm3 MASKED(char *param_1,char param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int in_GS_OFFSET;
  int local_94;
  int local_90;
  undefined4 local_88;
  int local_84;
  stat64 local_80;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1327b;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_88 = 0;
  local_84 = 0;
  if (param_2 != '\0') {
    iVar1 = getfscreatecon(&local_84);
    if (iVar1 < 0) {
      iVar1 = -1;
    }
    else if (local_84 == 0) {
      piVar4 = __errno_location();
      iVar1 = -1;
      *piVar4 = 0x3d;
    }
    else {
      iVar1 = lsetfilecon(param_1,local_84);
      freecon(local_84);
    }
    goto LAB_000132e4;
  }
  iVar1 = open64(param_1,0x20000);
  if (iVar1 == -1) {
    piVar4 = __errno_location();
    if ((*piVar4 == 0x28) && (iVar2 = __lxstat64(3,param_1,&local_80), -1 < iVar2))
    goto LAB_0001333f;
    local_94 = 0;
    iVar2 = 0;
  }
  else {
    iVar2 = __fxstat64(3,iVar1,&local_80);
    if (iVar2 < 0) {
      local_94 = 0;
      iVar2 = 0;
      local_90 = -1;
      goto LAB_00013435;
    }
LAB_0001333f:
    iVar2 = matchpathcon(param_1,local_80.st_mode,&local_88);
    if (iVar2 < 0) {
      piVar4 = __errno_location();
      if (*piVar4 != 2) goto LAB_0001341e;
      *piVar4 = 0x3d;
      iVar2 = 0;
      local_94 = 0;
LAB_00013428:
      if (iVar1 == -1) goto LAB_00013445;
LAB_0001342d:
      local_90 = -1;
    }
    else {
      iVar2 = context_new(local_88);
      if (iVar2 == 0) {
LAB_0001341e:
        local_94 = 0;
        iVar2 = 0;
        goto LAB_00013428;
      }
      if (iVar1 != -1) {
        iVar3 = FUN_0001cc60(iVar1,&local_84);
        if (iVar3 < 0) {
          local_94 = 0;
          local_90 = -1;
          goto LAB_00013435;
        }
        local_94 = context_new(local_84);
        if ((local_94 != 0) && (iVar3 = context_type_get(iVar2), iVar3 != 0)) {
          iVar3 = context_type_set(local_94,iVar3);
          local_90 = -1;
          if (iVar3 == 0) goto LAB_000133da;
          goto LAB_00013435;
        }
        goto LAB_0001342d;
      }
      iVar3 = FUN_0001cbc0(param_1,&local_84);
      local_94 = 0;
      if ((((iVar3 < 0) || (local_94 = context_new(local_84), local_94 == 0)) ||
          (iVar3 = context_type_get(iVar2), iVar3 == 0)) ||
         (iVar3 = context_type_set(local_94,iVar3), iVar3 != 0)) goto LAB_00013445;
LAB_000133da:
      iVar3 = context_str(local_94);
      if (iVar3 == 0) goto LAB_00013428;
      if (iVar1 == -1) {
        iVar1 = lsetfilecon(param_1,iVar3);
        goto LAB_00013445;
      }
      local_90 = fsetfilecon(iVar1,iVar3);
    }
LAB_00013435:
    close(iVar1);
    iVar1 = local_90;
  }
LAB_00013445:
  context_free(iVar2);
  context_free(local_94);
  freecon(local_88);
  freecon(local_84);
LAB_000132e4:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00021780();
  }
  return iVar1;
}

