
int setpriv_main(int argc,char **argv)

{
  char **argv_00;
  long lVar1;
  uint32_t uVar2;
  int iVar3;
  gid_t *pgVar4;
  ulong uVar5;
  uint uVar6;
  ulong uVar7;
  uint uVar8;
  long lVar9;
  undefined *puVar10;
  char *pcVar11;
  long in_FS_OFFSET;
  uid_t ruid;
  uid_t euid;
  uid_t suid;
  gid_t rgid;
  gid_t egid;
  gid_t sgid;
  int ngids;
  char *inh_caps;
  char *ambient_caps;
  caps caps;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  uVar2 = getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps);
  argv_00 = argv + optind;
  if ((uVar2 & 1) == 0) {
    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {
                    /* WARNING: Subroutine does not return */
      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");
    }
    if ((uVar2 & 2) != 0) {
      getcaps(&caps);
      pcVar11 = strtok(inh_caps,",");
      while (pcVar11 != (char *)0x0) {
        uVar8 = parse_cap(pcVar11);
        uVar6 = uVar8 >> 5;
        if (caps.u32s <= uVar6) {
                    /* WARNING: Subroutine does not return */
          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);
        }
        if (*pcVar11 == '+') {
          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;
        }
        else {
          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;
        }
        caps.data[uVar6].inheritable = uVar8;
        pcVar11 = strtok((char *)0x0,",");
      }
      iVar3 = capset(&caps,caps.data);
      if (iVar3 != 0) {
                    /* WARNING: Subroutine does not return */
        bb_perror_msg_and_die("capset");
      }
    }
    if ((uVar2 & 4) != 0) {
      pcVar11 = strtok(ambient_caps,",");
      while (pcVar11 != (char *)0x0) {
        uVar8 = parse_cap(pcVar11);
        if (*pcVar11 == '+') {
          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);
          if (iVar3 < 0) {
            bb_perror_msg("cap_ambient_raise");
          }
        }
        else {
          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);
          if (iVar3 < 0) {
            bb_perror_msg("cap_ambient_lower");
          }
        }
        pcVar11 = strtok((char *)0x0,",");
      }
    }
    if (*argv_00 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
      bb_show_usage();
    }
                    /* WARNING: Subroutine does not return */
    BB_EXECVP_or_die(argv_00);
  }
  if ((*argv_00 != (char *)0x0) || (uVar2 != 1)) {
                    /* WARNING: Subroutine does not return */
    bb_show_usage();
  }
  getresuid(&ruid,&euid,&suid);
  getresgid(&rgid,&egid,&sgid);
  ngids = 0;
  pgVar4 = bb_getgroups(&ngids,(gid_t *)0x0);
  iVar3 = prctl(0x27,0,0,0,0);
  if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
    bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");
  }
  __printf_chk(1,"uid: %u\n",ruid);
  __printf_chk(1,"euid: %u\n",euid);
  __printf_chk(1,"gid: %u\n",rgid);
  __printf_chk(1,"egid: %u\n",egid);
  __printf_chk(1,"Supplementary groups: ");
  if (ngids == 0) {
    __printf_chk(1,"[none]");
  }
  else if (0 < ngids) {
    lVar9 = 0;
    puVar10 = &DAT_001bd0a1;
    do {
      __printf_chk(1,puVar10,pgVar4[lVar9]);
      lVar9 = lVar9 + 1;
      puVar10 = &DAT_001bd0a0;
    } while ((int)lVar9 < ngids);
  }
  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);
  getcaps(&caps);
  __printf_chk(1,"Inheritable capabilities: ");
  uVar5 = (ulong)caps.u32s;
  if (caps.u32s == 0) {
    uVar8 = 0;
    uVar7 = uVar5;
  }
  else {
    pcVar11 = "";
    uVar7 = 0;
    uVar8 = 0;
    do {
      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {
        printf_cap(pcVar11,uVar8);
        pcVar11 = ",";
      }
      uVar8 = uVar8 + 1;
      if (uVar8 == 0x26) {
        if (*pcVar11 == '\0') {
          __printf_chk(1,"[none]");
        }
        __printf_chk(1,"\nAmbient capabilities: ");
        lVar9 = 0;
        pcVar11 = "";
        do {
          uVar8 = (uint)lVar9;
          iVar3 = prctl(0x2f,1,lVar9,0,0);
          if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");
          }
          if (iVar3 != 0) {
            printf_cap(pcVar11,uVar8);
            pcVar11 = ",";
          }
          lVar9 = lVar9 + 1;
        } while (lVar9 != 0x26);
        if (uVar8 == 0xffffffff) {
          __printf_chk(1,"[unsupported]");
        }
        else if (*pcVar11 == '\0') {
          __printf_chk(1,"[none]");
        }
        __printf_chk(1,"\nCapability bounding set: ");
        lVar9 = 0;
        pcVar11 = "";
        do {
          iVar3 = prctl(0x17,lVar9,0,0,0);
          if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");
          }
          if (iVar3 != 0) {
            printf_cap(pcVar11,(uint)lVar9);
            pcVar11 = ",";
          }
          lVar9 = lVar9 + 1;
        } while (lVar9 != 0x26);
        if (*pcVar11 == '\0') {
          __printf_chk(1,"[none]");
        }
        bb_putchar(10);
        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
          __stack_chk_fail();
        }
        return 0;
      }
      uVar7 = (ulong)(uint)((int)uVar8 >> 5);
      uVar5 = (ulong)caps.u32s;
    } while ((uint)((int)uVar8 >> 5) < caps.u32s);
  }
  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8);
                    /* WARNING: Subroutine does not return */
  bb_error_msg_and_die("unsupported capability");
}



undefined8 FUN_0015f697(undefined8 param_1,long param_2)

{
  long *plVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  long lVar5;
  uint uVar6;
  ulong uVar7;
  ulong extraout_RDX;
  int iVar8;
  ulong uVar9;
  long lVar10;
  undefined *puVar11;
  char *pcVar12;
  char *unaff_R12;
  long in_FS_OFFSET;
  __uid_t local_84;
  __uid_t local_80;
  __uid_t local_7c;
  __gid_t local_78;
  __gid_t local_74;
  __gid_t local_70;
  int local_6c;
  char *local_68;
  char *local_60;
  undefined1 local_58 [8];
  uint local_50;
  undefined1 local_4c [8];
  uint auStack_44 [5];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);
  plVar1 = (long *)(param_2 + (long)optind * 8);
  if ((uVar2 & 1) == 0) {
    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");
    }
    if ((uVar2 & 2) != 0) {
      FUN_00198cf1(local_58);
      pcVar12 = strtok(local_68,",");
      unaff_R12 = local_68;
      if (pcVar12 != (char *)0x0) {
        unaff_R12 = &DAT_00000001;
        do {
          uVar4 = FUN_0015f666(pcVar12);
          uVar6 = uVar4 >> 5;
          if (local_50 <= uVar6) {
                    /* WARNING: Subroutine does not return */
            FUN_0010dc50("invalid capability \'%s\'",pcVar12);
          }
          if (*pcVar12 == '+') {
            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];
          }
          else {
            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];
          }
          auStack_44[(ulong)uVar6 * 3] = uVar4;
          pcVar12 = strtok((char *)0x0,",");
        } while (pcVar12 != (char *)0x0);
      }
      iVar3 = capset(local_58,local_4c);
      if (iVar3 != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0010d88d("capset");
      }
    }
    if ((uVar2 & 4) == 0) goto LAB_0015fc66;
    pcVar12 = strtok(local_60,",");
    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;
    unaff_R12 = "cap_ambient_lower";
    do {
      uVar2 = FUN_0015f666(pcVar12);
      uVar9 = (ulong)uVar2;
      if (*pcVar12 != '+') goto LAB_0015fc72;
      iVar3 = prctl(0x2f,2,uVar9,0,0);
      if (iVar3 < 0) {
        FUN_0010d7b5("cap_ambient_raise");
      }
      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {
LAB_0015fc66:
        if (*plVar1 != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0019b16a(plVar1);
        }
        FUN_0010c878();
        uVar9 = extraout_RDX;
LAB_0015fc72:
        iVar3 = prctl(0x2f,3,uVar9,0,0);
        if (iVar3 < 0) {
          FUN_0010d7b5(unaff_R12);
        }
      }
    } while( true );
  }
  if ((*plVar1 != 0) || (uVar2 != 1)) {
    FUN_0010c878();
  }
  getresuid(&local_84,&local_80,&local_7c);
  getresgid(&local_78,&local_74,&local_70);
  local_6c = 0;
  lVar5 = FUN_00198a08(&local_6c,0);
  iVar3 = prctl(0x27,0,0,0,0);
  if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");
  }
  __printf_chk(1,"uid: %u\n",local_84);
  __printf_chk(1,"euid: %u\n",local_80);
  __printf_chk(1,"gid: %u\n",local_78);
  __printf_chk(1,"egid: %u\n",local_74);
  __printf_chk(1,"Supplementary groups: ");
  if (local_6c == 0) {
    __printf_chk(1,"[none]");
  }
  else if (0 < local_6c) {
    lVar10 = 0;
    puVar11 = &DAT_001bd0a1;
    do {
      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));
      lVar10 = lVar10 + 1;
      puVar11 = &DAT_001bd0a0;
    } while ((int)lVar10 < local_6c);
  }
  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);
  FUN_00198cf1(local_58);
  __printf_chk(1,"Inheritable capabilities: ");
  uVar9 = (ulong)local_50;
  if (local_50 == 0) {
    iVar3 = 0;
    uVar7 = uVar9;
  }
  else {
    pcVar12 = "";
    uVar7 = 0;
    iVar3 = 0;
    do {
      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {
        FUN_00198ca3(pcVar12,iVar3);
        pcVar12 = ",";
      }
      iVar3 = iVar3 + 1;
      if (iVar3 == 0x26) {
        if (*pcVar12 == '\0') {
          __printf_chk(1,"[none]");
        }
        __printf_chk(1,"\nAmbient capabilities: ");
        uVar9 = 0;
        pcVar12 = "";
        do {
          iVar8 = (int)uVar9;
          iVar3 = prctl(0x2f,1,uVar9,0,0);
          if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");
          }
          if (iVar3 != 0) {
            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);
            pcVar12 = ",";
          }
          uVar9 = uVar9 + 1;
        } while (uVar9 != 0x26);
        if (iVar8 == -1) {
          __printf_chk(1,"[unsupported]");
        }
        else if (*pcVar12 == '\0') {
          __printf_chk(1,"[none]");
        }
        __printf_chk(1,"\nCapability bounding set: ");
        uVar9 = 0;
        pcVar12 = "";
        do {
          iVar3 = prctl(0x17,uVar9,0,0,0);
          if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0010d88d("prctl: %s","CAPBSET_READ");
          }
          if (iVar3 != 0) {
            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);
            pcVar12 = ",";
          }
          uVar9 = uVar9 + 1;
        } while (uVar9 != 0x26);
        if (*pcVar12 == '\0') {
          __printf_chk(1,"[none]");
        }
        FUN_0010e956(10);
        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
          return 0;
        }
                    /* WARNING: Subroutine does not return */
        __stack_chk_fail();
      }
      uVar7 = (ulong)(uint)(iVar3 >> 5);
      uVar9 = (ulong)local_50;
    } while ((uint)(iVar3 >> 5) < local_50);
  }
  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);
                    /* WARNING: Subroutine does not return */
  FUN_0010dc50("unsupported capability");
}


PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x68
MOV RBP,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x58],RAX
XOR EAX,EAX
LEA RCX,[RSP + 0x20]
LEA R8,[RSP + 0x28]
LEA RDX,[0x1bd8b8]
LEA RSI,[0x1bd78f]
MOV RDI,RBP
CALL 0x0019c2cc
MOV EBX,EAX
MOVSXD RAX,dword ptr [0x001c62b8]
LEA RBP,[RBP + RAX*0x8]
TEST BL,0x1
JZ 0x0015fad3
CMP qword ptr [RBP],0x0
JNZ 0x0015f6f7
CMP EBX,0x1
JZ 0x0015f6fc
CALL 0x0010c878
LEA RDX,[RSP + 0xc]
LEA RSI,[RSP + 0x8]
LEA RDI,[RSP + 0x4]
CALL 0x0010bbf0
LEA RDX,[RSP + 0x18]
LEA RSI,[RSP + 0x14]
LEA RDI,[RSP + 0x10]
CALL 0x0010b230
MOV dword ptr [RSP + 0x1c],0x0
LEA RDI,[RSP + 0x1c]
MOV ESI,0x0
CALL 0x00198a08
MOV R13,RAX
MOV R8D,0x0
MOV ECX,0x0
MOV EDX,0x0
MOV ESI,0x0
MOV EDI,0x27
MOV EAX,0x0
CALL 0x0010bb70
MOV EBP,EAX
TEST EAX,EAX
JNS 0x0015f780
LEA RSI,[0x1bd796]
LEA RDI,[0x1bd7a7]
MOV EAX,0x0
CALL 0x0010d88d
MOV EDX,dword ptr [RSP + 0x4]
LEA RSI,[0x1bd7b2]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EDX,dword ptr [RSP + 0x8]
LEA RSI,[0x1bd7b1]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EDX,dword ptr [RSP + 0x10]
LEA RSI,[0x1bd7bc]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EDX,dword ptr [RSP + 0x14]
LEA RSI,[0x1bd7bb]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
LEA RSI,[0x1bd7c5]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EAX,dword ptr [RSP + 0x1c]
TEST EAX,EAX
JZ 0x0015f920
JG 0x0015f93b
MOV EDX,EBP
LEA RSI,[0x1bd7e3]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
LEA RDI,[RSP + 0x30]
CALL 0x00198cf1
LEA RSI,[0x1bd7f6]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EDX,dword ptr [RSP + 0x38]
TEST EDX,EDX
JZ 0x0015f9ac
LEA RDI,[0x1c0d09]
MOV EDX,0x0
MOV EBX,0x0
LEA RBP,[0x1bd363]
MOV EAX,0x1
MOV ECX,EBX
SHL EAX,CL
MOV EDX,EDX
LEA RDX,[RDX + RDX*0x2]
TEST dword ptr [RSP + RDX*0x4 + 0x44],EAX
JZ 0x0015f88b
MOV ESI,EBX
CALL 0x00198ca3
MOV RDI,RBP
ADD EBX,0x1
CMP EBX,0x26
JNZ 0x0015f971
CMP byte ptr [RDI],0x0
JNZ 0x0015f8b2
LEA RSI,[0x1bd7dc]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
LEA RSI,[0x1bd828]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EBX,0x0
LEA RBP,[0x1c0d09]
LEA R13,[0x1bd363]
MOV R12D,EBX
MOV R8D,0x0
MOV ECX,0x0
MOV RDX,RBX
MOV ESI,0x1
MOV EDI,0x2f
MOV EAX,0x0
CALL 0x0010bb70
TEST EAX,EAX
JNS 0x0015f9b5
LEA RSI,[0x1bd840]
LEA RDI,[0x1bd7a7]
MOV EAX,0x0
CALL 0x0010d88d
LEA RSI,[0x1bd7dc]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
JMP 0x0015f810
MOV EBX,0x0
LEA RSI,[0x1bd0a1]
LEA R12,[RSI + -0x1]
MOV EDX,dword ptr [R13 + RBX*0x4]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
ADD RBX,0x1
MOV RSI,R12
CMP dword ptr [RSP + 0x1c],EBX
JG 0x0015f94b
JMP 0x0015f810
MOV EDX,EBX
SAR EDX,0x5
MOV ECX,dword ptr [RSP + 0x38]
CMP EDX,ECX
JC 0x0015f86c
MOV R8D,EBX
LEA RSI,[0x1ac6f8]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
LEA RDI,[0x1bd811]
MOV EAX,0x0
CALL 0x0010dc50
MOV ECX,EDX
MOV EBX,0x0
JMP 0x0015f982
JZ 0x0015f9c4
MOV ESI,EBX
MOV RDI,RBP
CALL 0x00198ca3
MOV RBP,R13
ADD RBX,0x1
CMP RBX,0x26
JNZ 0x0015f8db
CMP R12D,-0x1
JNZ 0x0015fa55
LEA RSI,[0x1bd853]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
LEA RSI,[0x1bd861]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EBX,0x0
LEA RBP,[0x1c0d09]
LEA R12,[0x1bd363]
MOV R8D,0x0
MOV ECX,0x0
MOV EDX,0x0
MOV RSI,RBX
MOV EDI,0x17
MOV EAX,0x0
CALL 0x0010bb70
TEST EAX,EAX
JNS 0x0015fa76
LEA RSI,[0x1bd96a]
LEA RDI,[0x1bd7a7]
MOV EAX,0x0
CALL 0x0010d88d
CMP byte ptr [RBP],0x0
JNZ 0x0015f9ee
LEA RSI,[0x1bd7dc]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
JMP 0x0015f9ee
JZ 0x0015fa85
MOV ESI,EBX
MOV RDI,RBP
CALL 0x00198ca3
MOV RBP,R12
ADD RBX,0x1
CMP RBX,0x26
JNZ 0x0015fa17
CMP byte ptr [RBP],0x0
JNZ 0x0015faab
LEA RSI,[0x1bd7dc]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
MOV EDI,0xa
CALL 0x0010e956
MOV EAX,0x0
MOV RCX,qword ptr [RSP + 0x58]
XOR RCX,qword ptr FS:[0x28]
JZ 0x0015fcac
CALL 0x0010b500
TEST BL,0x8
JZ 0x0015fb18
MOV R8D,0x0
MOV ECX,0x0
MOV EDX,0x0
MOV ESI,0x1
MOV EDI,0x26
MOV EAX,0x0
CALL 0x0010bb70
TEST EAX,EAX
JZ 0x0015fb18
LEA RSI,[0x1bd87c]
LEA RDI,[0x1bd7a7]
MOV EAX,0x0
CALL 0x0010d88d
TEST BL,0x2
JZ 0x0015fbe5
MOV R12,qword ptr [RSP + 0x20]
LEA RDI,[RSP + 0x30]
CALL 0x00198cf1
LEA RSI,[0x1bd363]
MOV RDI,R12
CALL 0x0010c1a0
MOV R13,RAX
TEST RAX,RAX
JZ 0x0015fbaf
MOV R12D,0x1
MOV RDI,R13
CALL 0x0015f666
MOV ECX,EAX
MOV EDX,EAX
SHR EDX,0x5
CMP EDX,dword ptr [RSP + 0x38]
JC 0x0015fb76
MOV RSI,R13
LEA RDI,[0x1bd777]
MOV EAX,0x0
CALL 0x0010dc50
CMP byte ptr [R13],0x2b
JNZ 0x0015fbd2
MOV EAX,R12D
SHL EAX,CL
MOV ECX,EDX
LEA RCX,[RCX + RCX*0x2]
OR EAX,dword ptr [RSP + RCX*0x4 + 0x44]
MOV EDX,EDX
LEA RDX,[RDX + RDX*0x2]
MOV dword ptr [RSP + RDX*0x4 + 0x44],EAX
LEA RSI,[0x1bd363]
MOV EDI,0x0
CALL 0x0010c1a0
MOV R13,RAX
TEST RAX,RAX
JNZ 0x0015fb4d
LEA RDI,[RSP + 0x30]
LEA RSI,[RDI + 0xc]
CALL 0x0010b680
TEST EAX,EAX
JZ 0x0015fbe5
LEA RDI,[0x1bd88d]
MOV EAX,0x0
CALL 0x0010d88d
MOV EAX,R12D
SHL EAX,CL
NOT EAX
MOV ECX,EDX
LEA RCX,[RCX + RCX*0x2]
AND EAX,dword ptr [RSP + RCX*0x4 + 0x44]
JMP 0x0015fb8c
TEST BL,0x4
JZ 0x0015fc66
LEA RSI,[0x1bd363]
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0010c1a0
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0015fc66
LEA R12,[0x1bd8a6]
MOV RDI,RBX
CALL 0x0015f666
MOV EDX,EAX
CMP byte ptr [RBX],0x2b
JNZ 0x0015fc72
MOV R8D,0x0
MOV ECX,0x0
MOV ESI,0x2
MOV EDI,0x2f
MOV EAX,0x0
CALL 0x0010bb70
TEST EAX,EAX
JNS 0x0015fc4d
LEA RDI,[0x1bd894]
MOV EAX,0x0
CALL 0x0010d7b5
LEA RSI,[0x1bd363]
MOV EDI,0x0
CALL 0x0010c1a0
MOV RBX,RAX
TEST RAX,RAX
JNZ 0x0015fc0a
CMP qword ptr [RBP],0x0
JNZ 0x0015fca4
CALL 0x0010c878
MOV R8D,0x0
MOV ECX,0x0
MOV ESI,0x3
MOV EDI,0x2f
MOV EAX,0x0
CALL 0x0010bb70
TEST EAX,EAX
JNS 0x0015fc4d
MOV RDI,R12
MOV EAX,0x0
CALL 0x0010d7b5
JMP 0x0015fc4d
MOV RDI,RBP
CALL 0x0019b16a
ADD RSP,0x68
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "undefined8 FUN_0015f697(undefined8 param_1,long param_2)\n\n{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    /* WARNING: Subroutine does not return */\n  FUN_0010dc50("unsupported capability");\n}\n\n" (function_definition "undefined8 FUN_0015f697(undefined8 param_1,long param_2)\n\n{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    /* WARNING: Subroutine does not return */\n  FUN_0010dc50("unsupported capability");\n}" type_identifier (function_declarator "FUN_0015f697(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    /* WARNING: Subroutine does not return */\n  FUN_0010dc50("unsupported capability");\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *unaff_R12;" primitive_type (pointer_declarator "*unaff_R12" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "__uid_t local_84;" type_identifier identifier ;) (declaration "__uid_t local_80;" type_identifier identifier ;) (declaration "__uid_t local_7c;" type_identifier identifier ;) (declaration "__gid_t local_78;" type_identifier identifier ;) (declaration "__gid_t local_74;" type_identifier identifier ;) (declaration "__gid_t local_70;" type_identifier identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined1 local_58 [8];" type_identifier (array_declarator "local_58 [8]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 local_4c [8];" type_identifier (array_declarator "local_4c [8]" identifier [ number_literal ]) ;) (declaration "uint auStack_44 [5];" type_identifier (array_declarator "auStack_44 [5]" identifier [ number_literal ]) ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);" (assignment_expression "uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" identifier = (call_expression "FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" identifier (argument_list "(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" ( identifier , (pointer_expression "&DAT_001bd78f" & identifier) , (pointer_expression "&DAT_001bd8b8" & identifier) , (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "plVar1 = (long *)(param_2 + (long)optind * 8);" (assignment_expression "plVar1 = (long *)(param_2 + (long)optind * 8)" identifier = (cast_expression "(long *)(param_2 + (long)optind * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) ;) (if_statement "if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }" if (parenthesized_expression "((uVar2 & 1) == 0)" ( (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }" { (if_statement "if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }" if (parenthesized_expression "(((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0))" ( (binary_expression "((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" ( (comma_expression "iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0" (assignment_expression "iVar3 = prctl(0x26,1,0,0,0)" identifier = (call_expression "prctl(0x26,1,0,0,0)" identifier (argument_list "(0x26,1,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }" { comment (expression_statement "FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");" (call_expression "FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS")" identifier (argument_list "("prctl: %s","SET_NO_NEW_PRIVS")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""SET_NO_NEW_PRIVS"" " string_content ") ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }\n    }" { (expression_statement "FUN_00198cf1(local_58);" (call_expression "FUN_00198cf1(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "pcVar12 = strtok(local_68,",");" (assignment_expression "pcVar12 = strtok(local_68,",")" identifier = (call_expression "strtok(local_68,",")" identifier (argument_list "(local_68,",")" ( identifier , (string_literal "","" " string_content ") )))) ;) (expression_statement "unaff_R12 = local_68;" (assignment_expression "unaff_R12 = local_68" identifier = identifier) ;) (if_statement "if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }" { (expression_statement "unaff_R12 = &DAT_00000001;" (assignment_expression "unaff_R12 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (do_statement "do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);" do (compound_statement "{\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        }" { (expression_statement "uVar4 = FUN_0015f666(pcVar12);" (assignment_expression "uVar4 = FUN_0015f666(pcVar12)" identifier = (call_expression "FUN_0015f666(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "uVar6 = uVar4 >> 5;" (assignment_expression "uVar6 = uVar4 >> 5" identifier = (binary_expression "uVar4 >> 5" identifier >> number_literal)) ;) (if_statement "if (local_50 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }" if (parenthesized_expression "(local_50 <= uVar6)" ( (binary_expression "local_50 <= uVar6" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }" { comment (expression_statement "FUN_0010dc50("invalid capability \'%s\'",pcVar12);" (call_expression "FUN_0010dc50("invalid capability \'%s\'",pcVar12)" identifier (argument_list "("invalid capability \'%s\'",pcVar12)" ( (string_literal ""invalid capability \'%s\'"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) })) (if_statement "if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" if (parenthesized_expression "(*pcVar12 == '+')" ( (binary_expression "*pcVar12 == '+'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }" { (expression_statement "uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];" (assignment_expression "uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3]" identifier = (binary_expression "1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3]" (binary_expression "1 << ((byte)uVar4 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar4 & 0x1f)" ( (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (subscript_expression "auStack_44[(ulong)uVar6 * 3]" identifier [ (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]))) ;) }) (else_clause "else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" else (compound_statement "{\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" { (expression_statement "uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];" (assignment_expression "uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3]" identifier = (binary_expression "~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3]" (unary_expression "~(1 << ((byte)uVar4 & 0x1f))" ~ (parenthesized_expression "(1 << ((byte)uVar4 & 0x1f))" ( (binary_expression "1 << ((byte)uVar4 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar4 & 0x1f)" ( (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & (subscript_expression "auStack_44[(ulong)uVar6 * 3]" identifier [ (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]))) ;) }))) (expression_statement "auStack_44[(ulong)uVar6 * 3] = uVar4;" (assignment_expression "auStack_44[(ulong)uVar6 * 3] = uVar4" (subscript_expression "auStack_44[(ulong)uVar6 * 3]" identifier [ (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) = identifier) ;) (expression_statement "pcVar12 = strtok((char *)0x0,",");" (assignment_expression "pcVar12 = strtok((char *)0x0,",")" identifier = (call_expression "strtok((char *)0x0,",")" identifier (argument_list "((char *)0x0,",")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "","" " string_content ") )))) ;) }) while (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "iVar3 = capset(local_58,local_4c);" (assignment_expression "iVar3 = capset(local_58,local_4c)" identifier = (call_expression "capset(local_58,local_4c)" identifier (argument_list "(local_58,local_4c)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0010d88d("capset");\n      }" { comment (expression_statement "FUN_0010d88d("capset");" (call_expression "FUN_0010d88d("capset")" identifier (argument_list "("capset")" ( (string_literal ""capset"" " string_content ") ))) ;) })) })) (if_statement "if ((uVar2 & 4) == 0) goto LAB_0015fc66;" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0015fc66;" goto statement_identifier ;)) (expression_statement "pcVar12 = strtok(local_60,",");" (assignment_expression "pcVar12 = strtok(local_60,",")" identifier = (call_expression "strtok(local_60,",")" identifier (argument_list "(local_60,",")" ( identifier , (string_literal "","" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_0015fc66;" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0015fc66;" goto statement_identifier ;)) (expression_statement "unaff_R12 = "cap_ambient_lower";" (assignment_expression "unaff_R12 = "cap_ambient_lower"" identifier = (string_literal ""cap_ambient_lower"" " string_content ")) ;) (do_statement "do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );" do (compound_statement "{\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    }" { (expression_statement "uVar2 = FUN_0015f666(pcVar12);" (assignment_expression "uVar2 = FUN_0015f666(pcVar12)" identifier = (call_expression "FUN_0015f666(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "uVar9 = (ulong)uVar2;" (assignment_expression "uVar9 = (ulong)uVar2" identifier = (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar12 != '+') goto LAB_0015fc72;" if (parenthesized_expression "(*pcVar12 != '+')" ( (binary_expression "*pcVar12 != '+'" (pointer_expression "*pcVar12" * identifier) != (char_literal "'+'" ' character ')) )) (goto_statement "goto LAB_0015fc72;" goto statement_identifier ;)) (expression_statement "iVar3 = prctl(0x2f,2,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,2,uVar9,0,0)" identifier = (call_expression "prctl(0x2f,2,uVar9,0,0)" identifier (argument_list "(0x2f,2,uVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        FUN_0010d7b5("cap_ambient_raise");\n      }" { (expression_statement "FUN_0010d7b5("cap_ambient_raise");" (call_expression "FUN_0010d7b5("cap_ambient_raise")" identifier (argument_list "("cap_ambient_raise")" ( (string_literal ""cap_ambient_raise"" " string_content ") ))) ;) })) (while_statement "while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }" while (parenthesized_expression "(pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0)" ( (comma_expression "pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0" (assignment_expression "pcVar12 = strtok((char *)0x0,",")" identifier = (call_expression "strtok((char *)0x0,",")" identifier (argument_list "((char *)0x0,",")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "","" " string_content ") )))) , (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }" { (labeled_statement "LAB_0015fc66:\n        if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }" statement_identifier : (if_statement "if (*plVar1 != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }" if (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0019b16a(plVar1);\n        }" { comment (expression_statement "FUN_0019b16a(plVar1);" (call_expression "FUN_0019b16a(plVar1)" identifier (argument_list "(plVar1)" ( identifier ))) ;) }))) (expression_statement "FUN_0010c878();" (call_expression "FUN_0010c878()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar9 = extraout_RDX;" (assignment_expression "uVar9 = extraout_RDX" identifier = identifier) ;) (labeled_statement "LAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);" statement_identifier : (expression_statement "iVar3 = prctl(0x2f,3,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,3,uVar9,0,0)" identifier = (call_expression "prctl(0x2f,3,uVar9,0,0)" identifier (argument_list "(0x2f,3,uVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;)) (if_statement "if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          FUN_0010d7b5(unaff_R12);\n        }" { (expression_statement "FUN_0010d7b5(unaff_R12);" (call_expression "FUN_0010d7b5(unaff_R12)" identifier (argument_list "(unaff_R12)" ( identifier ))) ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }" if (parenthesized_expression "((*plVar1 != 0) || (uVar2 != 1))" ( (binary_expression "(*plVar1 != 0) || (uVar2 != 1)" (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) || (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    FUN_0010c878();\n  }" { (expression_statement "FUN_0010c878();" (call_expression "FUN_0010c878()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "getresuid(&local_84,&local_80,&local_7c);" (call_expression "getresuid(&local_84,&local_80,&local_7c)" identifier (argument_list "(&local_84,&local_80,&local_7c)" ( (pointer_expression "&local_84" & identifier) , (pointer_expression "&local_80" & identifier) , (pointer_expression "&local_7c" & identifier) ))) ;) (expression_statement "getresgid(&local_78,&local_74,&local_70);" (call_expression "getresgid(&local_78,&local_74,&local_70)" identifier (argument_list "(&local_78,&local_74,&local_70)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_74" & identifier) , (pointer_expression "&local_70" & identifier) ))) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "lVar5 = FUN_00198a08(&local_6c,0);" (assignment_expression "lVar5 = FUN_00198a08(&local_6c,0)" identifier = (call_expression "FUN_00198a08(&local_6c,0)" identifier (argument_list "(&local_6c,0)" ( (pointer_expression "&local_6c" & identifier) , number_literal )))) ;) (expression_statement "iVar3 = prctl(0x27,0,0,0,0);" (assignment_expression "iVar3 = prctl(0x27,0,0,0,0)" identifier = (call_expression "prctl(0x27,0,0,0,0)" identifier (argument_list "(0x27,0,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }" { comment (expression_statement "FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");" (call_expression "FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS")" identifier (argument_list "("prctl: %s","GET_NO_NEW_PRIVS")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""GET_NO_NEW_PRIVS"" " string_content ") ))) ;) })) (expression_statement "__printf_chk(1,"uid: %u\n",local_84);" (call_expression "__printf_chk(1,"uid: %u\n",local_84)" identifier (argument_list "(1,"uid: %u\n",local_84)" ( number_literal , (string_literal ""uid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"euid: %u\n",local_80);" (call_expression "__printf_chk(1,"euid: %u\n",local_80)" identifier (argument_list "(1,"euid: %u\n",local_80)" ( number_literal , (string_literal ""euid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"gid: %u\n",local_78);" (call_expression "__printf_chk(1,"gid: %u\n",local_78)" identifier (argument_list "(1,"gid: %u\n",local_78)" ( number_literal , (string_literal ""gid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"egid: %u\n",local_74);" (call_expression "__printf_chk(1,"egid: %u\n",local_74)" identifier (argument_list "(1,"egid: %u\n",local_74)" ( number_literal , (string_literal ""egid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"Supplementary groups: ");" (call_expression "__printf_chk(1,"Supplementary groups: ")" identifier (argument_list "(1,"Supplementary groups: ")" ( number_literal , (string_literal ""Supplementary groups: "" " string_content ") ))) ;) (if_statement "if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (compound_statement "{\n    __printf_chk(1,"[none]");\n  }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) }) (else_clause "else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" else (if_statement "if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" if (parenthesized_expression "(0 < local_6c)" ( (binary_expression "0 < local_6c" number_literal < identifier) )) (compound_statement "{\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = &DAT_001bd0a1;" (assignment_expression "puVar11 = &DAT_001bd0a1" identifier = (pointer_expression "&DAT_001bd0a1" & identifier)) ;) (do_statement "do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);" do (compound_statement "{\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    }" { (expression_statement "__printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));" (call_expression "__printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4))" identifier (argument_list "(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(lVar5 + lVar10 * 4)" * (cast_expression "(undefined4 *)(lVar5 + lVar10 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + lVar10 * 4)" ( (binary_expression "lVar5 + lVar10 * 4" identifier + (binary_expression "lVar10 * 4" identifier * number_literal)) )))) ))) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = &DAT_001bd0a0;" (assignment_expression "puVar11 = &DAT_001bd0a0" identifier = (pointer_expression "&DAT_001bd0a0" & identifier)) ;) }) while (parenthesized_expression "((int)lVar10 < local_6c)" ( (binary_expression "(int)lVar10 < local_6c" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })))) (expression_statement "__printf_chk(1,"\nno_new_privs: %d\n",iVar3);" (call_expression "__printf_chk(1,"\nno_new_privs: %d\n",iVar3)" identifier (argument_list "(1,"\nno_new_privs: %d\n",iVar3)" ( number_literal , (string_literal ""\nno_new_privs: %d\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "FUN_00198cf1(local_58);" (call_expression "FUN_00198cf1(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "__printf_chk(1,"Inheritable capabilities: ");" (call_expression "__printf_chk(1,"Inheritable capabilities: ")" identifier (argument_list "(1,"Inheritable capabilities: ")" ( number_literal , (string_literal ""Inheritable capabilities: "" " string_content ") ))) ;) (expression_statement "uVar9 = (ulong)local_50;" (assignment_expression "uVar9 = (ulong)local_50" identifier = (cast_expression "(ulong)local_50" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = uVar9;" (assignment_expression "uVar7 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" else (compound_statement "{\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" { (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);" do (compound_statement "{\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    }" { (if_statement "if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }" if (parenthesized_expression "((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0)" ( (binary_expression "(auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0" (parenthesized_expression "(auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f))" ( (binary_expression "auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)" (subscript_expression "auStack_44[uVar7 * 3]" identifier [ (binary_expression "uVar7 * 3" identifier * number_literal) ]) & (binary_expression "1 << ((byte)iVar3 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar3 & 0x1f)" ( (binary_expression "(byte)iVar3 & 0x1f" (cast_expression "(byte)iVar3" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) )) != number_literal) )) (compound_statement "{\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }" { (expression_statement "FUN_00198ca3(pcVar12,iVar3);" (call_expression "FUN_00198ca3(pcVar12,iVar3)" identifier (argument_list "(pcVar12,iVar3)" ( identifier , identifier ))) ;) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }" if (parenthesized_expression "(iVar3 == 0x26)" ( (binary_expression "iVar3 == 0x26" identifier == number_literal) )) (compound_statement "{\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }" { (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })) (expression_statement "__printf_chk(1,"\nAmbient capabilities: ");" (call_expression "__printf_chk(1,"\nAmbient capabilities: ")" identifier (argument_list "(1,"\nAmbient capabilities: ")" ( number_literal , (string_literal ""\nAmbient capabilities: "" " escape_sequence string_content ") ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);" do (compound_statement "{\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        }" { (expression_statement "iVar8 = (int)uVar9;" (assignment_expression "iVar8 = (int)uVar9" identifier = (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar3 = prctl(0x2f,1,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,1,uVar9,0,0)" identifier = (call_expression "prctl(0x2f,1,uVar9,0,0)" identifier (argument_list "(0x2f,1,uVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" { comment (expression_statement "FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");" (call_expression "FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET")" identifier (argument_list "("prctl: %s","CAP_AMBIENT_IS_SET")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""CAP_AMBIENT_IS_SET"" " string_content ") ))) ;) })) (if_statement "if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" { (expression_statement "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);" (call_expression "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff)" identifier (argument_list "(pcVar12,uVar9 & 0xffffffff)" ( identifier , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != 0x26)" ( (binary_expression "uVar9 != 0x26" identifier != number_literal) )) ;) (if_statement "if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          __printf_chk(1,"[unsupported]");\n        }" { (expression_statement "__printf_chk(1,"[unsupported]");" (call_expression "__printf_chk(1,"[unsupported]")" identifier (argument_list "(1,"[unsupported]")" ( number_literal , (string_literal ""[unsupported]"" " string_content ") ))) ;) }) (else_clause "else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" else (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })))) (expression_statement "__printf_chk(1,"\nCapability bounding set: ");" (call_expression "__printf_chk(1,"\nCapability bounding set: ")" identifier (argument_list "(1,"\nCapability bounding set: ")" ( number_literal , (string_literal ""\nCapability bounding set: "" " escape_sequence string_content ") ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);" do (compound_statement "{\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        }" { (expression_statement "iVar3 = prctl(0x17,uVar9,0,0,0);" (assignment_expression "iVar3 = prctl(0x17,uVar9,0,0,0)" identifier = (call_expression "prctl(0x17,uVar9,0,0,0)" identifier (argument_list "(0x17,uVar9,0,0,0)" ( number_literal , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }" { comment (expression_statement "FUN_0010d88d("prctl: %s","CAPBSET_READ");" (call_expression "FUN_0010d88d("prctl: %s","CAPBSET_READ")" identifier (argument_list "("prctl: %s","CAPBSET_READ")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""CAPBSET_READ"" " string_content ") ))) ;) })) (if_statement "if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" { (expression_statement "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);" (call_expression "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff)" identifier (argument_list "(pcVar12,uVar9 & 0xffffffff)" ( identifier , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != 0x26)" ( (binary_expression "uVar9 != 0x26" identifier != number_literal) )) ;) (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })) (expression_statement "FUN_0010e956(10);" (call_expression "FUN_0010e956(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar7 = (ulong)(uint)(iVar3 >> 5);" (assignment_expression "uVar7 = (ulong)(uint)(iVar3 >> 5)" identifier = (call_expression "(ulong)(uint)(iVar3 >> 5)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar3 >> 5)" ( (binary_expression "iVar3 >> 5" identifier >> number_literal) )))) ;) (expression_statement "uVar9 = (ulong)local_50;" (assignment_expression "uVar9 = (ulong)local_50" identifier = (cast_expression "(ulong)local_50" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((uint)(iVar3 >> 5) < local_50)" ( (binary_expression "(uint)(iVar3 >> 5) < local_50" (call_expression "(uint)(iVar3 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 >> 5)" ( (binary_expression "iVar3 >> 5" identifier >> number_literal) ))) < identifier) )) ;) }))) (expression_statement "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);" (call_expression "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3)" identifier (argument_list "(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3)" ( number_literal , (string_literal ""\nindex: %u u32s: %u capability: %u\n"" " escape_sequence string_content escape_sequence ") , identifier , identifier , identifier ))) ;) comment (expression_statement "FUN_0010dc50("unsupported capability");" (call_expression "FUN_0010dc50("unsupported capability")" identifier (argument_list "("unsupported capability")" ( (string_literal ""unsupported capability"" " string_content ") ))) ;) })))
(translation_unit "int setpriv_main(int argc,char **argv)\n\n{\n  char **argv_00;\n  long lVar1;\n  uint32_t uVar2;\n  int iVar3;\n  gid_t *pgVar4;\n  ulong uVar5;\n  uint uVar6;\n  ulong uVar7;\n  uint uVar8;\n  long lVar9;\n  undefined *puVar10;\n  char *pcVar11;\n  long in_FS_OFFSET;\n  uid_t ruid;\n  uid_t euid;\n  uid_t suid;\n  gid_t rgid;\n  gid_t egid;\n  gid_t sgid;\n  int ngids;\n  char *inh_caps;\n  char *ambient_caps;\n  caps caps;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps);\n  argv_00 = argv + optind;\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }\n    if (*argv_00 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }\n                    /* WARNING: Subroutine does not return */\n    BB_EXECVP_or_die(argv_00);\n  }\n  if ((*argv_00 != (char *)0x0) || (uVar2 != 1)) {\n                    /* WARNING: Subroutine does not return */\n    bb_show_usage();\n  }\n  getresuid(&ruid,&euid,&suid);\n  getresgid(&rgid,&egid,&sgid);\n  ngids = 0;\n  pgVar4 = bb_getgroups(&ngids,(gid_t *)0x0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",ruid);\n  __printf_chk(1,"euid: %u\n",euid);\n  __printf_chk(1,"gid: %u\n",rgid);\n  __printf_chk(1,"egid: %u\n",egid);\n  __printf_chk(1,"Supplementary groups: ");\n  if (ngids == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < ngids) {\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  getcaps(&caps);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar5 = (ulong)caps.u32s;\n  if (caps.u32s == 0) {\n    uVar8 = 0;\n    uVar7 = uVar5;\n  }\n  else {\n    pcVar11 = "";\n    uVar7 = 0;\n    uVar8 = 0;\n    do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8);\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die("unsupported capability");\n}\n\n" (function_definition "int setpriv_main(int argc,char **argv)\n\n{\n  char **argv_00;\n  long lVar1;\n  uint32_t uVar2;\n  int iVar3;\n  gid_t *pgVar4;\n  ulong uVar5;\n  uint uVar6;\n  ulong uVar7;\n  uint uVar8;\n  long lVar9;\n  undefined *puVar10;\n  char *pcVar11;\n  long in_FS_OFFSET;\n  uid_t ruid;\n  uid_t euid;\n  uid_t suid;\n  gid_t rgid;\n  gid_t egid;\n  gid_t sgid;\n  int ngids;\n  char *inh_caps;\n  char *ambient_caps;\n  caps caps;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps);\n  argv_00 = argv + optind;\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }\n    if (*argv_00 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }\n                    /* WARNING: Subroutine does not return */\n    BB_EXECVP_or_die(argv_00);\n  }\n  if ((*argv_00 != (char *)0x0) || (uVar2 != 1)) {\n                    /* WARNING: Subroutine does not return */\n    bb_show_usage();\n  }\n  getresuid(&ruid,&euid,&suid);\n  getresgid(&rgid,&egid,&sgid);\n  ngids = 0;\n  pgVar4 = bb_getgroups(&ngids,(gid_t *)0x0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",ruid);\n  __printf_chk(1,"euid: %u\n",euid);\n  __printf_chk(1,"gid: %u\n",rgid);\n  __printf_chk(1,"egid: %u\n",egid);\n  __printf_chk(1,"Supplementary groups: ");\n  if (ngids == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < ngids) {\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  getcaps(&caps);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar5 = (ulong)caps.u32s;\n  if (caps.u32s == 0) {\n    uVar8 = 0;\n    uVar7 = uVar5;\n  }\n  else {\n    pcVar11 = "";\n    uVar7 = 0;\n    uVar8 = 0;\n    do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8);\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die("unsupported capability");\n}" primitive_type (function_declarator "setpriv_main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  char **argv_00;\n  long lVar1;\n  uint32_t uVar2;\n  int iVar3;\n  gid_t *pgVar4;\n  ulong uVar5;\n  uint uVar6;\n  ulong uVar7;\n  uint uVar8;\n  long lVar9;\n  undefined *puVar10;\n  char *pcVar11;\n  long in_FS_OFFSET;\n  uid_t ruid;\n  uid_t euid;\n  uid_t suid;\n  gid_t rgid;\n  gid_t egid;\n  gid_t sgid;\n  int ngids;\n  char *inh_caps;\n  char *ambient_caps;\n  caps caps;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps);\n  argv_00 = argv + optind;\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }\n    if (*argv_00 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }\n                    /* WARNING: Subroutine does not return */\n    BB_EXECVP_or_die(argv_00);\n  }\n  if ((*argv_00 != (char *)0x0) || (uVar2 != 1)) {\n                    /* WARNING: Subroutine does not return */\n    bb_show_usage();\n  }\n  getresuid(&ruid,&euid,&suid);\n  getresgid(&rgid,&egid,&sgid);\n  ngids = 0;\n  pgVar4 = bb_getgroups(&ngids,(gid_t *)0x0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",ruid);\n  __printf_chk(1,"euid: %u\n",euid);\n  __printf_chk(1,"gid: %u\n",rgid);\n  __printf_chk(1,"egid: %u\n",egid);\n  __printf_chk(1,"Supplementary groups: ");\n  if (ngids == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < ngids) {\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  getcaps(&caps);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar5 = (ulong)caps.u32s;\n  if (caps.u32s == 0) {\n    uVar8 = 0;\n    uVar7 = uVar5;\n  }\n  else {\n    pcVar11 = "";\n    uVar7 = 0;\n    uVar8 = 0;\n    do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8);\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die("unsupported capability");\n}" { (declaration "char **argv_00;" primitive_type (pointer_declarator "**argv_00" * (pointer_declarator "*argv_00" * identifier)) ;) (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "uint32_t uVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "gid_t *pgVar4;" type_identifier (pointer_declarator "*pgVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uid_t ruid;" type_identifier identifier ;) (declaration "uid_t euid;" type_identifier identifier ;) (declaration "uid_t suid;" type_identifier identifier ;) (declaration "gid_t rgid;" type_identifier identifier ;) (declaration "gid_t egid;" type_identifier identifier ;) (declaration "gid_t sgid;" type_identifier identifier ;) (declaration "int ngids;" primitive_type identifier ;) (declaration "char *inh_caps;" primitive_type (pointer_declarator "*inh_caps" * identifier) ;) (declaration "char *ambient_caps;" primitive_type (pointer_declarator "*ambient_caps" * identifier) ;) (declaration "caps caps;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps);" (assignment_expression "uVar2 = getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps)" identifier = (call_expression "getopt32long(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps)" identifier (argument_list "(argv,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps)" ( identifier , (pointer_expression "&DAT_001bd78f" & identifier) , (string_literal ""dump"" " string_content ") , (pointer_expression "&inh_caps" & identifier) , (pointer_expression "&ambient_caps" & identifier) )))) ;) (expression_statement "argv_00 = argv + optind;" (assignment_expression "argv_00 = argv + optind" identifier = (binary_expression "argv + optind" identifier + identifier)) ;) (if_statement "if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }\n    if (*argv_00 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }\n                    /* WARNING: Subroutine does not return */\n    BB_EXECVP_or_die(argv_00);\n  }" if (parenthesized_expression "((uVar2 & 1) == 0)" ( (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }\n    if (*argv_00 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }\n                    /* WARNING: Subroutine does not return */\n    BB_EXECVP_or_die(argv_00);\n  }" { (if_statement "if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }" if (parenthesized_expression "(((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0))" ( (binary_expression "((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" ( (comma_expression "iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0" (assignment_expression "iVar3 = prctl(0x26,1,0,0,0)" identifier = (call_expression "prctl(0x26,1,0,0,0)" identifier (argument_list "(0x26,1,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");\n    }" { comment (expression_statement "bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS");" (call_expression "bb_perror_msg_and_die("prctl: %s","SET_NO_NEW_PRIVS")" identifier (argument_list "("prctl: %s","SET_NO_NEW_PRIVS")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""SET_NO_NEW_PRIVS"" " string_content ") ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      getcaps(&caps);\n      pcVar11 = strtok(inh_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }\n      iVar3 = capset(&caps,caps.data);\n      if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }\n    }" { (expression_statement "getcaps(&caps);" (call_expression "getcaps(&caps)" identifier (argument_list "(&caps)" ( (pointer_expression "&caps" & identifier) ))) ;) (expression_statement "pcVar11 = strtok(inh_caps,",");" (assignment_expression "pcVar11 = strtok(inh_caps,",")" identifier = (call_expression "strtok(inh_caps,",")" identifier (argument_list "(inh_caps,",")" ( identifier , (string_literal "","" " string_content ") )))) ;) (while_statement "while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }" while (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar8 = parse_cap(pcVar11);\n        uVar6 = uVar8 >> 5;\n        if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }\n        if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }\n        caps.data[uVar6].inheritable = uVar8;\n        pcVar11 = strtok((char *)0x0,",");\n      }" { (expression_statement "uVar8 = parse_cap(pcVar11);" (assignment_expression "uVar8 = parse_cap(pcVar11)" identifier = (call_expression "parse_cap(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "uVar6 = uVar8 >> 5;" (assignment_expression "uVar6 = uVar8 >> 5" identifier = (binary_expression "uVar8 >> 5" identifier >> number_literal)) ;) (if_statement "if (caps.u32s <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }" if (parenthesized_expression "(caps.u32s <= uVar6)" ( (binary_expression "caps.u32s <= uVar6" (field_expression "caps.u32s" identifier . field_identifier) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);\n        }" { comment (expression_statement "bb_error_msg_and_die("invalid capability \'%s\'",pcVar11);" (call_expression "bb_error_msg_and_die("invalid capability \'%s\'",pcVar11)" identifier (argument_list "("invalid capability \'%s\'",pcVar11)" ( (string_literal ""invalid capability \'%s\'"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) })) (if_statement "if (*pcVar11 == '+') {\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }\n        else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }" if (parenthesized_expression "(*pcVar11 == '+')" ( (binary_expression "*pcVar11 == '+'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;\n        }" { (expression_statement "uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable;" (assignment_expression "uVar8 = 1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable" identifier = (binary_expression "1 << ((byte)uVar8 & 0x1f) | caps.data[uVar6].inheritable" (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (field_expression "caps.data[uVar6].inheritable" (subscript_expression "caps.data[uVar6]" (field_expression "caps.data" identifier . field_identifier) [ identifier ]) . field_identifier))) ;) }) (else_clause "else {\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }" else (compound_statement "{\n          uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;\n        }" { (expression_statement "uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable;" (assignment_expression "uVar8 = ~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable" identifier = (binary_expression "~(1 << ((byte)uVar8 & 0x1f)) & caps.data[uVar6].inheritable" (unary_expression "~(1 << ((byte)uVar8 & 0x1f))" ~ (parenthesized_expression "(1 << ((byte)uVar8 & 0x1f))" ( (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & (field_expression "caps.data[uVar6].inheritable" (subscript_expression "caps.data[uVar6]" (field_expression "caps.data" identifier . field_identifier) [ identifier ]) . field_identifier))) ;) }))) (expression_statement "caps.data[uVar6].inheritable = uVar8;" (assignment_expression "caps.data[uVar6].inheritable = uVar8" (field_expression "caps.data[uVar6].inheritable" (subscript_expression "caps.data[uVar6]" (field_expression "caps.data" identifier . field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "pcVar11 = strtok((char *)0x0,",");" (assignment_expression "pcVar11 = strtok((char *)0x0,",")" identifier = (call_expression "strtok((char *)0x0,",")" identifier (argument_list "((char *)0x0,",")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "","" " string_content ") )))) ;) })) (expression_statement "iVar3 = capset(&caps,caps.data);" (assignment_expression "iVar3 = capset(&caps,caps.data)" identifier = (call_expression "capset(&caps,caps.data)" identifier (argument_list "(&caps,caps.data)" ( (pointer_expression "&caps" & identifier) , (field_expression "caps.data" identifier . field_identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        bb_perror_msg_and_die("capset");\n      }" { comment (expression_statement "bb_perror_msg_and_die("capset");" (call_expression "bb_perror_msg_and_die("capset")" identifier (argument_list "("capset")" ( (string_literal ""capset"" " string_content ") ))) ;) })) })) (if_statement "if ((uVar2 & 4) != 0) {\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar11 = strtok(ambient_caps,",");\n      while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }\n    }" { (expression_statement "pcVar11 = strtok(ambient_caps,",");" (assignment_expression "pcVar11 = strtok(ambient_caps,",")" identifier = (call_expression "strtok(ambient_caps,",")" identifier (argument_list "(ambient_caps,",")" ( identifier , (string_literal "","" " string_content ") )))) ;) (while_statement "while (pcVar11 != (char *)0x0) {\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }" while (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar8 = parse_cap(pcVar11);\n        if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }\n        pcVar11 = strtok((char *)0x0,",");\n      }" { (expression_statement "uVar8 = parse_cap(pcVar11);" (assignment_expression "uVar8 = parse_cap(pcVar11)" identifier = (call_expression "parse_cap(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (if_statement "if (*pcVar11 == '+') {\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }\n        else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }" if (parenthesized_expression "(*pcVar11 == '+')" ( (binary_expression "*pcVar11 == '+'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }\n        }" { (expression_statement "iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0);" (assignment_expression "iVar3 = prctl(0x2f,2,(ulong)uVar8,0,0)" identifier = (call_expression "prctl(0x2f,2,(ulong)uVar8,0,0)" identifier (argument_list "(0x2f,2,(ulong)uVar8,0,0)" ( number_literal , number_literal , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_raise");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            bb_perror_msg("cap_ambient_raise");\n          }" { (expression_statement "bb_perror_msg("cap_ambient_raise");" (call_expression "bb_perror_msg("cap_ambient_raise")" identifier (argument_list "("cap_ambient_raise")" ( (string_literal ""cap_ambient_raise"" " string_content ") ))) ;) })) }) (else_clause "else {\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }" else (compound_statement "{\n          iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);\n          if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }\n        }" { (expression_statement "iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0);" (assignment_expression "iVar3 = prctl(0x2f,3,(ulong)uVar8,0,0)" identifier = (call_expression "prctl(0x2f,3,(ulong)uVar8,0,0)" identifier (argument_list "(0x2f,3,(ulong)uVar8,0,0)" ( number_literal , number_literal , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n            bb_perror_msg("cap_ambient_lower");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            bb_perror_msg("cap_ambient_lower");\n          }" { (expression_statement "bb_perror_msg("cap_ambient_lower");" (call_expression "bb_perror_msg("cap_ambient_lower")" identifier (argument_list "("cap_ambient_lower")" ( (string_literal ""cap_ambient_lower"" " string_content ") ))) ;) })) }))) (expression_statement "pcVar11 = strtok((char *)0x0,",");" (assignment_expression "pcVar11 = strtok((char *)0x0,",")" identifier = (call_expression "strtok((char *)0x0,",")" identifier (argument_list "((char *)0x0,",")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "","" " string_content ") )))) ;) })) })) (if_statement "if (*argv_00 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }" if (parenthesized_expression "(*argv_00 == (char *)0x0)" ( (binary_expression "*argv_00 == (char *)0x0" (pointer_expression "*argv_00" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      bb_show_usage();\n    }" { comment (expression_statement "bb_show_usage();" (call_expression "bb_show_usage()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "BB_EXECVP_or_die(argv_00);" (call_expression "BB_EXECVP_or_die(argv_00)" identifier (argument_list "(argv_00)" ( identifier ))) ;) })) (if_statement "if ((*argv_00 != (char *)0x0) || (uVar2 != 1)) {\n                    /* WARNING: Subroutine does not return */\n    bb_show_usage();\n  }" if (parenthesized_expression "((*argv_00 != (char *)0x0) || (uVar2 != 1))" ( (binary_expression "(*argv_00 != (char *)0x0) || (uVar2 != 1)" (parenthesized_expression "(*argv_00 != (char *)0x0)" ( (binary_expression "*argv_00 != (char *)0x0" (pointer_expression "*argv_00" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    bb_show_usage();\n  }" { comment (expression_statement "bb_show_usage();" (call_expression "bb_show_usage()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "getresuid(&ruid,&euid,&suid);" (call_expression "getresuid(&ruid,&euid,&suid)" identifier (argument_list "(&ruid,&euid,&suid)" ( (pointer_expression "&ruid" & identifier) , (pointer_expression "&euid" & identifier) , (pointer_expression "&suid" & identifier) ))) ;) (expression_statement "getresgid(&rgid,&egid,&sgid);" (call_expression "getresgid(&rgid,&egid,&sgid)" identifier (argument_list "(&rgid,&egid,&sgid)" ( (pointer_expression "&rgid" & identifier) , (pointer_expression "&egid" & identifier) , (pointer_expression "&sgid" & identifier) ))) ;) (expression_statement "ngids = 0;" (assignment_expression "ngids = 0" identifier = number_literal) ;) (expression_statement "pgVar4 = bb_getgroups(&ngids,(gid_t *)0x0);" (assignment_expression "pgVar4 = bb_getgroups(&ngids,(gid_t *)0x0)" identifier = (call_expression "bb_getgroups(&ngids,(gid_t *)0x0)" identifier (argument_list "(&ngids,(gid_t *)0x0)" ( (pointer_expression "&ngids" & identifier) , (cast_expression "(gid_t *)0x0" ( (type_descriptor "gid_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "iVar3 = prctl(0x27,0,0,0,0);" (assignment_expression "iVar3 = prctl(0x27,0,0,0,0)" identifier = (call_expression "prctl(0x27,0,0,0,0)" identifier (argument_list "(0x27,0,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n    bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");\n  }" { comment (expression_statement "bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS");" (call_expression "bb_perror_msg_and_die("prctl: %s","GET_NO_NEW_PRIVS")" identifier (argument_list "("prctl: %s","GET_NO_NEW_PRIVS")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""GET_NO_NEW_PRIVS"" " string_content ") ))) ;) })) (expression_statement "__printf_chk(1,"uid: %u\n",ruid);" (call_expression "__printf_chk(1,"uid: %u\n",ruid)" identifier (argument_list "(1,"uid: %u\n",ruid)" ( number_literal , (string_literal ""uid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"euid: %u\n",euid);" (call_expression "__printf_chk(1,"euid: %u\n",euid)" identifier (argument_list "(1,"euid: %u\n",euid)" ( number_literal , (string_literal ""euid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"gid: %u\n",rgid);" (call_expression "__printf_chk(1,"gid: %u\n",rgid)" identifier (argument_list "(1,"gid: %u\n",rgid)" ( number_literal , (string_literal ""gid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"egid: %u\n",egid);" (call_expression "__printf_chk(1,"egid: %u\n",egid)" identifier (argument_list "(1,"egid: %u\n",egid)" ( number_literal , (string_literal ""egid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"Supplementary groups: ");" (call_expression "__printf_chk(1,"Supplementary groups: ")" identifier (argument_list "(1,"Supplementary groups: ")" ( number_literal , (string_literal ""Supplementary groups: "" " string_content ") ))) ;) (if_statement "if (ngids == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < ngids) {\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }" if (parenthesized_expression "(ngids == 0)" ( (binary_expression "ngids == 0" identifier == number_literal) )) (compound_statement "{\n    __printf_chk(1,"[none]");\n  }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) }) (else_clause "else if (0 < ngids) {\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }" else (if_statement "if (0 < ngids) {\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }" if (parenthesized_expression "(0 < ngids)" ( (binary_expression "0 < ngids" number_literal < identifier) )) (compound_statement "{\n    lVar9 = 0;\n    puVar10 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);\n  }" { (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = &DAT_001bd0a1;" (assignment_expression "puVar10 = &DAT_001bd0a1" identifier = (pointer_expression "&DAT_001bd0a1" & identifier)) ;) (do_statement "do {\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    } while ((int)lVar9 < ngids);" do (compound_statement "{\n      __printf_chk(1,puVar10,pgVar4[lVar9]);\n      lVar9 = lVar9 + 1;\n      puVar10 = &DAT_001bd0a0;\n    }" { (expression_statement "__printf_chk(1,puVar10,pgVar4[lVar9]);" (call_expression "__printf_chk(1,puVar10,pgVar4[lVar9])" identifier (argument_list "(1,puVar10,pgVar4[lVar9])" ( number_literal , identifier , (subscript_expression "pgVar4[lVar9]" identifier [ identifier ]) ))) ;) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = &DAT_001bd0a0;" (assignment_expression "puVar10 = &DAT_001bd0a0" identifier = (pointer_expression "&DAT_001bd0a0" & identifier)) ;) }) while (parenthesized_expression "((int)lVar9 < ngids)" ( (binary_expression "(int)lVar9 < ngids" (cast_expression "(int)lVar9" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })))) (expression_statement "__printf_chk(1,"\nno_new_privs: %d\n",iVar3);" (call_expression "__printf_chk(1,"\nno_new_privs: %d\n",iVar3)" identifier (argument_list "(1,"\nno_new_privs: %d\n",iVar3)" ( number_literal , (string_literal ""\nno_new_privs: %d\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "getcaps(&caps);" (call_expression "getcaps(&caps)" identifier (argument_list "(&caps)" ( (pointer_expression "&caps" & identifier) ))) ;) (expression_statement "__printf_chk(1,"Inheritable capabilities: ");" (call_expression "__printf_chk(1,"Inheritable capabilities: ")" identifier (argument_list "(1,"Inheritable capabilities: ")" ( number_literal , (string_literal ""Inheritable capabilities: "" " string_content ") ))) ;) (expression_statement "uVar5 = (ulong)caps.u32s;" (assignment_expression "uVar5 = (ulong)caps.u32s" identifier = (cast_expression "(ulong)caps.u32s" ( (type_descriptor "ulong" type_identifier) ) (field_expression "caps.u32s" identifier . field_identifier))) ;) (if_statement "if (caps.u32s == 0) {\n    uVar8 = 0;\n    uVar7 = uVar5;\n  }\n  else {\n    pcVar11 = "";\n    uVar7 = 0;\n    uVar8 = 0;\n    do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);\n  }" if (parenthesized_expression "(caps.u32s == 0)" ( (binary_expression "caps.u32s == 0" (field_expression "caps.u32s" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    uVar7 = uVar5;\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = uVar5;" (assignment_expression "uVar7 = uVar5" identifier = identifier) ;) }) (else_clause "else {\n    pcVar11 = "";\n    uVar7 = 0;\n    uVar8 = 0;\n    do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);\n  }" else (compound_statement "{\n    pcVar11 = "";\n    uVar7 = 0;\n    uVar8 = 0;\n    do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);\n  }" { (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    } while ((uint)((int)uVar8 >> 5) < caps.u32s);" do (compound_statement "{\n      if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }\n      uVar8 = uVar8 + 1;\n      if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }\n      uVar7 = (ulong)(uint)((int)uVar8 >> 5);\n      uVar5 = (ulong)caps.u32s;\n    }" { (if_statement "if ((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0) {\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }" if (parenthesized_expression "((caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0)" ( (binary_expression "(caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)) != 0" (parenthesized_expression "(caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f))" ( (binary_expression "caps.data[uVar7].inheritable & 1 << ((byte)uVar8 & 0x1f)" (field_expression "caps.data[uVar7].inheritable" (subscript_expression "caps.data[uVar7]" (field_expression "caps.data" identifier . field_identifier) [ identifier ]) . field_identifier) & (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) )) != number_literal) )) (compound_statement "{\n        printf_cap(pcVar11,uVar8);\n        pcVar11 = ",";\n      }" { (expression_statement "printf_cap(pcVar11,uVar8);" (call_expression "printf_cap(pcVar11,uVar8)" identifier (argument_list "(pcVar11,uVar8)" ( identifier , identifier ))) ;) (expression_statement "pcVar11 = ",";" (assignment_expression "pcVar11 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == 0x26) {\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }" if (parenthesized_expression "(uVar8 == 0x26)" ( (binary_expression "uVar8 == 0x26" identifier == number_literal) )) (compound_statement "{\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        lVar9 = 0;\n        pcVar11 = "";\n        do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);\n        if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        bb_putchar(10);\n        if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        return 0;\n      }" { (if_statement "if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar11 == '\0')" ( (binary_expression "*pcVar11 == '\0'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })) (expression_statement "__printf_chk(1,"\nAmbient capabilities: ");" (call_expression "__printf_chk(1,"\nAmbient capabilities: ")" identifier (argument_list "(1,"\nAmbient capabilities: ")" ( number_literal , (string_literal ""\nAmbient capabilities: "" " escape_sequence string_content ") ))) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);" do (compound_statement "{\n          uVar8 = (uint)lVar9;\n          iVar3 = prctl(0x2f,1,lVar9,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        }" { (expression_statement "uVar8 = (uint)lVar9;" (assignment_expression "uVar8 = (uint)lVar9" identifier = (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar3 = prctl(0x2f,1,lVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,1,lVar9,0,0)" identifier = (call_expression "prctl(0x2f,1,lVar9,0,0)" identifier (argument_list "(0x2f,1,lVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" { comment (expression_statement "bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET");" (call_expression "bb_perror_msg_and_die("prctl: %s","CAP_AMBIENT_IS_SET")" identifier (argument_list "("prctl: %s","CAP_AMBIENT_IS_SET")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""CAP_AMBIENT_IS_SET"" " string_content ") ))) ;) })) (if_statement "if (iVar3 != 0) {\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            printf_cap(pcVar11,uVar8);\n            pcVar11 = ",";\n          }" { (expression_statement "printf_cap(pcVar11,uVar8);" (call_expression "printf_cap(pcVar11,uVar8)" identifier (argument_list "(pcVar11,uVar8)" ( identifier , identifier ))) ;) (expression_statement "pcVar11 = ",";" (assignment_expression "pcVar11 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0x26)" ( (binary_expression "lVar9 != 0x26" identifier != number_literal) )) ;) (if_statement "if (uVar8 == 0xffffffff) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          __printf_chk(1,"[unsupported]");\n        }" { (expression_statement "__printf_chk(1,"[unsupported]");" (call_expression "__printf_chk(1,"[unsupported]")" identifier (argument_list "(1,"[unsupported]")" ( number_literal , (string_literal ""[unsupported]"" " string_content ") ))) ;) }) (else_clause "else if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }" else (if_statement "if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar11 == '\0')" ( (binary_expression "*pcVar11 == '\0'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })))) (expression_statement "__printf_chk(1,"\nCapability bounding set: ");" (call_expression "__printf_chk(1,"\nCapability bounding set: ")" identifier (argument_list "(1,"\nCapability bounding set: ")" ( number_literal , (string_literal ""\nCapability bounding set: "" " escape_sequence string_content ") ))) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        } while (lVar9 != 0x26);" do (compound_statement "{\n          iVar3 = prctl(0x17,lVar9,0,0,0);\n          if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }\n          lVar9 = lVar9 + 1;\n        }" { (expression_statement "iVar3 = prctl(0x17,lVar9,0,0,0);" (assignment_expression "iVar3 = prctl(0x17,lVar9,0,0,0)" identifier = (call_expression "prctl(0x17,lVar9,0,0,0)" identifier (argument_list "(0x17,lVar9,0,0,0)" ( number_literal , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");\n          }" { comment (expression_statement "bb_perror_msg_and_die("prctl: %s","CAPBSET_READ");" (call_expression "bb_perror_msg_and_die("prctl: %s","CAPBSET_READ")" identifier (argument_list "("prctl: %s","CAPBSET_READ")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""CAPBSET_READ"" " string_content ") ))) ;) })) (if_statement "if (iVar3 != 0) {\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            printf_cap(pcVar11,(uint)lVar9);\n            pcVar11 = ",";\n          }" { (expression_statement "printf_cap(pcVar11,(uint)lVar9);" (call_expression "printf_cap(pcVar11,(uint)lVar9)" identifier (argument_list "(pcVar11,(uint)lVar9)" ( identifier , (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "pcVar11 = ",";" (assignment_expression "pcVar11 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0x26)" ( (binary_expression "lVar9 != 0x26" identifier != number_literal) )) ;) (if_statement "if (*pcVar11 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar11 == '\0')" ( (binary_expression "*pcVar11 == '\0'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })) (expression_statement "bb_putchar(10);" (call_expression "bb_putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = (ulong)(uint)((int)uVar8 >> 5);" (assignment_expression "uVar7 = (ulong)(uint)((int)uVar8 >> 5)" identifier = (call_expression "(ulong)(uint)((int)uVar8 >> 5)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)uVar8 >> 5)" ( (binary_expression "(int)uVar8 >> 5" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = (ulong)caps.u32s;" (assignment_expression "uVar5 = (ulong)caps.u32s" identifier = (cast_expression "(ulong)caps.u32s" ( (type_descriptor "ulong" type_identifier) ) (field_expression "caps.u32s" identifier . field_identifier))) ;) }) while (parenthesized_expression "((uint)((int)uVar8 >> 5) < caps.u32s)" ( (binary_expression "(uint)((int)uVar8 >> 5) < caps.u32s" (call_expression "(uint)((int)uVar8 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar8 >> 5)" ( (binary_expression "(int)uVar8 >> 5" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) < (field_expression "caps.u32s" identifier . field_identifier)) )) ;) }))) (expression_statement "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8);" (call_expression "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8)" identifier (argument_list "(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,uVar8)" ( number_literal , (string_literal ""\nindex: %u u32s: %u capability: %u\n"" " escape_sequence string_content escape_sequence ") , identifier , identifier , identifier ))) ;) comment (expression_statement "bb_error_msg_and_die("unsupported capability");" (call_expression "bb_error_msg_and_die("unsupported capability")" identifier (argument_list "("unsupported capability")" ( (string_literal ""unsupported capability"" " string_content ") ))) ;) })))
(translation_unit "undefined8 FUN_0015f697(undefined8 param_1,long param_2)\n\n{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    \n  FUN_0010dc50("unsupported capability");\n}\n\n" (function_definition "undefined8 FUN_0015f697(undefined8 param_1,long param_2)\n\n{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    \n  FUN_0010dc50("unsupported capability");\n}" type_identifier (function_declarator "FUN_0015f697(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    \n  FUN_0010dc50("unsupported capability");\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *unaff_R12;" primitive_type (pointer_declarator "*unaff_R12" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "__uid_t local_84;" type_identifier identifier ;) (declaration "__uid_t local_80;" type_identifier identifier ;) (declaration "__uid_t local_7c;" type_identifier identifier ;) (declaration "__gid_t local_78;" type_identifier identifier ;) (declaration "__gid_t local_74;" type_identifier identifier ;) (declaration "__gid_t local_70;" type_identifier identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined1 local_58 [8];" type_identifier (array_declarator "local_58 [8]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 local_4c [8];" type_identifier (array_declarator "local_4c [8]" identifier [ number_literal ]) ;) (declaration "uint auStack_44 [5];" type_identifier (array_declarator "auStack_44 [5]" identifier [ number_literal ]) ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);" (assignment_expression "uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" identifier = (call_expression "FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" identifier (argument_list "(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" ( identifier , (pointer_expression "&DAT_001bd78f" & identifier) , (pointer_expression "&DAT_001bd8b8" & identifier) , (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "plVar1 = (long *)(param_2 + (long)optind * 8);" (assignment_expression "plVar1 = (long *)(param_2 + (long)optind * 8)" identifier = (cast_expression "(long *)(param_2 + (long)optind * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) ;) (if_statement "if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }" if (parenthesized_expression "((uVar2 & 1) == 0)" ( (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }" { (if_statement "if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }" if (parenthesized_expression "(((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0))" ( (binary_expression "((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" ( (comma_expression "iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0" (assignment_expression "iVar3 = prctl(0x26,1,0,0,0)" identifier = (call_expression "prctl(0x26,1,0,0,0)" identifier (argument_list "(0x26,1,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }" { (expression_statement "FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");" (call_expression "FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS")" identifier (argument_list "("prctl: %s","SET_NO_NEW_PRIVS")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""SET_NO_NEW_PRIVS"" " string_content ") ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }" { (expression_statement "FUN_00198cf1(local_58);" (call_expression "FUN_00198cf1(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "pcVar12 = strtok(local_68,",");" (assignment_expression "pcVar12 = strtok(local_68,",")" identifier = (call_expression "strtok(local_68,",")" identifier (argument_list "(local_68,",")" ( identifier , (string_literal "","" " string_content ") )))) ;) (expression_statement "unaff_R12 = local_68;" (assignment_expression "unaff_R12 = local_68" identifier = identifier) ;) (if_statement "if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }" { (expression_statement "unaff_R12 = &DAT_00000001;" (assignment_expression "unaff_R12 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (do_statement "do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);" do (compound_statement "{\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        }" { (expression_statement "uVar4 = FUN_0015f666(pcVar12);" (assignment_expression "uVar4 = FUN_0015f666(pcVar12)" identifier = (call_expression "FUN_0015f666(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "uVar6 = uVar4 >> 5;" (assignment_expression "uVar6 = uVar4 >> 5" identifier = (binary_expression "uVar4 >> 5" identifier >> number_literal)) ;) (if_statement "if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }" if (parenthesized_expression "(local_50 <= uVar6)" ( (binary_expression "local_50 <= uVar6" identifier <= identifier) )) (compound_statement "{\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }" { (expression_statement "FUN_0010dc50("invalid capability \'%s\'",pcVar12);" (call_expression "FUN_0010dc50("invalid capability \'%s\'",pcVar12)" identifier (argument_list "("invalid capability \'%s\'",pcVar12)" ( (string_literal ""invalid capability \'%s\'"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) })) (if_statement "if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" if (parenthesized_expression "(*pcVar12 == '+')" ( (binary_expression "*pcVar12 == '+'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }" { (expression_statement "uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];" (assignment_expression "uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3]" identifier = (binary_expression "1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3]" (binary_expression "1 << ((byte)uVar4 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar4 & 0x1f)" ( (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (subscript_expression "auStack_44[(ulong)uVar6 * 3]" identifier [ (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]))) ;) }) (else_clause "else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" else (compound_statement "{\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" { (expression_statement "uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];" (assignment_expression "uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3]" identifier = (binary_expression "~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3]" (unary_expression "~(1 << ((byte)uVar4 & 0x1f))" ~ (parenthesized_expression "(1 << ((byte)uVar4 & 0x1f))" ( (binary_expression "1 << ((byte)uVar4 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar4 & 0x1f)" ( (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & (subscript_expression "auStack_44[(ulong)uVar6 * 3]" identifier [ (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]))) ;) }))) (expression_statement "auStack_44[(ulong)uVar6 * 3] = uVar4;" (assignment_expression "auStack_44[(ulong)uVar6 * 3] = uVar4" (subscript_expression "auStack_44[(ulong)uVar6 * 3]" identifier [ (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) = identifier) ;) (expression_statement "pcVar12 = strtok((char *)0x0,",");" (assignment_expression "pcVar12 = strtok((char *)0x0,",")" identifier = (call_expression "strtok((char *)0x0,",")" identifier (argument_list "((char *)0x0,",")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "","" " string_content ") )))) ;) }) while (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "iVar3 = capset(local_58,local_4c);" (assignment_expression "iVar3 = capset(local_58,local_4c)" identifier = (call_expression "capset(local_58,local_4c)" identifier (argument_list "(local_58,local_4c)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0010d88d("capset");\n      }" { (expression_statement "FUN_0010d88d("capset");" (call_expression "FUN_0010d88d("capset")" identifier (argument_list "("capset")" ( (string_literal ""capset"" " string_content ") ))) ;) })) })) (if_statement "if ((uVar2 & 4) == 0) goto LAB_0015fc66;" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0015fc66;" goto statement_identifier ;)) (expression_statement "pcVar12 = strtok(local_60,",");" (assignment_expression "pcVar12 = strtok(local_60,",")" identifier = (call_expression "strtok(local_60,",")" identifier (argument_list "(local_60,",")" ( identifier , (string_literal "","" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_0015fc66;" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0015fc66;" goto statement_identifier ;)) (expression_statement "unaff_R12 = "cap_ambient_lower";" (assignment_expression "unaff_R12 = "cap_ambient_lower"" identifier = (string_literal ""cap_ambient_lower"" " string_content ")) ;) (do_statement "do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );" do (compound_statement "{\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    }" { (expression_statement "uVar2 = FUN_0015f666(pcVar12);" (assignment_expression "uVar2 = FUN_0015f666(pcVar12)" identifier = (call_expression "FUN_0015f666(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "uVar9 = (ulong)uVar2;" (assignment_expression "uVar9 = (ulong)uVar2" identifier = (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar12 != '+') goto LAB_0015fc72;" if (parenthesized_expression "(*pcVar12 != '+')" ( (binary_expression "*pcVar12 != '+'" (pointer_expression "*pcVar12" * identifier) != (char_literal "'+'" ' character ')) )) (goto_statement "goto LAB_0015fc72;" goto statement_identifier ;)) (expression_statement "iVar3 = prctl(0x2f,2,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,2,uVar9,0,0)" identifier = (call_expression "prctl(0x2f,2,uVar9,0,0)" identifier (argument_list "(0x2f,2,uVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        FUN_0010d7b5("cap_ambient_raise");\n      }" { (expression_statement "FUN_0010d7b5("cap_ambient_raise");" (call_expression "FUN_0010d7b5("cap_ambient_raise")" identifier (argument_list "("cap_ambient_raise")" ( (string_literal ""cap_ambient_raise"" " string_content ") ))) ;) })) (while_statement "while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }" while (parenthesized_expression "(pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0)" ( (comma_expression "pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0" (assignment_expression "pcVar12 = strtok((char *)0x0,",")" identifier = (call_expression "strtok((char *)0x0,",")" identifier (argument_list "((char *)0x0,",")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "","" " string_content ") )))) , (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }" { (labeled_statement "LAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }" statement_identifier : (if_statement "if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }" if (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) (compound_statement "{\n                    \n          FUN_0019b16a(plVar1);\n        }" { (expression_statement "FUN_0019b16a(plVar1);" (call_expression "FUN_0019b16a(plVar1)" identifier (argument_list "(plVar1)" ( identifier ))) ;) }))) (expression_statement "FUN_0010c878();" (call_expression "FUN_0010c878()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar9 = extraout_RDX;" (assignment_expression "uVar9 = extraout_RDX" identifier = identifier) ;) (labeled_statement "LAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);" statement_identifier : (expression_statement "iVar3 = prctl(0x2f,3,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,3,uVar9,0,0)" identifier = (call_expression "prctl(0x2f,3,uVar9,0,0)" identifier (argument_list "(0x2f,3,uVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;)) (if_statement "if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          FUN_0010d7b5(unaff_R12);\n        }" { (expression_statement "FUN_0010d7b5(unaff_R12);" (call_expression "FUN_0010d7b5(unaff_R12)" identifier (argument_list "(unaff_R12)" ( identifier ))) ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }" if (parenthesized_expression "((*plVar1 != 0) || (uVar2 != 1))" ( (binary_expression "(*plVar1 != 0) || (uVar2 != 1)" (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) || (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    FUN_0010c878();\n  }" { (expression_statement "FUN_0010c878();" (call_expression "FUN_0010c878()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "getresuid(&local_84,&local_80,&local_7c);" (call_expression "getresuid(&local_84,&local_80,&local_7c)" identifier (argument_list "(&local_84,&local_80,&local_7c)" ( (pointer_expression "&local_84" & identifier) , (pointer_expression "&local_80" & identifier) , (pointer_expression "&local_7c" & identifier) ))) ;) (expression_statement "getresgid(&local_78,&local_74,&local_70);" (call_expression "getresgid(&local_78,&local_74,&local_70)" identifier (argument_list "(&local_78,&local_74,&local_70)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_74" & identifier) , (pointer_expression "&local_70" & identifier) ))) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "lVar5 = FUN_00198a08(&local_6c,0);" (assignment_expression "lVar5 = FUN_00198a08(&local_6c,0)" identifier = (call_expression "FUN_00198a08(&local_6c,0)" identifier (argument_list "(&local_6c,0)" ( (pointer_expression "&local_6c" & identifier) , number_literal )))) ;) (expression_statement "iVar3 = prctl(0x27,0,0,0,0);" (assignment_expression "iVar3 = prctl(0x27,0,0,0,0)" identifier = (call_expression "prctl(0x27,0,0,0,0)" identifier (argument_list "(0x27,0,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }" { (expression_statement "FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");" (call_expression "FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS")" identifier (argument_list "("prctl: %s","GET_NO_NEW_PRIVS")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""GET_NO_NEW_PRIVS"" " string_content ") ))) ;) })) (expression_statement "__printf_chk(1,"uid: %u\n",local_84);" (call_expression "__printf_chk(1,"uid: %u\n",local_84)" identifier (argument_list "(1,"uid: %u\n",local_84)" ( number_literal , (string_literal ""uid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"euid: %u\n",local_80);" (call_expression "__printf_chk(1,"euid: %u\n",local_80)" identifier (argument_list "(1,"euid: %u\n",local_80)" ( number_literal , (string_literal ""euid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"gid: %u\n",local_78);" (call_expression "__printf_chk(1,"gid: %u\n",local_78)" identifier (argument_list "(1,"gid: %u\n",local_78)" ( number_literal , (string_literal ""gid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"egid: %u\n",local_74);" (call_expression "__printf_chk(1,"egid: %u\n",local_74)" identifier (argument_list "(1,"egid: %u\n",local_74)" ( number_literal , (string_literal ""egid: %u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"Supplementary groups: ");" (call_expression "__printf_chk(1,"Supplementary groups: ")" identifier (argument_list "(1,"Supplementary groups: ")" ( number_literal , (string_literal ""Supplementary groups: "" " string_content ") ))) ;) (if_statement "if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (compound_statement "{\n    __printf_chk(1,"[none]");\n  }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) }) (else_clause "else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" else (if_statement "if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" if (parenthesized_expression "(0 < local_6c)" ( (binary_expression "0 < local_6c" number_literal < identifier) )) (compound_statement "{\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = &DAT_001bd0a1;" (assignment_expression "puVar11 = &DAT_001bd0a1" identifier = (pointer_expression "&DAT_001bd0a1" & identifier)) ;) (do_statement "do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);" do (compound_statement "{\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    }" { (expression_statement "__printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));" (call_expression "__printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4))" identifier (argument_list "(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(lVar5 + lVar10 * 4)" * (cast_expression "(undefined4 *)(lVar5 + lVar10 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + lVar10 * 4)" ( (binary_expression "lVar5 + lVar10 * 4" identifier + (binary_expression "lVar10 * 4" identifier * number_literal)) )))) ))) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = &DAT_001bd0a0;" (assignment_expression "puVar11 = &DAT_001bd0a0" identifier = (pointer_expression "&DAT_001bd0a0" & identifier)) ;) }) while (parenthesized_expression "((int)lVar10 < local_6c)" ( (binary_expression "(int)lVar10 < local_6c" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })))) (expression_statement "__printf_chk(1,"\nno_new_privs: %d\n",iVar3);" (call_expression "__printf_chk(1,"\nno_new_privs: %d\n",iVar3)" identifier (argument_list "(1,"\nno_new_privs: %d\n",iVar3)" ( number_literal , (string_literal ""\nno_new_privs: %d\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "FUN_00198cf1(local_58);" (call_expression "FUN_00198cf1(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "__printf_chk(1,"Inheritable capabilities: ");" (call_expression "__printf_chk(1,"Inheritable capabilities: ")" identifier (argument_list "(1,"Inheritable capabilities: ")" ( number_literal , (string_literal ""Inheritable capabilities: "" " string_content ") ))) ;) (expression_statement "uVar9 = (ulong)local_50;" (assignment_expression "uVar9 = (ulong)local_50" identifier = (cast_expression "(ulong)local_50" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = uVar9;" (assignment_expression "uVar7 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" else (compound_statement "{\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" { (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);" do (compound_statement "{\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    }" { (if_statement "if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }" if (parenthesized_expression "((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0)" ( (binary_expression "(auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0" (parenthesized_expression "(auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f))" ( (binary_expression "auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)" (subscript_expression "auStack_44[uVar7 * 3]" identifier [ (binary_expression "uVar7 * 3" identifier * number_literal) ]) & (binary_expression "1 << ((byte)iVar3 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar3 & 0x1f)" ( (binary_expression "(byte)iVar3 & 0x1f" (cast_expression "(byte)iVar3" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) )) != number_literal) )) (compound_statement "{\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }" { (expression_statement "FUN_00198ca3(pcVar12,iVar3);" (call_expression "FUN_00198ca3(pcVar12,iVar3)" identifier (argument_list "(pcVar12,iVar3)" ( identifier , identifier ))) ;) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }" if (parenthesized_expression "(iVar3 == 0x26)" ( (binary_expression "iVar3 == 0x26" identifier == number_literal) )) (compound_statement "{\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }" { (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })) (expression_statement "__printf_chk(1,"\nAmbient capabilities: ");" (call_expression "__printf_chk(1,"\nAmbient capabilities: ")" identifier (argument_list "(1,"\nAmbient capabilities: ")" ( number_literal , (string_literal ""\nAmbient capabilities: "" " escape_sequence string_content ") ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);" do (compound_statement "{\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        }" { (expression_statement "iVar8 = (int)uVar9;" (assignment_expression "iVar8 = (int)uVar9" identifier = (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar3 = prctl(0x2f,1,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,1,uVar9,0,0)" identifier = (call_expression "prctl(0x2f,1,uVar9,0,0)" identifier (argument_list "(0x2f,1,uVar9,0,0)" ( number_literal , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" { (expression_statement "FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");" (call_expression "FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET")" identifier (argument_list "("prctl: %s","CAP_AMBIENT_IS_SET")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""CAP_AMBIENT_IS_SET"" " string_content ") ))) ;) })) (if_statement "if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" { (expression_statement "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);" (call_expression "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff)" identifier (argument_list "(pcVar12,uVar9 & 0xffffffff)" ( identifier , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != 0x26)" ( (binary_expression "uVar9 != 0x26" identifier != number_literal) )) ;) (if_statement "if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          __printf_chk(1,"[unsupported]");\n        }" { (expression_statement "__printf_chk(1,"[unsupported]");" (call_expression "__printf_chk(1,"[unsupported]")" identifier (argument_list "(1,"[unsupported]")" ( number_literal , (string_literal ""[unsupported]"" " string_content ") ))) ;) }) (else_clause "else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" else (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })))) (expression_statement "__printf_chk(1,"\nCapability bounding set: ");" (call_expression "__printf_chk(1,"\nCapability bounding set: ")" identifier (argument_list "(1,"\nCapability bounding set: ")" ( number_literal , (string_literal ""\nCapability bounding set: "" " escape_sequence string_content ") ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);" do (compound_statement "{\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        }" { (expression_statement "iVar3 = prctl(0x17,uVar9,0,0,0);" (assignment_expression "iVar3 = prctl(0x17,uVar9,0,0,0)" identifier = (call_expression "prctl(0x17,uVar9,0,0,0)" identifier (argument_list "(0x17,uVar9,0,0,0)" ( number_literal , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }" { (expression_statement "FUN_0010d88d("prctl: %s","CAPBSET_READ");" (call_expression "FUN_0010d88d("prctl: %s","CAPBSET_READ")" identifier (argument_list "("prctl: %s","CAPBSET_READ")" ( (string_literal ""prctl: %s"" " string_content ") , (string_literal ""CAPBSET_READ"" " string_content ") ))) ;) })) (if_statement "if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" { (expression_statement "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);" (call_expression "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff)" identifier (argument_list "(pcVar12,uVar9 & 0xffffffff)" ( identifier , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" identifier = (string_literal "","" " string_content ")) ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != 0x26)" ( (binary_expression "uVar9 != 0x26" identifier != number_literal) )) ;) (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" { (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" identifier (argument_list "(1,"[none]")" ( number_literal , (string_literal ""[none]"" " string_content ") ))) ;) })) (expression_statement "FUN_0010e956(10);" (call_expression "FUN_0010e956(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar7 = (ulong)(uint)(iVar3 >> 5);" (assignment_expression "uVar7 = (ulong)(uint)(iVar3 >> 5)" identifier = (call_expression "(ulong)(uint)(iVar3 >> 5)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar3 >> 5)" ( (binary_expression "iVar3 >> 5" identifier >> number_literal) )))) ;) (expression_statement "uVar9 = (ulong)local_50;" (assignment_expression "uVar9 = (ulong)local_50" identifier = (cast_expression "(ulong)local_50" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((uint)(iVar3 >> 5) < local_50)" ( (binary_expression "(uint)(iVar3 >> 5) < local_50" (call_expression "(uint)(iVar3 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 >> 5)" ( (binary_expression "iVar3 >> 5" identifier >> number_literal) ))) < identifier) )) ;) }))) (expression_statement "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);" (call_expression "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3)" identifier (argument_list "(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3)" ( number_literal , (string_literal ""\nindex: %u u32s: %u capability: %u\n"" " escape_sequence string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0010dc50("unsupported capability");" (call_expression "FUN_0010dc50("unsupported capability")" identifier (argument_list "("unsupported capability")" ( (string_literal ""unsupported capability"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) | (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (string_literal " string_content ") )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (string_literal " string_content ") )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT , LIT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) })))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) < IDENT) )) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })))
(function_definition "undefined8 FUN_0015f697(undefined8 param_1,long param_2)\n\n{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    \n  FUN_0010dc50("unsupported capability");\n}" (type_identifier "undefined8") (function_declarator "FUN_0015f697(undefined8 param_1,long param_2)" (identifier "FUN_0015f697") (parameter_list "(undefined8 param_1,long param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  long *plVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  long lVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong extraout_RDX;\n  int iVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined *puVar11;\n  char *pcVar12;\n  char *unaff_R12;\n  long in_FS_OFFSET;\n  __uid_t local_84;\n  __uid_t local_80;\n  __uid_t local_7c;\n  __gid_t local_78;\n  __gid_t local_74;\n  __gid_t local_70;\n  int local_6c;\n  char *local_68;\n  char *local_60;\n  undefined1 local_58 [8];\n  uint local_50;\n  undefined1 local_4c [8];\n  uint auStack_44 [5];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);\n  plVar1 = (long *)(param_2 + (long)optind * 8);\n  if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }\n  if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }\n  getresuid(&local_84,&local_80,&local_7c);\n  getresgid(&local_78,&local_74,&local_70);\n  local_6c = 0;\n  lVar5 = FUN_00198a08(&local_6c,0);\n  iVar3 = prctl(0x27,0,0,0,0);\n  if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }\n  __printf_chk(1,"uid: %u\n",local_84);\n  __printf_chk(1,"euid: %u\n",local_80);\n  __printf_chk(1,"gid: %u\n",local_78);\n  __printf_chk(1,"egid: %u\n",local_74);\n  __printf_chk(1,"Supplementary groups: ");\n  if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }\n  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);\n  FUN_00198cf1(local_58);\n  __printf_chk(1,"Inheritable capabilities: ");\n  uVar9 = (ulong)local_50;\n  if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }\n  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);\n                    \n  FUN_0010dc50("unsupported capability");\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong extraout_RDX;" (type_identifier "ulong") (identifier "extraout_RDX") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "char *unaff_R12;" (primitive_type "char") (pointer_declarator "*unaff_R12" (* "*") (identifier "unaff_R12")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "__uid_t local_84;" (type_identifier "__uid_t") (identifier "local_84") (; ";")) (declaration "__uid_t local_80;" (type_identifier "__uid_t") (identifier "local_80") (; ";")) (declaration "__uid_t local_7c;" (type_identifier "__uid_t") (identifier "local_7c") (; ";")) (declaration "__gid_t local_78;" (type_identifier "__gid_t") (identifier "local_78") (; ";")) (declaration "__gid_t local_74;" (type_identifier "__gid_t") (identifier "local_74") (; ";")) (declaration "__gid_t local_70;" (type_identifier "__gid_t") (identifier "local_70") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "char *local_68;" (primitive_type "char") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "char *local_60;" (primitive_type "char") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "undefined1 local_58 [8];" (type_identifier "undefined1") (array_declarator "local_58 [8]" (identifier "local_58") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined1 local_4c [8];" (type_identifier "undefined1") (array_declarator "local_4c [8]" (identifier "local_4c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint auStack_44 [5];" (type_identifier "uint") (array_declarator "auStack_44 [5]" (identifier "auStack_44") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "long local_30;" (sized_type_specifier "long" (long "long")) (identifier "local_30") (; ";")) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);" (assignment_expression "uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" (identifier "uVar2") (= "=") (call_expression "FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" (identifier "FUN_0019c2cc") (argument_list "(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_001bd78f" (& "&") (identifier "DAT_001bd78f")) (, ",") (pointer_expression "&DAT_001bd8b8" (& "&") (identifier "DAT_001bd8b8")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (expression_statement "plVar1 = (long *)(param_2 + (long)optind * 8);" (assignment_expression "plVar1 = (long *)(param_2 + (long)optind * 8)" (identifier "plVar1") (= "=") (cast_expression "(long *)(param_2 + (long)optind * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + (long)optind * 8)" (( "(") (binary_expression "param_2 + (long)optind * 8" (identifier "param_2") (+ "+") (binary_expression "(long)optind * 8" (cast_expression "(long)optind" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "optind")) (* "*") (number_literal "8"))) () ")")))) (; ";")) (if_statement "if ((uVar2 & 1) == 0) {\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }" (if "if") (parenthesized_expression "((uVar2 & 1) == 0)" (( "(") (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }\n    if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }\n    if ((uVar2 & 4) == 0) goto LAB_0015fc66;\n    pcVar12 = strtok(local_60,",");\n    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;\n    unaff_R12 = "cap_ambient_lower";\n    do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );\n  }" ({ "{") (if_statement "if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }" (if "if") (parenthesized_expression "(((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0))" (( "(") (binary_expression "((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" (parenthesized_expression "((uVar2 & 8) != 0)" (( "(") (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" (( "(") (binary_expression "uVar2 & 8" (identifier "uVar2") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)" (( "(") (comma_expression "iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0" (assignment_expression "iVar3 = prctl(0x26,1,0,0,0)" (identifier "iVar3") (= "=") (call_expression "prctl(0x26,1,0,0,0)" (identifier "prctl") (argument_list "(0x26,1,0,0,0)" (( "(") (number_literal "0x26") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");\n    }" ({ "{") (expression_statement "FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");" (call_expression "FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS")" (identifier "FUN_0010d88d") (argument_list "("prctl: %s","SET_NO_NEW_PRIVS")" (( "(") (string_literal ""prctl: %s"" (" """) (string_content "prctl: %s") (" """)) (, ",") (string_literal ""SET_NO_NEW_PRIVS"" (" """) (string_content "SET_NO_NEW_PRIVS") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 2) != 0) {\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }" (if "if") (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00198cf1(local_58);\n      pcVar12 = strtok(local_68,",");\n      unaff_R12 = local_68;\n      if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }\n      iVar3 = capset(local_58,local_4c);\n      if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }\n    }" ({ "{") (expression_statement "FUN_00198cf1(local_58);" (call_expression "FUN_00198cf1(local_58)" (identifier "FUN_00198cf1") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "pcVar12 = strtok(local_68,",");" (assignment_expression "pcVar12 = strtok(local_68,",")" (identifier "pcVar12") (= "=") (call_expression "strtok(local_68,",")" (identifier "strtok") (argument_list "(local_68,",")" (( "(") (identifier "local_68") (, ",") (string_literal "","" (" """) (string_content ",") (" """)) () ")")))) (; ";")) (expression_statement "unaff_R12 = local_68;" (assignment_expression "unaff_R12 = local_68" (identifier "unaff_R12") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (pcVar12 != (char *)0x0) {\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }" (if "if") (parenthesized_expression "(pcVar12 != (char *)0x0)" (( "(") (binary_expression "pcVar12 != (char *)0x0" (identifier "pcVar12") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        unaff_R12 = &DAT_00000001;\n        do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);\n      }" ({ "{") (expression_statement "unaff_R12 = &DAT_00000001;" (assignment_expression "unaff_R12 = &DAT_00000001" (identifier "unaff_R12") (= "=") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001"))) (; ";")) (do_statement "do {\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        } while (pcVar12 != (char *)0x0);" (do "do") (compound_statement "{\n          uVar4 = FUN_0015f666(pcVar12);\n          uVar6 = uVar4 >> 5;\n          if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }\n          if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }\n          auStack_44[(ulong)uVar6 * 3] = uVar4;\n          pcVar12 = strtok((char *)0x0,",");\n        }" ({ "{") (expression_statement "uVar4 = FUN_0015f666(pcVar12);" (assignment_expression "uVar4 = FUN_0015f666(pcVar12)" (identifier "uVar4") (= "=") (call_expression "FUN_0015f666(pcVar12)" (identifier "FUN_0015f666") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "uVar6 = uVar4 >> 5;" (assignment_expression "uVar6 = uVar4 >> 5" (identifier "uVar6") (= "=") (binary_expression "uVar4 >> 5" (identifier "uVar4") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (local_50 <= uVar6) {\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }" (if "if") (parenthesized_expression "(local_50 <= uVar6)" (( "(") (binary_expression "local_50 <= uVar6" (identifier "local_50") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n                    \n            FUN_0010dc50("invalid capability \'%s\'",pcVar12);\n          }" ({ "{") (expression_statement "FUN_0010dc50("invalid capability \'%s\'",pcVar12);" (call_expression "FUN_0010dc50("invalid capability \'%s\'",pcVar12)" (identifier "FUN_0010dc50") (argument_list "("invalid capability \'%s\'",pcVar12)" (( "(") (string_literal ""invalid capability \'%s\'"" (" """) (string_content "invalid capability ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """)) (, ",") (identifier "pcVar12") () ")"))) (; ";")) (} "}"))) (if_statement "if (*pcVar12 == '+') {\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }\n          else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" (if "if") (parenthesized_expression "(*pcVar12 == '+')" (( "(") (binary_expression "*pcVar12 == '+'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")")) (compound_statement "{\n            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];\n          }" ({ "{") (expression_statement "uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];" (assignment_expression "uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3]" (identifier "uVar4") (= "=") (binary_expression "1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3]" (binary_expression "1 << ((byte)uVar4 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar4 & 0x1f)" (( "(") (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (subscript_expression "auStack_44[(ulong)uVar6 * 3]" (identifier "auStack_44") ([ "[") (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6")) (* "*") (number_literal "3")) (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" (else "else") (compound_statement "{\n            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];\n          }" ({ "{") (expression_statement "uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];" (assignment_expression "uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3]" (identifier "uVar4") (= "=") (binary_expression "~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3]" (unary_expression "~(1 << ((byte)uVar4 & 0x1f))" (~ "~") (parenthesized_expression "(1 << ((byte)uVar4 & 0x1f))" (( "(") (binary_expression "1 << ((byte)uVar4 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar4 & 0x1f)" (( "(") (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (subscript_expression "auStack_44[(ulong)uVar6 * 3]" (identifier "auStack_44") ([ "[") (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6")) (* "*") (number_literal "3")) (] "]")))) (; ";")) (} "}")))) (expression_statement "auStack_44[(ulong)uVar6 * 3] = uVar4;" (assignment_expression "auStack_44[(ulong)uVar6 * 3] = uVar4" (subscript_expression "auStack_44[(ulong)uVar6 * 3]" (identifier "auStack_44") ([ "[") (binary_expression "(ulong)uVar6 * 3" (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6")) (* "*") (number_literal "3")) (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "pcVar12 = strtok((char *)0x0,",");" (assignment_expression "pcVar12 = strtok((char *)0x0,",")" (identifier "pcVar12") (= "=") (call_expression "strtok((char *)0x0,",")" (identifier "strtok") (argument_list "((char *)0x0,",")" (( "(") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (string_literal "","" (" """) (string_content ",") (" """)) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar12 != (char *)0x0)" (( "(") (binary_expression "pcVar12 != (char *)0x0" (identifier "pcVar12") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = capset(local_58,local_4c);" (assignment_expression "iVar3 = capset(local_58,local_4c)" (identifier "iVar3") (= "=") (call_expression "capset(local_58,local_4c)" (identifier "capset") (argument_list "(local_58,local_4c)" (( "(") (identifier "local_58") (, ",") (identifier "local_4c") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n                    \n        FUN_0010d88d("capset");\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0010d88d("capset");\n      }" ({ "{") (expression_statement "FUN_0010d88d("capset");" (call_expression "FUN_0010d88d("capset")" (identifier "FUN_0010d88d") (argument_list "("capset")" (( "(") (string_literal ""capset"" (" """) (string_content "capset") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((uVar2 & 4) == 0) goto LAB_0015fc66;" (if "if") (parenthesized_expression "((uVar2 & 4) == 0)" (( "(") (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0015fc66;" (goto "goto") (statement_identifier "LAB_0015fc66") (; ";"))) (expression_statement "pcVar12 = strtok(local_60,",");" (assignment_expression "pcVar12 = strtok(local_60,",")" (identifier "pcVar12") (= "=") (call_expression "strtok(local_60,",")" (identifier "strtok") (argument_list "(local_60,",")" (( "(") (identifier "local_60") (, ",") (string_literal "","" (" """) (string_content ",") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_0015fc66;" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0015fc66;" (goto "goto") (statement_identifier "LAB_0015fc66") (; ";"))) (expression_statement "unaff_R12 = "cap_ambient_lower";" (assignment_expression "unaff_R12 = "cap_ambient_lower"" (identifier "unaff_R12") (= "=") (string_literal ""cap_ambient_lower"" (" """) (string_content "cap_ambient_lower") (" """))) (; ";")) (do_statement "do {\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    } while( true );" (do "do") (compound_statement "{\n      uVar2 = FUN_0015f666(pcVar12);\n      uVar9 = (ulong)uVar2;\n      if (*pcVar12 != '+') goto LAB_0015fc72;\n      iVar3 = prctl(0x2f,2,uVar9,0,0);\n      if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }\n      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }\n    }" ({ "{") (expression_statement "uVar2 = FUN_0015f666(pcVar12);" (assignment_expression "uVar2 = FUN_0015f666(pcVar12)" (identifier "uVar2") (= "=") (call_expression "FUN_0015f666(pcVar12)" (identifier "FUN_0015f666") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "uVar9 = (ulong)uVar2;" (assignment_expression "uVar9 = (ulong)uVar2" (identifier "uVar9") (= "=") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2"))) (; ";")) (if_statement "if (*pcVar12 != '+') goto LAB_0015fc72;" (if "if") (parenthesized_expression "(*pcVar12 != '+')" (( "(") (binary_expression "*pcVar12 != '+'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (!= "!=") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")")) (goto_statement "goto LAB_0015fc72;" (goto "goto") (statement_identifier "LAB_0015fc72") (; ";"))) (expression_statement "iVar3 = prctl(0x2f,2,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,2,uVar9,0,0)" (identifier "iVar3") (= "=") (call_expression "prctl(0x2f,2,uVar9,0,0)" (identifier "prctl") (argument_list "(0x2f,2,uVar9,0,0)" (( "(") (number_literal "0x2f") (, ",") (number_literal "2") (, ",") (identifier "uVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n        FUN_0010d7b5("cap_ambient_raise");\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0010d7b5("cap_ambient_raise");\n      }" ({ "{") (expression_statement "FUN_0010d7b5("cap_ambient_raise");" (call_expression "FUN_0010d7b5("cap_ambient_raise")" (identifier "FUN_0010d7b5") (argument_list "("cap_ambient_raise")" (( "(") (string_literal ""cap_ambient_raise"" (" """) (string_content "cap_ambient_raise") (" """)) () ")"))) (; ";")) (} "}"))) (while_statement "while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }" (while "while") (parenthesized_expression "(pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0)" (( "(") (comma_expression "pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0" (assignment_expression "pcVar12 = strtok((char *)0x0,",")" (identifier "pcVar12") (= "=") (call_expression "strtok((char *)0x0,",")" (identifier "strtok") (argument_list "((char *)0x0,",")" (( "(") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (string_literal "","" (" """) (string_content ",") (" """)) () ")")))) (, ",") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\nLAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }\n        FUN_0010c878();\n        uVar9 = extraout_RDX;\nLAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);\n        if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }\n      }" ({ "{") (labeled_statement "LAB_0015fc66:\n        if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }" (statement_identifier "LAB_0015fc66") (: ":") (if_statement "if (*plVar1 != 0) {\n                    \n          FUN_0019b16a(plVar1);\n        }" (if "if") (parenthesized_expression "(*plVar1 != 0)" (( "(") (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0019b16a(plVar1);\n        }" ({ "{") (expression_statement "FUN_0019b16a(plVar1);" (call_expression "FUN_0019b16a(plVar1)" (identifier "FUN_0019b16a") (argument_list "(plVar1)" (( "(") (identifier "plVar1") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_0010c878();" (call_expression "FUN_0010c878()" (identifier "FUN_0010c878") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar9 = extraout_RDX;" (assignment_expression "uVar9 = extraout_RDX" (identifier "uVar9") (= "=") (identifier "extraout_RDX")) (; ";")) (labeled_statement "LAB_0015fc72:\n        iVar3 = prctl(0x2f,3,uVar9,0,0);" (statement_identifier "LAB_0015fc72") (: ":") (expression_statement "iVar3 = prctl(0x2f,3,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,3,uVar9,0,0)" (identifier "iVar3") (= "=") (call_expression "prctl(0x2f,3,uVar9,0,0)" (identifier "prctl") (argument_list "(0x2f,3,uVar9,0,0)" (( "(") (number_literal "0x2f") (, ",") (number_literal "3") (, ",") (identifier "uVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (iVar3 < 0) {\n          FUN_0010d7b5(unaff_R12);\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0010d7b5(unaff_R12);\n        }" ({ "{") (expression_statement "FUN_0010d7b5(unaff_R12);" (call_expression "FUN_0010d7b5(unaff_R12)" (identifier "FUN_0010d7b5") (argument_list "(unaff_R12)" (( "(") (identifier "unaff_R12") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if ((*plVar1 != 0) || (uVar2 != 1)) {\n    FUN_0010c878();\n  }" (if "if") (parenthesized_expression "((*plVar1 != 0) || (uVar2 != 1))" (( "(") (binary_expression "(*plVar1 != 0) || (uVar2 != 1)" (parenthesized_expression "(*plVar1 != 0)" (( "(") (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n    FUN_0010c878();\n  }" ({ "{") (expression_statement "FUN_0010c878();" (call_expression "FUN_0010c878()" (identifier "FUN_0010c878") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "getresuid(&local_84,&local_80,&local_7c);" (call_expression "getresuid(&local_84,&local_80,&local_7c)" (identifier "getresuid") (argument_list "(&local_84,&local_80,&local_7c)" (( "(") (pointer_expression "&local_84" (& "&") (identifier "local_84")) (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) (, ",") (pointer_expression "&local_7c" (& "&") (identifier "local_7c")) () ")"))) (; ";")) (expression_statement "getresgid(&local_78,&local_74,&local_70);" (call_expression "getresgid(&local_78,&local_74,&local_70)" (identifier "getresgid") (argument_list "(&local_78,&local_74,&local_70)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_74" (& "&") (identifier "local_74")) (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")"))) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar5 = FUN_00198a08(&local_6c,0);" (assignment_expression "lVar5 = FUN_00198a08(&local_6c,0)" (identifier "lVar5") (= "=") (call_expression "FUN_00198a08(&local_6c,0)" (identifier "FUN_00198a08") (argument_list "(&local_6c,0)" (( "(") (pointer_expression "&local_6c" (& "&") (identifier "local_6c")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar3 = prctl(0x27,0,0,0,0);" (assignment_expression "iVar3 = prctl(0x27,0,0,0,0)" (identifier "iVar3") (= "=") (call_expression "prctl(0x27,0,0,0,0)" (identifier "prctl") (argument_list "(0x27,0,0,0,0)" (( "(") (number_literal "0x27") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");\n  }" ({ "{") (expression_statement "FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");" (call_expression "FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS")" (identifier "FUN_0010d88d") (argument_list "("prctl: %s","GET_NO_NEW_PRIVS")" (( "(") (string_literal ""prctl: %s"" (" """) (string_content "prctl: %s") (" """)) (, ",") (string_literal ""GET_NO_NEW_PRIVS"" (" """) (string_content "GET_NO_NEW_PRIVS") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"uid: %u\n",local_84);" (call_expression "__printf_chk(1,"uid: %u\n",local_84)" (identifier "__printf_chk") (argument_list "(1,"uid: %u\n",local_84)" (( "(") (number_literal "1") (, ",") (string_literal ""uid: %u\n"" (" """) (string_content "uid: %u") (escape_sequence "\n") (" """)) (, ",") (identifier "local_84") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"euid: %u\n",local_80);" (call_expression "__printf_chk(1,"euid: %u\n",local_80)" (identifier "__printf_chk") (argument_list "(1,"euid: %u\n",local_80)" (( "(") (number_literal "1") (, ",") (string_literal ""euid: %u\n"" (" """) (string_content "euid: %u") (escape_sequence "\n") (" """)) (, ",") (identifier "local_80") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"gid: %u\n",local_78);" (call_expression "__printf_chk(1,"gid: %u\n",local_78)" (identifier "__printf_chk") (argument_list "(1,"gid: %u\n",local_78)" (( "(") (number_literal "1") (, ",") (string_literal ""gid: %u\n"" (" """) (string_content "gid: %u") (escape_sequence "\n") (" """)) (, ",") (identifier "local_78") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"egid: %u\n",local_74);" (call_expression "__printf_chk(1,"egid: %u\n",local_74)" (identifier "__printf_chk") (argument_list "(1,"egid: %u\n",local_74)" (( "(") (number_literal "1") (, ",") (string_literal ""egid: %u\n"" (" """) (string_content "egid: %u") (escape_sequence "\n") (" """)) (, ",") (identifier "local_74") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"Supplementary groups: ");" (call_expression "__printf_chk(1,"Supplementary groups: ")" (identifier "__printf_chk") (argument_list "(1,"Supplementary groups: ")" (( "(") (number_literal "1") (, ",") (string_literal ""Supplementary groups: "" (" """) (string_content "Supplementary groups: ") (" """)) () ")"))) (; ";")) (if_statement "if (local_6c == 0) {\n    __printf_chk(1,"[none]");\n  }\n  else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" (if "if") (parenthesized_expression "(local_6c == 0)" (( "(") (binary_expression "local_6c == 0" (identifier "local_6c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __printf_chk(1,"[none]");\n  }" ({ "{") (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" (identifier "__printf_chk") (argument_list "(1,"[none]")" (( "(") (number_literal "1") (, ",") (string_literal ""[none]"" (" """) (string_content "[none]") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" (else "else") (if_statement "if (0 < local_6c) {\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" (if "if") (parenthesized_expression "(0 < local_6c)" (( "(") (binary_expression "0 < local_6c" (number_literal "0") (< "<") (identifier "local_6c")) () ")")) (compound_statement "{\n    lVar10 = 0;\n    puVar11 = &DAT_001bd0a1;\n    do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);\n  }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = &DAT_001bd0a1;" (assignment_expression "puVar11 = &DAT_001bd0a1" (identifier "puVar11") (= "=") (pointer_expression "&DAT_001bd0a1" (& "&") (identifier "DAT_001bd0a1"))) (; ";")) (do_statement "do {\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    } while ((int)lVar10 < local_6c);" (do "do") (compound_statement "{\n      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));\n      lVar10 = lVar10 + 1;\n      puVar11 = &DAT_001bd0a0;\n    }" ({ "{") (expression_statement "__printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));" (call_expression "__printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4))" (identifier "__printf_chk") (argument_list "(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4))" (( "(") (number_literal "1") (, ",") (identifier "puVar11") (, ",") (pointer_expression "*(undefined4 *)(lVar5 + lVar10 * 4)" (* "*") (cast_expression "(undefined4 *)(lVar5 + lVar10 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + lVar10 * 4)" (( "(") (binary_expression "lVar5 + lVar10 * 4" (identifier "lVar5") (+ "+") (binary_expression "lVar10 * 4" (identifier "lVar10") (* "*") (number_literal "4"))) () ")")))) () ")"))) (; ";")) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = &DAT_001bd0a0;" (assignment_expression "puVar11 = &DAT_001bd0a0" (identifier "puVar11") (= "=") (pointer_expression "&DAT_001bd0a0" (& "&") (identifier "DAT_001bd0a0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)lVar10 < local_6c)" (( "(") (binary_expression "(int)lVar10 < local_6c" (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10")) (< "<") (identifier "local_6c")) () ")")) (; ";")) (} "}"))))) (expression_statement "__printf_chk(1,"\nno_new_privs: %d\n",iVar3);" (call_expression "__printf_chk(1,"\nno_new_privs: %d\n",iVar3)" (identifier "__printf_chk") (argument_list "(1,"\nno_new_privs: %d\n",iVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""\nno_new_privs: %d\n"" (" """) (escape_sequence "\n") (string_content "no_new_privs: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "FUN_00198cf1(local_58);" (call_expression "FUN_00198cf1(local_58)" (identifier "FUN_00198cf1") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"Inheritable capabilities: ");" (call_expression "__printf_chk(1,"Inheritable capabilities: ")" (identifier "__printf_chk") (argument_list "(1,"Inheritable capabilities: ")" (( "(") (number_literal "1") (, ",") (string_literal ""Inheritable capabilities: "" (" """) (string_content "Inheritable capabilities: ") (" """)) () ")"))) (; ";")) (expression_statement "uVar9 = (ulong)local_50;" (assignment_expression "uVar9 = (ulong)local_50" (identifier "uVar9") (= "=") (cast_expression "(ulong)local_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_50"))) (; ";")) (if_statement "if (local_50 == 0) {\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }\n  else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" (if "if") (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = 0;\n    uVar7 = uVar9;\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = uVar9;" (assignment_expression "uVar7 = uVar9" (identifier "uVar7") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (else_clause "else {\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" (else "else") (compound_statement "{\n    pcVar12 = "";\n    uVar7 = 0;\n    iVar3 = 0;\n    do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);\n  }" ({ "{") (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ (identifier "pcVar12") (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    } while ((uint)(iVar3 >> 5) < local_50);" (do "do") (compound_statement "{\n      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }\n      iVar3 = iVar3 + 1;\n      if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }\n      uVar7 = (ulong)(uint)(iVar3 >> 5);\n      uVar9 = (ulong)local_50;\n    }" ({ "{") (if_statement "if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }" (if "if") (parenthesized_expression "((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0)" (( "(") (binary_expression "(auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0" (parenthesized_expression "(auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f))" (( "(") (binary_expression "auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)" (subscript_expression "auStack_44[uVar7 * 3]" (identifier "auStack_44") ([ "[") (binary_expression "uVar7 * 3" (identifier "uVar7") (* "*") (number_literal "3")) (] "]")) (& "&") (binary_expression "1 << ((byte)iVar3 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)iVar3 & 0x1f)" (( "(") (binary_expression "(byte)iVar3 & 0x1f" (cast_expression "(byte)iVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar3")) (& "&") (number_literal "0x1f")) () ")")))) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00198ca3(pcVar12,iVar3);\n        pcVar12 = ",";\n      }" ({ "{") (expression_statement "FUN_00198ca3(pcVar12,iVar3);" (call_expression "FUN_00198ca3(pcVar12,iVar3)" (identifier "FUN_00198ca3") (argument_list "(pcVar12,iVar3)" (( "(") (identifier "pcVar12") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" (identifier "pcVar12") (= "=") (string_literal "","" (" """) (string_content ",") (" """))) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar3 == 0x26) {\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }" (if "if") (parenthesized_expression "(iVar3 == 0x26)" (( "(") (binary_expression "iVar3 == 0x26" (identifier "iVar3") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nAmbient capabilities: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        __printf_chk(1,"\nCapability bounding set: ");\n        uVar9 = 0;\n        pcVar12 = "";\n        do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);\n        if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }\n        FUN_0010e956(10);\n        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }\n                    \n        __stack_chk_fail();\n      }" ({ "{") (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" (if "if") (parenthesized_expression "(*pcVar12 == '\0')" (( "(") (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" ({ "{") (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" (identifier "__printf_chk") (argument_list "(1,"[none]")" (( "(") (number_literal "1") (, ",") (string_literal ""[none]"" (" """) (string_content "[none]") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"\nAmbient capabilities: ");" (call_expression "__printf_chk(1,"\nAmbient capabilities: ")" (identifier "__printf_chk") (argument_list "(1,"\nAmbient capabilities: ")" (( "(") (number_literal "1") (, ",") (string_literal ""\nAmbient capabilities: "" (" """) (escape_sequence "\n") (string_content "Ambient capabilities: ") (" """)) () ")"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ (identifier "pcVar12") (= "=") (string_literal """" (" """) (" """))) (; ";")) (do_statement "do {\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);" (do "do") (compound_statement "{\n          iVar8 = (int)uVar9;\n          iVar3 = prctl(0x2f,1,uVar9,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        }" ({ "{") (expression_statement "iVar8 = (int)uVar9;" (assignment_expression "iVar8 = (int)uVar9" (identifier "iVar8") (= "=") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "iVar3 = prctl(0x2f,1,uVar9,0,0);" (assignment_expression "iVar3 = prctl(0x2f,1,uVar9,0,0)" (identifier "iVar3") (= "=") (call_expression "prctl(0x2f,1,uVar9,0,0)" (identifier "prctl") (argument_list "(0x2f,1,uVar9,0,0)" (( "(") (number_literal "0x2f") (, ",") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");\n          }" ({ "{") (expression_statement "FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");" (call_expression "FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET")" (identifier "FUN_0010d88d") (argument_list "("prctl: %s","CAP_AMBIENT_IS_SET")" (( "(") (string_literal ""prctl: %s"" (" """) (string_content "prctl: %s") (" """)) (, ",") (string_literal ""CAP_AMBIENT_IS_SET"" (" """) (string_content "CAP_AMBIENT_IS_SET") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" ({ "{") (expression_statement "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);" (call_expression "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff)" (identifier "FUN_00198ca3") (argument_list "(pcVar12,uVar9 & 0xffffffff)" (( "(") (identifier "pcVar12") (, ",") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" (identifier "pcVar12") (= "=") (string_literal "","" (" """) (string_content ",") (" """))) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != 0x26)" (( "(") (binary_expression "uVar9 != 0x26" (identifier "uVar9") (!= "!=") (number_literal "0x26")) () ")")) (; ";")) (if_statement "if (iVar8 == -1) {\n          __printf_chk(1,"[unsupported]");\n        }\n        else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          __printf_chk(1,"[unsupported]");\n        }" ({ "{") (expression_statement "__printf_chk(1,"[unsupported]");" (call_expression "__printf_chk(1,"[unsupported]")" (identifier "__printf_chk") (argument_list "(1,"[unsupported]")" (( "(") (number_literal "1") (, ",") (string_literal ""[unsupported]"" (" """) (string_content "[unsupported]") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" (else "else") (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" (if "if") (parenthesized_expression "(*pcVar12 == '\0')" (( "(") (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" ({ "{") (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" (identifier "__printf_chk") (argument_list "(1,"[none]")" (( "(") (number_literal "1") (, ",") (string_literal ""[none]"" (" """) (string_content "[none]") (" """)) () ")"))) (; ";")) (} "}"))))) (expression_statement "__printf_chk(1,"\nCapability bounding set: ");" (call_expression "__printf_chk(1,"\nCapability bounding set: ")" (identifier "__printf_chk") (argument_list "(1,"\nCapability bounding set: ")" (( "(") (number_literal "1") (, ",") (string_literal ""\nCapability bounding set: "" (" """) (escape_sequence "\n") (string_content "Capability bounding set: ") (" """)) () ")"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ (identifier "pcVar12") (= "=") (string_literal """" (" """) (" """))) (; ";")) (do_statement "do {\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        } while (uVar9 != 0x26);" (do "do") (compound_statement "{\n          iVar3 = prctl(0x17,uVar9,0,0,0);\n          if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }\n          if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }\n          uVar9 = uVar9 + 1;\n        }" ({ "{") (expression_statement "iVar3 = prctl(0x17,uVar9,0,0,0);" (assignment_expression "iVar3 = prctl(0x17,uVar9,0,0,0)" (identifier "iVar3") (= "=") (call_expression "prctl(0x17,uVar9,0,0,0)" (identifier "prctl") (argument_list "(0x17,uVar9,0,0,0)" (( "(") (number_literal "0x17") (, ",") (identifier "uVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_0010d88d("prctl: %s","CAPBSET_READ");\n          }" ({ "{") (expression_statement "FUN_0010d88d("prctl: %s","CAPBSET_READ");" (call_expression "FUN_0010d88d("prctl: %s","CAPBSET_READ")" (identifier "FUN_0010d88d") (argument_list "("prctl: %s","CAPBSET_READ")" (( "(") (string_literal ""prctl: %s"" (" """) (string_content "prctl: %s") (" """)) (, ",") (string_literal ""CAPBSET_READ"" (" """) (string_content "CAPBSET_READ") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar3 != 0) {\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);\n            pcVar12 = ",";\n          }" ({ "{") (expression_statement "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);" (call_expression "FUN_00198ca3(pcVar12,uVar9 & 0xffffffff)" (identifier "FUN_00198ca3") (argument_list "(pcVar12,uVar9 & 0xffffffff)" (( "(") (identifier "pcVar12") (, ",") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "pcVar12 = ",";" (assignment_expression "pcVar12 = ","" (identifier "pcVar12") (= "=") (string_literal "","" (" """) (string_content ",") (" """))) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != 0x26)" (( "(") (binary_expression "uVar9 != 0x26" (identifier "uVar9") (!= "!=") (number_literal "0x26")) () ")")) (; ";")) (if_statement "if (*pcVar12 == '\0') {\n          __printf_chk(1,"[none]");\n        }" (if "if") (parenthesized_expression "(*pcVar12 == '\0')" (( "(") (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          __printf_chk(1,"[none]");\n        }" ({ "{") (expression_statement "__printf_chk(1,"[none]");" (call_expression "__printf_chk(1,"[none]")" (identifier "__printf_chk") (argument_list "(1,"[none]")" (( "(") (number_literal "1") (, ",") (string_literal ""[none]"" (" """) (string_content "[none]") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0010e956(10);" (call_expression "FUN_0010e956(10)" (identifier "FUN_0010e956") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = (ulong)(uint)(iVar3 >> 5);" (assignment_expression "uVar7 = (ulong)(uint)(iVar3 >> 5)" (identifier "uVar7") (= "=") (call_expression "(ulong)(uint)(iVar3 >> 5)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(iVar3 >> 5)" (( "(") (binary_expression "iVar3 >> 5" (identifier "iVar3") (>> ">>") (number_literal "5")) () ")")))) (; ";")) (expression_statement "uVar9 = (ulong)local_50;" (assignment_expression "uVar9 = (ulong)local_50" (identifier "uVar9") (= "=") (cast_expression "(ulong)local_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_50"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)(iVar3 >> 5) < local_50)" (( "(") (binary_expression "(uint)(iVar3 >> 5) < local_50" (call_expression "(uint)(iVar3 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 >> 5)" (( "(") (binary_expression "iVar3 >> 5" (identifier "iVar3") (>> ">>") (number_literal "5")) () ")"))) (< "<") (identifier "local_50")) () ")")) (; ";")) (} "}")))) (expression_statement "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);" (call_expression "__printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3)" (identifier "__printf_chk") (argument_list "(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""\nindex: %u u32s: %u capability: %u\n"" (" """) (escape_sequence "\n") (string_content "index: %u u32s: %u capability: %u") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar7") (, ",") (identifier "uVar9") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "FUN_0010dc50("unsupported capability");" (call_expression "FUN_0010dc50("unsupported capability")" (identifier "FUN_0010dc50") (argument_list "("unsupported capability")" (( "(") (string_literal ""unsupported capability"" (" """) (string_content "unsupported capability") (" """)) () ")"))) (; ";")) (} "}")))

int function_1(int argc,char **var_3)

{
  char **argv_00;
  long var_28;
  uint32_t var_5;
  int var_7;
  type_1 *pgVar4;
  type_2 uVar5;
  type_3 var_14;
  type_2 uVar7;
  type_3 var_13;
  long var_25;
  type_4 *puVar10;
  char *var_11;
  long var_1;
  type_5 ruid;
  type_5 euid;
  type_5 suid;
  type_1 rgid;
  type_1 egid;
  type_1 sgid;
  int var_24;
  char *inh_caps;
  char *ambient_caps;
  type_6 type_6;
  
  var_28 = *(long *)(var_1 + 0x28);
  var_5 = var_2(var_3,&DAT_001bd78f,"dump",&inh_caps,&ambient_caps);
  argv_00 = var_3 + var_4;
  if ((var_5 & 1) == 0) {
    if (((var_5 & 8) != 0) && (var_7 = var_6(0x26,1,0,0,0), var_7 != 0)) {
                    /* WARNING: Subroutine does not return */
      var_8("prctl: %s","SET_NO_NEW_PRIVS");
    }
    if ((var_5 & 2) != 0) {
      var_9(&type_6);
      var_11 = var_10(inh_caps,",");
      while (var_11 != (char *)0x0) {
        var_13 = var_12(var_11);
        var_14 = var_13 >> 5;
        if (type_6.u32s <= var_14) {
                    /* WARNING: Subroutine does not return */
          var_15("invalid capability \'%s\'",var_11);
        }
        if (*var_11 == '+') {
          var_13 = 1 << ((type_7)var_13 & 0x1f) | type_6.data[var_14].inheritable;
        }
        else {
          var_13 = ~(1 << ((type_7)var_13 & 0x1f)) & type_6.data[var_14].inheritable;
        }
        type_6.data[var_14].inheritable = var_13;
        var_11 = var_10((char *)0x0,",");
      }
      var_7 = var_16(&type_6,type_6.data);
      if (var_7 != 0) {
                    /* WARNING: Subroutine does not return */
        var_8("capset");
      }
    }
    if ((var_5 & 4) != 0) {
      var_11 = var_10(ambient_caps,",");
      while (var_11 != (char *)0x0) {
        var_13 = var_12(var_11);
        if (*var_11 == '+') {
          var_7 = var_6(0x2f,2,(type_2)var_13,0,0);
          if (var_7 < 0) {
            var_17("cap_ambient_raise");
          }
        }
        else {
          var_7 = var_6(0x2f,3,(type_2)var_13,0,0);
          if (var_7 < 0) {
            var_17("cap_ambient_lower");
          }
        }
        var_11 = var_10((char *)0x0,",");
      }
    }
    if (*argv_00 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_18();
    }
                    /* WARNING: Subroutine does not return */
    var_19(argv_00);
  }
  if ((*argv_00 != (char *)0x0) || (var_5 != 1)) {
                    /* WARNING: Subroutine does not return */
    var_18();
  }
  var_20(&ruid,&euid,&suid);
  var_21(&rgid,&egid,&sgid);
  var_24 = 0;
  pgVar4 = var_22(&var_24,(type_1 *)0x0);
  var_7 = var_6(0x27,0,0,0,0);
  if (var_7 < 0) {
                    /* WARNING: Subroutine does not return */
    var_8("prctl: %s","GET_NO_NEW_PRIVS");
  }
  var_23(1,"uid: %u\n",ruid);
  var_23(1,"euid: %u\n",euid);
  var_23(1,"gid: %u\n",rgid);
  var_23(1,"egid: %u\n",egid);
  var_23(1,"Supplementary groups: ");
  if (var_24 == 0) {
    var_23(1,"[none]");
  }
  else if (0 < var_24) {
    var_25 = 0;
    puVar10 = &DAT_001bd0a1;
    do {
      var_23(1,puVar10,pgVar4[var_25]);
      var_25 = var_25 + 1;
      puVar10 = &DAT_001bd0a0;
    } while ((int)var_25 < var_24);
  }
  var_23(1,"\nno_new_privs: %d\n",var_7);
  var_9(&type_6);
  var_23(1,"Inheritable capabilities: ");
  uVar5 = (type_2)type_6.u32s;
  if (type_6.u32s == 0) {
    var_13 = 0;
    uVar7 = uVar5;
  }
  else {
    var_11 = "";
    uVar7 = 0;
    var_13 = 0;
    do {
      if ((type_6.data[uVar7].inheritable & 1 << ((type_7)var_13 & 0x1f)) != 0) {
        var_26(var_11,var_13);
        var_11 = ",";
      }
      var_13 = var_13 + 1;
      if (var_13 == 0x26) {
        if (*var_11 == '\0') {
          var_23(1,"[none]");
        }
        var_23(1,"\nAmbient capabilities: ");
        var_25 = 0;
        var_11 = "";
        do {
          var_13 = (type_3)var_25;
          var_7 = var_6(0x2f,1,var_25,0,0);
          if (var_7 < 0) {
                    /* WARNING: Subroutine does not return */
            var_8("prctl: %s","CAP_AMBIENT_IS_SET");
          }
          if (var_7 != 0) {
            var_26(var_11,var_13);
            var_11 = ",";
          }
          var_25 = var_25 + 1;
        } while (var_25 != 0x26);
        if (var_13 == 0xffffffff) {
          var_23(1,"[unsupported]");
        }
        else if (*var_11 == '\0') {
          var_23(1,"[none]");
        }
        var_23(1,"\nCapability bounding set: ");
        var_25 = 0;
        var_11 = "";
        do {
          var_7 = var_6(0x17,var_25,0,0,0);
          if (var_7 < 0) {
                    /* WARNING: Subroutine does not return */
            var_8("prctl: %s","CAPBSET_READ");
          }
          if (var_7 != 0) {
            var_26(var_11,(type_3)var_25);
            var_11 = ",";
          }
          var_25 = var_25 + 1;
        } while (var_25 != 0x26);
        if (*var_11 == '\0') {
          var_23(1,"[none]");
        }
        var_27(10);
        if (var_28 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
          var_29();
        }
        return 0;
      }
      uVar7 = (type_2)(type_3)((int)var_13 >> 5);
      uVar5 = (type_2)type_6.u32s;
    } while ((type_3)((int)var_13 >> 5) < type_6.u32s);
  }
  var_23(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar5,var_13);
                    /* WARNING: Subroutine does not return */
  var_15("unsupported capability");
}


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

undefined8 MASKED(undefined8 param_1,long param_2)

{
  long *plVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  long lVar5;
  uint uVar6;
  ulong uVar7;
  ulong extraout_RDX;
  int iVar8;
  ulong uVar9;
  long lVar10;
  undefined *puVar11;
  char *pcVar12;
  char *unaff_R12;
  long in_FS_OFFSET;
  __uid_t local_84;
  __uid_t local_80;
  __uid_t local_7c;
  __gid_t local_78;
  __gid_t local_74;
  __gid_t local_70;
  int local_6c;
  char *local_68;
  char *local_60;
  undefined1 local_58 [8];
  uint local_50;
  undefined1 local_4c [8];
  uint auStack_44 [5];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  uVar2 = FUN_0019c2cc(param_2,&DAT_001bd78f,&DAT_001bd8b8,&local_68,&local_60);
  plVar1 = (long *)(param_2 + (long)optind * 8);
  if ((uVar2 & 1) == 0) {
    if (((uVar2 & 8) != 0) && (iVar3 = prctl(0x26,1,0,0,0), iVar3 != 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_0010d88d("prctl: %s","SET_NO_NEW_PRIVS");
    }
    if ((uVar2 & 2) != 0) {
      FUN_00198cf1(local_58);
      pcVar12 = strtok(local_68,",");
      unaff_R12 = local_68;
      if (pcVar12 != (char *)0x0) {
        unaff_R12 = &DAT_00000001;
        do {
          uVar4 = FUN_0015f666(pcVar12);
          uVar6 = uVar4 >> 5;
          if (local_50 <= uVar6) {
                    /* WARNING: Subroutine does not return */
            FUN_0010dc50("invalid capability \'%s\'",pcVar12);
          }
          if (*pcVar12 == '+') {
            uVar4 = 1 << ((byte)uVar4 & 0x1f) | auStack_44[(ulong)uVar6 * 3];
          }
          else {
            uVar4 = ~(1 << ((byte)uVar4 & 0x1f)) & auStack_44[(ulong)uVar6 * 3];
          }
          auStack_44[(ulong)uVar6 * 3] = uVar4;
          pcVar12 = strtok((char *)0x0,",");
        } while (pcVar12 != (char *)0x0);
      }
      iVar3 = capset(local_58,local_4c);
      if (iVar3 != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0010d88d("capset");
      }
    }
    if ((uVar2 & 4) == 0) goto LAB_0015fc66;
    pcVar12 = strtok(local_60,",");
    if (pcVar12 == (char *)0x0) goto LAB_0015fc66;
    unaff_R12 = "cap_ambient_lower";
    do {
      uVar2 = FUN_0015f666(pcVar12);
      uVar9 = (ulong)uVar2;
      if (*pcVar12 != '+') goto LAB_0015fc72;
      iVar3 = prctl(0x2f,2,uVar9,0,0);
      if (iVar3 < 0) {
        FUN_0010d7b5("cap_ambient_raise");
      }
      while (pcVar12 = strtok((char *)0x0,","), pcVar12 == (char *)0x0) {
LAB_0015fc66:
        if (*plVar1 != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0019b16a(plVar1);
        }
        FUN_0010c878();
        uVar9 = extraout_RDX;
LAB_0015fc72:
        iVar3 = prctl(0x2f,3,uVar9,0,0);
        if (iVar3 < 0) {
          FUN_0010d7b5(unaff_R12);
        }
      }
    } while( true );
  }
  if ((*plVar1 != 0) || (uVar2 != 1)) {
    FUN_0010c878();
  }
  getresuid(&local_84,&local_80,&local_7c);
  getresgid(&local_78,&local_74,&local_70);
  local_6c = 0;
  lVar5 = FUN_00198a08(&local_6c,0);
  iVar3 = prctl(0x27,0,0,0,0);
  if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0010d88d("prctl: %s","GET_NO_NEW_PRIVS");
  }
  __printf_chk(1,"uid: %u\n",local_84);
  __printf_chk(1,"euid: %u\n",local_80);
  __printf_chk(1,"gid: %u\n",local_78);
  __printf_chk(1,"egid: %u\n",local_74);
  __printf_chk(1,"Supplementary groups: ");
  if (local_6c == 0) {
    __printf_chk(1,"[none]");
  }
  else if (0 < local_6c) {
    lVar10 = 0;
    puVar11 = &DAT_001bd0a1;
    do {
      __printf_chk(1,puVar11,*(undefined4 *)(lVar5 + lVar10 * 4));
      lVar10 = lVar10 + 1;
      puVar11 = &DAT_001bd0a0;
    } while ((int)lVar10 < local_6c);
  }
  __printf_chk(1,"\nno_new_privs: %d\n",iVar3);
  FUN_00198cf1(local_58);
  __printf_chk(1,"Inheritable capabilities: ");
  uVar9 = (ulong)local_50;
  if (local_50 == 0) {
    iVar3 = 0;
    uVar7 = uVar9;
  }
  else {
    pcVar12 = "";
    uVar7 = 0;
    iVar3 = 0;
    do {
      if ((auStack_44[uVar7 * 3] & 1 << ((byte)iVar3 & 0x1f)) != 0) {
        FUN_00198ca3(pcVar12,iVar3);
        pcVar12 = ",";
      }
      iVar3 = iVar3 + 1;
      if (iVar3 == 0x26) {
        if (*pcVar12 == '\0') {
          __printf_chk(1,"[none]");
        }
        __printf_chk(1,"\nAmbient capabilities: ");
        uVar9 = 0;
        pcVar12 = "";
        do {
          iVar8 = (int)uVar9;
          iVar3 = prctl(0x2f,1,uVar9,0,0);
          if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0010d88d("prctl: %s","CAP_AMBIENT_IS_SET");
          }
          if (iVar3 != 0) {
            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);
            pcVar12 = ",";
          }
          uVar9 = uVar9 + 1;
        } while (uVar9 != 0x26);
        if (iVar8 == -1) {
          __printf_chk(1,"[unsupported]");
        }
        else if (*pcVar12 == '\0') {
          __printf_chk(1,"[none]");
        }
        __printf_chk(1,"\nCapability bounding set: ");
        uVar9 = 0;
        pcVar12 = "";
        do {
          iVar3 = prctl(0x17,uVar9,0,0,0);
          if (iVar3 < 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0010d88d("prctl: %s","CAPBSET_READ");
          }
          if (iVar3 != 0) {
            FUN_00198ca3(pcVar12,uVar9 & 0xffffffff);
            pcVar12 = ",";
          }
          uVar9 = uVar9 + 1;
        } while (uVar9 != 0x26);
        if (*pcVar12 == '\0') {
          __printf_chk(1,"[none]");
        }
        FUN_0010e956(10);
        if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
          return 0;
        }
                    /* WARNING: Subroutine does not return */
        __stack_chk_fail();
      }
      uVar7 = (ulong)(uint)(iVar3 >> 5);
      uVar9 = (ulong)local_50;
    } while ((uint)(iVar3 >> 5) < local_50);
  }
  __printf_chk(1,"\nindex: %u u32s: %u capability: %u\n",uVar7,uVar9,iVar3);
                    /* WARNING: Subroutine does not return */
  FUN_0010dc50("unsupported capability");
}

