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

bfd_boolean __regparm3
gldelf64lriscv_parse_ld_so_conf(gldelf64lriscv_ld_so_conf *info,char *filename)

{
  char **ppcVar1;
  byte bVar2;
  FILE *__stream;
  byte *__s;
  char *pcVar3;
  size_t sVar4;
  size_t sVar5;
  byte bVar6;
  byte *pbVar7;
  int iVar8;
  uint uVar9;
  size_t sVar10;
  byte *pbVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  char *local_70;
  int local_6c;
  glob_t gl;
  
  bVar15 = 0;
  __stream = fopen64(filename,"r");
  if (__stream == (FILE *)0x0) {
    return 0;
  }
  __s = (byte *)xmalloc(0x100);
  local_6c = 0x100;
  pbVar7 = __s;
LAB_000395db:
  do {
    iVar8 = local_6c - ((int)pbVar7 - (int)__s);
    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);
    if (pcVar3 == (char *)0x0) {
      if (__s == pbVar7) goto LAB_000397a7;
    }
    else {
      sVar10 = strlen(pcVar3);
      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {
        __s = (byte *)xrealloc(__s,local_6c * 2);
        pbVar7 = __s + local_6c + -1;
        local_6c = local_6c * 2;
        goto LAB_000395db;
      }
    }
    pcVar3 = strchr((char *)__s,10);
    if (pcVar3 != (char *)0x0) {
      *pcVar3 = '\0';
    }
    pcVar3 = strchr((char *)__s,0x23);
    if (pcVar3 != (char *)0x0) {
      *pcVar3 = '\0';
    }
    bVar6 = *__s;
    uVar9 = bVar6 - 9;
    bVar2 = (byte)uVar9;
    pbVar7 = __s;
    while (bVar2 < 0x18) {
      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;
      bVar14 = bVar2 == 0x17;
      if (!bVar13) goto LAB_0003968a;
      pbVar7 = pbVar7 + 1;
      bVar6 = *pbVar7;
      uVar9 = bVar6 - 9;
      bVar2 = (byte)uVar9;
    }
    bVar13 = false;
    bVar14 = bVar6 == 0;
    if (!bVar14) {
LAB_0003968a:
      iVar8 = 7;
      pbVar12 = pbVar7;
      pbVar11 = (byte *)"include";
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar13 = *pbVar12 < *pbVar11;
        bVar14 = *pbVar12 == *pbVar11;
        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
      } while (bVar14);
      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {
        pbVar7 = pbVar7 + 8;
        do {
          bVar6 = *pbVar7;
          while ((bVar6 != 0x20 && (bVar6 != 9))) {
            pbVar12 = pbVar7;
            if (bVar6 == 0) goto LAB_00039790;
            do {
              pbVar11 = pbVar12;
              bVar2 = pbVar11[1];
              if ((bVar2 == 0x20) || (bVar2 == 9)) {
                pbVar11[1] = 0;
                bVar6 = *pbVar7;
                if (bVar6 == 0) goto LAB_00039955;
                goto LAB_0003985a;
              }
              pbVar12 = pbVar11 + 1;
            } while (bVar2 != 0);
            if (bVar6 == 0) goto LAB_00039790;
LAB_0003985a:
            if (bVar6 == 0x2f) {
              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);
              if (iVar8 == 0) {
                local_70 = (char *)0x0;
                if (gl.gl_pathc != 0) goto LAB_000398e9;
                globfree64((glob64_t *)&gl);
              }
            }
            else {
              pcVar3 = strrchr(filename,0x2f);
              sVar10 = strlen((char *)pbVar7);
              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));
              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));
              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);
              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);
              if (iVar8 == 0) {
                if (gl.gl_pathc == 0) {
                  globfree64((glob64_t *)&gl);
                }
                else {
LAB_000398e9:
                  uVar9 = 0;
                  do {
                    ppcVar1 = gl.gl_pathv + uVar9;
                    uVar9 = uVar9 + 1;
                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);
                  } while (uVar9 < gl.gl_pathc);
                  globfree64((glob64_t *)&gl);
                  if (local_70 == (char *)0x0) goto LAB_00039955;
                }
              }
              free(local_70);
            }
LAB_00039955:
            pbVar7 = pbVar11 + 2;
            if (bVar2 == 0) goto LAB_00039790;
            bVar6 = *pbVar7;
          }
          pbVar7 = pbVar7 + 1;
        } while( true );
      }
      bVar6 = *pbVar7;
      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&
         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {
        do {
          pbVar12 = pbVar12 + 1;
          bVar6 = *pbVar12;
          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;
        } while (2 < (byte)(bVar6 - 0xb));
        do {
          if (pbVar12 == pbVar7) break;
          if (pbVar12[-1] != 0x2f) {
            sVar10 = (int)pbVar12 - (int)pbVar7;
            pcVar3 = info->path;
            goto joined_r0x00039735;
          }
          pbVar12 = pbVar12 + -1;
        } while( true );
      }
      sVar10 = 0;
      pcVar3 = info->path;
joined_r0x00039735:
      if (pcVar3 == (char *)0x0) {
        info->alloc = sVar10 + 0x101;
        pcVar3 = (char *)xmalloc(sVar10 + 0x101);
        info->len = 0;
        info->path = pcVar3;
      }
      else {
        sVar4 = info->len;
        sVar5 = sVar4 + 1;
        if (info->alloc <= sVar5 + sVar10) {
          sVar5 = info->alloc + 0x100 + sVar10;
          info->alloc = sVar5;
          pcVar3 = (char *)xrealloc(pcVar3,sVar5);
          info->path = pcVar3;
          sVar4 = info->len;
          sVar5 = sVar4 + 1;
        }
        info->len = sVar5;
        pcVar3[sVar4] = config.rpath_separator;
        pcVar3 = info->path + info->len;
      }
      memcpy(pcVar3,pbVar7,sVar10);
      sVar5 = info->len + sVar10;
      info->len = sVar5;
      info->path[sVar5] = '\0';
    }
LAB_00039790:
    iVar8 = feof(__stream);
    pbVar7 = __s;
    if (iVar8 != 0) {
LAB_000397a7:
      free(__s);
      fclose(__stream);
      return 1;
    }
  } while( true );
}



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

undefined4 __regparm3 FUN_00039520(int *param_1,char *param_2)

{
  byte bVar1;
  FILE *__stream;
  byte *__s;
  char *pcVar2;
  int iVar3;
  void *__dest;
  byte bVar4;
  int iVar5;
  byte *pbVar6;
  int iVar7;
  uint uVar8;
  size_t sVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  char *local_70;
  int local_6c;
  glob64_t local_40;
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x39529;
  __stream = fopen64(param_2,"r");
  if (__stream == (FILE *)0x0) {
    return 0;
  }
  __s = (byte *)xmalloc(0x100);
  local_6c = 0x100;
  pbVar6 = __s;
LAB_000395db:
  do {
    iVar7 = local_6c - ((int)pbVar6 - (int)__s);
    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);
    if (pcVar2 == (char *)0x0) {
      if (__s == pbVar6) goto LAB_000397a7;
    }
    else {
      sVar9 = strlen(pcVar2);
      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {
        __s = (byte *)xrealloc(__s,local_6c * 2);
        pbVar6 = __s + local_6c + -1;
        local_6c = local_6c * 2;
        goto LAB_000395db;
      }
    }
    pcVar2 = strchr((char *)__s,10);
    if (pcVar2 != (char *)0x0) {
      *pcVar2 = '\0';
    }
    pcVar2 = strchr((char *)__s,0x23);
    if (pcVar2 != (char *)0x0) {
      *pcVar2 = '\0';
    }
    bVar4 = *__s;
    uVar8 = bVar4 - 9;
    bVar1 = (byte)uVar8;
    pbVar6 = __s;
    while (bVar1 < 0x18) {
      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;
      bVar13 = bVar1 == 0x17;
      if (!bVar12) goto LAB_0003968a;
      pbVar6 = pbVar6 + 1;
      bVar4 = *pbVar6;
      uVar8 = bVar4 - 9;
      bVar1 = (byte)uVar8;
    }
    bVar12 = false;
    bVar13 = bVar4 == 0;
    if (!bVar13) {
LAB_0003968a:
      iVar7 = 7;
      pbVar11 = pbVar6;
      pbVar10 = (byte *)"include";
      do {
        if (iVar7 == 0) break;
        iVar7 = iVar7 + -1;
        bVar12 = *pbVar11 < *pbVar10;
        bVar13 = *pbVar11 == *pbVar10;
        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
      } while (bVar13);
      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {
        pbVar6 = pbVar6 + 8;
        do {
          bVar4 = *pbVar6;
          while ((bVar4 != 0x20 && (bVar4 != 9))) {
            pbVar11 = pbVar6;
            if (bVar4 == 0) goto LAB_00039790;
            do {
              pbVar10 = pbVar11;
              bVar1 = pbVar10[1];
              if ((bVar1 == 0x20) || (bVar1 == 9)) {
                pbVar10[1] = 0;
                bVar4 = *pbVar6;
                if (bVar4 == 0) goto LAB_00039955;
                goto LAB_0003985a;
              }
              pbVar11 = pbVar10 + 1;
            } while (bVar1 != 0);
            if (bVar4 == 0) goto LAB_00039790;
LAB_0003985a:
            if (bVar4 == 0x2f) {
              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);
              if (iVar7 == 0) {
                local_70 = (char *)0x0;
                if (local_40.gl_pathc != 0) goto LAB_000398e9;
                globfree64(&local_40);
              }
            }
            else {
              pcVar2 = strrchr(param_2,0x2f);
              sVar9 = strlen((char *)pbVar6);
              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));
              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));
              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);
              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);
              if (iVar7 == 0) {
                if (local_40.gl_pathc == 0) {
                  globfree64(&local_40);
                }
                else {
LAB_000398e9:
                  uVar8 = 0;
                  do {
                    uVar8 = uVar8 + 1;
                    FUN_00039520();
                  } while (uVar8 < local_40.gl_pathc);
                  globfree64(&local_40);
                  if (local_70 == (char *)0x0) goto LAB_00039955;
                }
              }
              free(local_70);
            }
LAB_00039955:
            pbVar6 = pbVar10 + 2;
            if (bVar1 == 0) goto LAB_00039790;
            bVar4 = *pbVar6;
          }
          pbVar6 = pbVar6 + 1;
        } while( true );
      }
      bVar4 = *pbVar6;
      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&
         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {
        do {
          pbVar11 = pbVar11 + 1;
          bVar4 = *pbVar11;
          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;
        } while (2 < (byte)(bVar4 - 0xb));
        do {
          if (pbVar11 == pbVar6) break;
          if (pbVar11[-1] != 0x2f) {
            sVar9 = (int)pbVar11 - (int)pbVar6;
            iVar7 = *param_1;
            goto joined_r0x00039735;
          }
          pbVar11 = pbVar11 + -1;
        } while( true );
      }
      sVar9 = 0;
      iVar7 = *param_1;
joined_r0x00039735:
      if (iVar7 == 0) {
        param_1[2] = sVar9 + 0x101;
        __dest = (void *)xmalloc(sVar9 + 0x101);
        param_1[1] = 0;
        *param_1 = (int)__dest;
      }
      else {
        iVar3 = param_1[1];
        iVar5 = iVar3 + 1;
        if ((uint)param_1[2] <= iVar5 + sVar9) {
          iVar5 = param_1[2] + 0x100U + sVar9;
          param_1[2] = iVar5;
          iVar7 = xrealloc(iVar7,iVar5);
          *param_1 = iVar7;
          iVar3 = param_1[1];
          iVar5 = iVar3 + 1;
        }
        param_1[1] = iVar5;
        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;
        __dest = (void *)(param_1[1] + *param_1);
      }
      memcpy(__dest,pbVar6,sVar9);
      iVar7 = param_1[1];
      param_1[1] = iVar7 + sVar9;
      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;
    }
LAB_00039790:
    iVar7 = feof(__stream);
    pbVar6 = __s;
    if (iVar7 != 0) {
LAB_000397a7:
      free(__s);
      fclose(__stream);
      return 1;
    }
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016a30
ADD EBX,0x102ad7
SUB ESP,0x74
MOV dword ptr [ESP + 0x1c],EAX
MOV dword ptr [ESP + 0x24],EDX
LEA EAX,[EBX + 0xfff24adf]
PUSH EAX
PUSH EDX
CALL 0x00015450
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00039a5a
SUB ESP,0xc
PUSH 0x100
CALL 0x00015c78
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
LEA EAX,[EBX + 0xfff5abcd]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0x17c0]
MOV dword ptr [ESP + 0x10],0x100
MOV dword ptr [ESP + 0x2c],EAX
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x4]
MOV EBP,dword ptr [ESP + 0x10]
MOV EDI,EAX
MOV ECX,EAX
JMP 0x000395db
SUB ESP,0xc
SUB ESI,0x1
PUSH EAX
CALL 0x00015700
ADD ESP,0x10
CMP EAX,ESI
JNZ 0x000397e0
CMP byte ptr [EDI + EBP*0x1 + -0x2],0xa
JZ 0x000397e0
SUB ESP,0x8
LEA ESI,[EBP + EBP*0x1]
PUSH ESI
PUSH EDI
CALL 0x000153c0
ADD ESP,0x10
LEA ECX,[EAX + EBP*0x1 + -0x1]
MOV EDI,EAX
MOV EBP,ESI
MOV EAX,ECX
MOV ESI,EBP
SUB ESP,0x4
SUB EAX,EDI
PUSH dword ptr [ESP + 0xc]
SUB ESI,EAX
PUSH ESI
PUSH ECX
MOV dword ptr [ESP + 0x14],ECX
CALL 0x00015250
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JNZ 0x000395a0
MOV EAX,EDI
MOV dword ptr [ESP + 0x4],EDI
MOV dword ptr [ESP + 0x10],EBP
CMP EAX,ECX
JZ 0x000397a7
SUB ESP,0x8
PUSH 0xa
PUSH dword ptr [ESP + 0x10]
CALL 0x000156d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003962a
MOV byte ptr [EAX],0x0
SUB ESP,0x8
PUSH 0x23
PUSH dword ptr [ESP + 0x10]
CALL 0x000156d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00039642
MOV byte ptr [EAX],0x0
MOV EBP,dword ptr [ESP + 0x4]
MOVZX EDX,byte ptr [EBP]
LEA EAX,[EDX + -0x9]
CMP AL,0x17
JA 0x000397f0
MOV EDX,0x80001d
BT EDX,EAX
JNC 0x00039a81
MOV ECX,0x80001d
LEA ESI,[ESI]
NOP
ADD EBP,0x1
MOVZX EDX,byte ptr [EBP]
LEA EAX,[EDX + -0x9]
CMP AL,0x17
JBE 0x000397d0
TEST DL,DL
JZ 0x00039790
MOV EDI,dword ptr [ESP + 0x20]
MOV ECX,0x7
MOV ESI,EBP
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000396b4
MOVZX EAX,byte ptr [EBP + 0x7]
CMP AL,0x20
JZ 0x000397f9
CMP AL,0x9
JZ 0x000397f9
MOVZX EAX,byte ptr [EBP]
CMP AL,0x3d
SETNZ DL
CMP AL,0x9
SETNZ CL
AND EDX,ECX
TEST AL,0xdf
SETNZ CL
TEST DL,CL
JZ 0x000399f0
LEA EDX,[EAX + -0xb]
MOV EDI,EBP
CMP DL,0x2
JA 0x000396e8
JMP 0x000399f0
SUB EDX,0xb
CMP DL,0x2
JBE 0x00039708
ADD EDI,0x1
MOVZX EDX,byte ptr [EDI]
CMP DL,0x9
SETNZ CL
CMP DL,0x3d
SETNZ AL
MOV ESI,EAX
AND ECX,ESI
TEST DL,0xdf
SETNZ AL
TEST CL,AL
JNZ 0x000396e0
MOV EAX,EDI
CMP EDI,EBP
JNZ 0x00039723
JMP 0x000399f0
SUB EAX,0x1
CMP EAX,EBP
JZ 0x000399f0
CMP byte ptr [EAX + -0x1],0x2f
JZ 0x00039718
MOV EDI,dword ptr [ESP + 0x14]
SUB EAX,EBP
MOV ESI,EAX
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JZ 0x00039a02
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ECX + 0x4]
MOV ECX,dword ptr [ECX + 0x8]
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0xc],ECX
LEA ECX,[EDX + ESI*0x1]
CMP ECX,dword ptr [ESP + 0xc]
JNC 0x00039a28
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ECX + 0x4],EDX
MOV EDX,dword ptr [ESP + 0x2c]
MOVZX EDX,byte ptr [EDX + 0x48]
MOV byte ptr [EDI + EAX*0x1],DL
MOV EAX,dword ptr [ECX + 0x4]
ADD EAX,dword ptr [ECX]
SUB ESP,0x4
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x000151f0
MOV EDI,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x4]
MOV EDX,dword ptr [EDI]
ADD EAX,ESI
MOV dword ptr [EDI + 0x4],EAX
MOV byte ptr [EDX + EAX*0x1],0x0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00015680
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00039590
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
CALL 0x00015c60
POP EBP
PUSH dword ptr [ESP + 0x14]
CALL 0x00015270
ADD ESP,0x10
MOV EAX,0x1
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
BT ECX,EAX
JC 0x00039670
JMP 0x0003968a
MOV dword ptr [ESP + 0x4],EDI
MOV dword ptr [ESP + 0x10],EBP
JMP 0x00039612
MOV EBP,dword ptr [ESP + 0x4]
JMP 0x00039682
LEA EAX,[ESP + 0x3c]
ADD EBP,0x8
MOV dword ptr [ESP + 0x18],EAX
LEA ESI,[ESI]
MOVZX EDX,byte ptr [EBP]
CMP DL,0x20
JZ 0x00039970
CMP DL,0x9
JZ 0x00039970
TEST DL,DL
JZ 0x00039790
MOV ESI,EBP
JMP 0x00039832
MOV ESI,EAX
MOVZX ECX,byte ptr [ESI + 0x1]
LEA EAX,[ESI + 0x1]
CMP CL,0x20
JZ 0x00039980
CMP CL,0x9
JZ 0x00039980
TEST CL,CL
JNZ 0x00039830
ADD ESI,0x2
TEST DL,DL
JZ 0x00039790
CMP DL,0x2f
JZ 0x00039998
MOV byte ptr [ESP + 0x2b],CL
SUB ESP,0x8
PUSH 0x2f
PUSH dword ptr [ESP + 0x28]
CALL 0x00015930
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x00015700
SUB EDI,dword ptr [ESP + 0x2c]
MOV EDX,EAX
LEA EAX,[EDI + EAX*0x1 + 0x2]
ADD EDI,0x1
MOV dword ptr [ESP + 0x34],EDX
MOV dword ptr [ESP],EAX
CALL 0x00015c78
ADD ESP,0xc
PUSH EDI
PUSH dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x18],EAX
PUSH EAX
CALL 0x000151f0
MOV EDX,dword ptr [ESP + 0x34]
ADD EDI,dword ptr [ESP + 0x1c]
ADD ESP,0xc
ADD EDX,0x1
PUSH EDX
PUSH EBP
PUSH EDI
CALL 0x000151f0
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x28]
CALL 0x00015650
ADD ESP,0x20
MOVZX ECX,byte ptr [ESP + 0x2b]
TEST EAX,EAX
JNZ 0x0003993d
MOV EDX,dword ptr [ESP + 0x3c]
TEST EDX,EDX
JZ 0x00039a64
XOR EDI,EDI
MOV EBP,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x24],ESI
MOV ESI,EDI
MOV EDI,ECX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [EAX + ESI*0x4]
MOV EAX,EBP
ADD ESI,0x1
CALL 0x00039520
CMP ESI,dword ptr [ESP + 0x3c]
JC 0x00039900
MOV ECX,EDI
MOV ESI,dword ptr [ESP + 0x24]
SUB ESP,0xc
MOV byte ptr [ESP + 0x30],CL
PUSH dword ptr [ESP + 0x24]
CALL 0x000153b0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ECX,byte ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x00039955
MOV byte ptr [ESP + 0x24],CL
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x00015c60
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0x24]
MOV EBP,ESI
TEST CL,CL
JZ 0x00039790
MOVZX EDX,byte ptr [EBP]
CMP DL,0x20
JNZ 0x00039815
LEA ESI,[ESI]
ADD EBP,0x1
JMP 0x00039808
MOV byte ptr [EAX],0x0
MOVZX EDX,byte ptr [EBP]
ADD ESI,0x2
TEST DL,DL
JZ 0x00039955
JMP 0x0003985a
MOV byte ptr [ESP + 0xc],CL
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
PUSH 0x0
PUSH EBP
CALL 0x00015650
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x00039955
MOV EDI,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0xc],0x0
TEST EDI,EDI
JNZ 0x000398e9
MOV byte ptr [ESP + 0xc],CL
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x000153b0
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0xc]
JMP 0x00039955
MOV EDI,dword ptr [ESP + 0x14]
XOR ESI,ESI
XOR EAX,EAX
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JNZ 0x0003973b
MOV EDI,dword ptr [ESP + 0x14]
ADD EAX,0x101
SUB ESP,0xc
MOV dword ptr [EDI + 0x8],EAX
PUSH EAX
CALL 0x00015c78
MOV dword ptr [EDI + 0x4],0x0
ADD ESP,0x10
MOV dword ptr [EDI],EAX
JMP 0x00039770
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x14]
SUB ESP,0x8
LEA EAX,[EAX + ESI*0x1 + 0x100]
MOV dword ptr [ECX + 0x8],EAX
PUSH EAX
PUSH EDI
CALL 0x000153c0
MOV ECX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EDI,EAX
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [ECX + 0x4]
LEA EDX,[EAX + 0x1]
JMP 0x00039759
ADD ESP,0x6c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV byte ptr [ESP + 0x24],CL
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x000153b0
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0x24]
JMP 0x0003993d
MOV EBP,dword ptr [ESP + 0x4]
JMP 0x0003968a
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_00039520(int *param_1,char *param_2)\n\n{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_00039520(int *param_1,char *param_2)\n\n{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00039520(int *param_1,char *param_2)" identifier (parameter_list "(int *param_1,char *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "glob64_t local_40;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x39529;" (assignment_expression "uStack_14 = 0x39529" identifier = number_literal) ;) (expression_statement "__stream = fopen64(param_2,"r");" (assignment_expression "__stream = fopen64(param_2,"r")" identifier = (call_expression "fopen64(param_2,"r")" identifier (argument_list "(param_2,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = (byte *)xmalloc(0x100);" (assignment_expression "__s = (byte *)xmalloc(0x100)" identifier = (cast_expression "(byte *)xmalloc(0x100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x100)" identifier (argument_list "(0x100)" ( number_literal ))))) ;) (expression_statement "local_6c = 0x100;" (assignment_expression "local_6c = 0x100" identifier = number_literal) ;) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (labeled_statement "LAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  }" { (expression_statement "iVar7 = local_6c - ((int)pbVar6 - (int)__s);" (assignment_expression "iVar7 = local_6c - ((int)pbVar6 - (int)__s)" identifier = (binary_expression "local_6c - ((int)pbVar6 - (int)__s)" identifier - (parenthesized_expression "((int)pbVar6 - (int)__s)" ( (binary_expression "(int)pbVar6 - (int)__s" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar2 = fgets((char *)pbVar6,iVar7,__stream);" (assignment_expression "pcVar2 = fgets((char *)pbVar6,iVar7,__stream)" identifier = (call_expression "fgets((char *)pbVar6,iVar7,__stream)" identifier (argument_list "((char *)pbVar6,iVar7,__stream)" ( (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (__s == pbVar6) goto LAB_000397a7;\n    }" { (if_statement "if (__s == pbVar6) goto LAB_000397a7;" if (parenthesized_expression "(__s == pbVar6)" ( (binary_expression "__s == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_000397a7;" goto statement_identifier ;)) }) (else_clause "else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" else (compound_statement "{\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" { (expression_statement "sVar9 = strlen(pcVar2);" (assignment_expression "sVar9 = strlen(pcVar2)" identifier = (call_expression "strlen(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier )))) ;) (if_statement "if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" if (parenthesized_expression "((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10))" ( (binary_expression "(sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)" (parenthesized_expression "(sVar9 == iVar7 - 1U)" ( (binary_expression "sVar9 == iVar7 - 1U" identifier == (binary_expression "iVar7 - 1U" identifier - number_literal)) )) && (parenthesized_expression "(__s[local_6c + -2] != 10)" ( (binary_expression "__s[local_6c + -2] != 10" (subscript_expression "__s[local_6c + -2]" identifier [ (binary_expression "local_6c + -2" identifier + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" { (expression_statement "__s = (byte *)xrealloc(__s,local_6c * 2);" (assignment_expression "__s = (byte *)xrealloc(__s,local_6c * 2)" identifier = (cast_expression "(byte *)xrealloc(__s,local_6c * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__s,local_6c * 2)" identifier (argument_list "(__s,local_6c * 2)" ( identifier , (binary_expression "local_6c * 2" identifier * number_literal) ))))) ;) (expression_statement "pbVar6 = __s + local_6c + -1;" (assignment_expression "pbVar6 = __s + local_6c + -1" identifier = (binary_expression "__s + local_6c + -1" (binary_expression "__s + local_6c" identifier + identifier) + number_literal)) ;) (expression_statement "local_6c = local_6c * 2;" (assignment_expression "local_6c = local_6c * 2" identifier = (binary_expression "local_6c * 2" identifier * number_literal)) ;) (goto_statement "goto LAB_000395db;" goto statement_identifier ;) })) }))) (expression_statement "pcVar2 = strchr((char *)__s,10);" (assignment_expression "pcVar2 = strchr((char *)__s,10)" identifier = (call_expression "strchr((char *)__s,10)" identifier (argument_list "((char *)__s,10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar2 = '\0';\n    }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar2 = strchr((char *)__s,0x23);" (assignment_expression "pcVar2 = strchr((char *)__s,0x23)" identifier = (call_expression "strchr((char *)__s,0x23)" identifier (argument_list "((char *)__s,0x23)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar2 = '\0';\n    }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "bVar4 = *__s;" (assignment_expression "bVar4 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "uVar8 = bVar4 - 9;" (assignment_expression "uVar8 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "bVar1 = (byte)uVar8;" (assignment_expression "bVar1 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (while_statement "while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }" while (parenthesized_expression "(bVar1 < 0x18)" ( (binary_expression "bVar1 < 0x18" identifier < number_literal) )) (compound_statement "{\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }" { (expression_statement "bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;" (assignment_expression "bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0" identifier = (binary_expression "(0x80001dU >> (uVar8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x80001dU >> (uVar8 & 0x1f) & 1)" ( (binary_expression "0x80001dU >> (uVar8 & 0x1f) & 1" (binary_expression "0x80001dU >> (uVar8 & 0x1f)" number_literal >> (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal)) ;) (expression_statement "bVar13 = bVar1 == 0x17;" (assignment_expression "bVar13 = bVar1 == 0x17" identifier = (binary_expression "bVar1 == 0x17" identifier == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_0003968a;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_0003968a;" goto statement_identifier ;)) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (expression_statement "uVar8 = bVar4 - 9;" (assignment_expression "uVar8 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "bVar1 = (byte)uVar8;" (assignment_expression "bVar1 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) })) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = bVar4 == 0;" (assignment_expression "bVar13 = bVar4 == 0" identifier = (binary_expression "bVar4 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }" { (labeled_statement "LAB_0003968a:\n      iVar7 = 7;" statement_identifier : (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;)) (expression_statement "pbVar11 = pbVar6;" (assignment_expression "pbVar11 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)"include";" (assignment_expression "pbVar10 = (byte *)"include"" identifier = (cast_expression "(byte *)"include"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""include"" " string_content "))) ;) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar11 < *pbVar10;" (assignment_expression "bVar12 = *pbVar11 < *pbVar10" identifier = (binary_expression "*pbVar11 < *pbVar10" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar10;" (assignment_expression "bVar13 = *pbVar11 == *pbVar10" identifier = (binary_expression "*pbVar11 == *pbVar10" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9))))" ( (binary_expression "((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))" (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) && (parenthesized_expression "((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))" ( (parenthesized_expression "(pbVar6[7] == 0x20 || (pbVar6[7] == 9))" ( (binary_expression "pbVar6[7] == 0x20 || (pbVar6[7] == 9)" (binary_expression "pbVar6[7] == 0x20" (subscript_expression "pbVar6[7]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(pbVar6[7] == 9)" ( (binary_expression "pbVar6[7] == 9" (subscript_expression "pbVar6[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }" { (expression_statement "pbVar6 = pbVar6 + 8;" (assignment_expression "pbVar6 = pbVar6 + 8" identifier = (binary_expression "pbVar6 + 8" identifier + number_literal)) ;) (do_statement "do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );" do (compound_statement "{\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        }" { (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (while_statement "while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }" while (parenthesized_expression "((bVar4 != 0x20 && (bVar4 != 9)))" ( (parenthesized_expression "(bVar4 != 0x20 && (bVar4 != 9))" ( (binary_expression "bVar4 != 0x20 && (bVar4 != 9)" (binary_expression "bVar4 != 0x20" identifier != number_literal) && (parenthesized_expression "(bVar4 != 9)" ( (binary_expression "bVar4 != 9" identifier != number_literal) ))) )) )) (compound_statement "{\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }" { (expression_statement "pbVar11 = pbVar6;" (assignment_expression "pbVar11 = pbVar6" identifier = identifier) ;) (if_statement "if (bVar4 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (do_statement "do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);" do (compound_statement "{\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            }" { (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (expression_statement "bVar1 = pbVar10[1];" (assignment_expression "bVar1 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" if (parenthesized_expression "((bVar1 == 0x20) || (bVar1 == 9))" ( (binary_expression "(bVar1 == 0x20) || (bVar1 == 9)" (parenthesized_expression "(bVar1 == 0x20)" ( (binary_expression "bVar1 == 0x20" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 9)" ( (binary_expression "bVar1 == 9" identifier == number_literal) ))) )) (compound_statement "{\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" { (expression_statement "pbVar10[1] = 0;" (assignment_expression "pbVar10[1] = 0" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (if_statement "if (bVar4 == 0) goto LAB_00039955;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039955;" goto statement_identifier ;)) (goto_statement "goto LAB_0003985a;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (bVar4 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (labeled_statement "LAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" statement_identifier : (if_statement "if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" if (parenthesized_expression "(bVar4 == 0x2f)" ( (binary_expression "bVar4 == 0x2f" identifier == number_literal) )) (compound_statement "{\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }" { (expression_statement "iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);" (assignment_expression "iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" identifier = (call_expression "glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" identifier (argument_list "((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" ( (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(__errfunc *)0x0" ( (type_descriptor "__errfunc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }" { (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_40.gl_pathc != 0) goto LAB_000398e9;" if (parenthesized_expression "(local_40.gl_pathc != 0)" ( (binary_expression "local_40.gl_pathc != 0" (field_expression "local_40.gl_pathc" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_000398e9;" goto statement_identifier ;)) (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" identifier (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) ))) ;) })) }) (else_clause "else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" else (compound_statement "{\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" { (expression_statement "pcVar2 = strrchr(param_2,0x2f);" (assignment_expression "pcVar2 = strrchr(param_2,0x2f)" identifier = (call_expression "strrchr(param_2,0x2f)" identifier (argument_list "(param_2,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "sVar9 = strlen((char *)pbVar6);" (assignment_expression "sVar9 = strlen((char *)pbVar6)" identifier = (call_expression "strlen((char *)pbVar6)" identifier (argument_list "((char *)pbVar6)" ( (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));" (assignment_expression "local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" identifier = (cast_expression "(char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" identifier (argument_list "(pcVar2 + sVar9 + (2 - (int)param_2))" ( (binary_expression "pcVar2 + sVar9 + (2 - (int)param_2)" (binary_expression "pcVar2 + sVar9" identifier + identifier) + (parenthesized_expression "(2 - (int)param_2)" ( (binary_expression "2 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))))) ;) (expression_statement "memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));" (call_expression "memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)))" identifier (argument_list "(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)))" ( identifier , identifier , (cast_expression "(size_t)(pcVar2 + (1 - (int)param_2))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar2 + (1 - (int)param_2))" ( (binary_expression "pcVar2 + (1 - (int)param_2)" identifier + (parenthesized_expression "(1 - (int)param_2)" ( (binary_expression "1 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ))) ;) (expression_statement "memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);" (call_expression "memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1)" identifier (argument_list "(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1)" ( (binary_expression "local_70 + (int)(pcVar2 + (1 - (int)param_2))" identifier + (cast_expression "(int)(pcVar2 + (1 - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar2 + (1 - (int)param_2))" ( (binary_expression "pcVar2 + (1 - (int)param_2)" identifier + (parenthesized_expression "(1 - (int)param_2)" ( (binary_expression "1 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) , identifier , (binary_expression "sVar9 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);" (assignment_expression "iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40)" identifier = (call_expression "glob64(local_70,0,(__errfunc *)0x0,&local_40)" identifier (argument_list "(local_70,0,(__errfunc *)0x0,&local_40)" ( identifier , number_literal , (cast_expression "(__errfunc *)0x0" ( (type_descriptor "__errfunc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" { (if_statement "if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" if (parenthesized_expression "(local_40.gl_pathc == 0)" ( (binary_expression "local_40.gl_pathc == 0" (field_expression "local_40.gl_pathc" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                  globfree64(&local_40);\n                }" { (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" identifier (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) ))) ;) }) (else_clause "else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" else (compound_statement "{\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" { (labeled_statement "LAB_000398e9:\n                  uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) (do_statement "do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);" do (compound_statement "{\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  }" { (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00039520();" (call_expression "FUN_00039520()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(uVar8 < local_40.gl_pathc)" ( (binary_expression "uVar8 < local_40.gl_pathc" identifier < (field_expression "local_40.gl_pathc" identifier . field_identifier)) )) ;) (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" identifier (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) ))) ;) (if_statement "if (local_70 == (char *)0x0) goto LAB_00039955;" if (parenthesized_expression "(local_70 == (char *)0x0)" ( (binary_expression "local_70 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00039955;" goto statement_identifier ;)) }))) })) (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) })))) (labeled_statement "LAB_00039955:\n            pbVar6 = pbVar10 + 2;" statement_identifier : (expression_statement "pbVar6 = pbVar10 + 2;" (assignment_expression "pbVar6 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;)) (if_statement "if (bVar1 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) })) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (if_statement "if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }" if (parenthesized_expression "(((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb)))" ( (binary_expression "((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))" (parenthesized_expression "((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0)" ( (binary_expression "(bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0" (parenthesized_expression "(bVar4 != 0x3d && bVar4 != 9)" ( (binary_expression "bVar4 != 0x3d && bVar4 != 9" (binary_expression "bVar4 != 0x3d" identifier != number_literal) && (binary_expression "bVar4 != 9" identifier != number_literal)) )) && (binary_expression "(bVar4 & 0xdf) != 0" (parenthesized_expression "(bVar4 & 0xdf)" ( (binary_expression "bVar4 & 0xdf" identifier & number_literal) )) != number_literal)) )) && (parenthesized_expression "(pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))" ( (comma_expression "pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb)" (assignment_expression "pbVar11 = pbVar6" identifier = identifier) , (binary_expression "2 < (byte)(bVar4 - 0xb)" number_literal < (call_expression "(byte)(bVar4 - 0xb)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0xb)" ( (binary_expression "bVar4 - 0xb" identifier - number_literal) ))))) ))) )) (compound_statement "{\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }" { (do_statement "do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));" do (compound_statement "{\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *pbVar11;" (assignment_expression "bVar4 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (if_statement "if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;" if (parenthesized_expression "((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0)" ( (binary_expression "(bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0" (parenthesized_expression "(bVar4 == 9 || bVar4 == 0x3d)" ( (binary_expression "bVar4 == 9 || bVar4 == 0x3d" (binary_expression "bVar4 == 9" identifier == number_literal) || (binary_expression "bVar4 == 0x3d" identifier == number_literal)) )) || (binary_expression "(bVar4 & 0xdf) == 0" (parenthesized_expression "(bVar4 & 0xdf)" ( (binary_expression "bVar4 & 0xdf" identifier & number_literal) )) == number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(2 < (byte)(bVar4 - 0xb))" ( (binary_expression "2 < (byte)(bVar4 - 0xb)" number_literal < (call_expression "(byte)(bVar4 - 0xb)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0xb)" ( (binary_expression "bVar4 - 0xb" identifier - number_literal) )))) )) ;) (do_statement "do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );" do (compound_statement "{\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        }" { (if_statement "if (pbVar11 == pbVar6) break;" if (parenthesized_expression "(pbVar11 == pbVar6)" ( (binary_expression "pbVar11 == pbVar6" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }" if (parenthesized_expression "(pbVar11[-1] != 0x2f)" ( (binary_expression "pbVar11[-1] != 0x2f" (subscript_expression "pbVar11[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }" { (expression_statement "sVar9 = (int)pbVar11 - (int)pbVar6;" (assignment_expression "sVar9 = (int)pbVar11 - (int)pbVar6" identifier = (binary_expression "(int)pbVar11 - (int)pbVar6" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto joined_r0x00039735;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar11 + -1;" (assignment_expression "pbVar11 = pbVar11 + -1" identifier = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (labeled_statement "joined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" statement_identifier : (if_statement "if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }" { (expression_statement "param_1[2] = sVar9 + 0x101;" (assignment_expression "param_1[2] = sVar9 + 0x101" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "sVar9 + 0x101" identifier + number_literal)) ;) (expression_statement "__dest = (void *)xmalloc(sVar9 + 0x101);" (assignment_expression "__dest = (void *)xmalloc(sVar9 + 0x101)" identifier = (cast_expression "(void *)xmalloc(sVar9 + 0x101)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 0x101)" identifier (argument_list "(sVar9 + 0x101)" ( (binary_expression "sVar9 + 0x101" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = (int)__dest;" (assignment_expression "*param_1 = (int)__dest" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" else (compound_statement "{\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" { (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar3 + 1;" (assignment_expression "iVar5 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }" if (parenthesized_expression "((uint)param_1[2] <= iVar5 + sVar9)" ( (binary_expression "(uint)param_1[2] <= iVar5 + sVar9" (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) <= (binary_expression "iVar5 + sVar9" identifier + identifier)) )) (compound_statement "{\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }" { (expression_statement "iVar5 = param_1[2] + 0x100U + sVar9;" (assignment_expression "iVar5 = param_1[2] + 0x100U + sVar9" identifier = (binary_expression "param_1[2] + 0x100U + sVar9" (binary_expression "param_1[2] + 0x100U" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) + identifier)) ;) (expression_statement "param_1[2] = iVar5;" (assignment_expression "param_1[2] = iVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = xrealloc(iVar7,iVar5);" (assignment_expression "iVar7 = xrealloc(iVar7,iVar5)" identifier = (call_expression "xrealloc(iVar7,iVar5)" identifier (argument_list "(iVar7,iVar5)" ( identifier , identifier )))) ;) (expression_statement "*param_1 = iVar7;" (assignment_expression "*param_1 = iVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar3 + 1;" (assignment_expression "iVar5 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) })) (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;" (assignment_expression "*(undefined1 *)(iVar7 + iVar3) = DAT_0013d808" (pointer_expression "*(undefined1 *)(iVar7 + iVar3)" * (cast_expression "(undefined1 *)(iVar7 + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar3)" ( (binary_expression "iVar7 + iVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "__dest = (void *)(param_1[1] + *param_1);" (assignment_expression "__dest = (void *)(param_1[1] + *param_1)" identifier = (cast_expression "(void *)(param_1[1] + *param_1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + *param_1)" ( (binary_expression "param_1[1] + *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (pointer_expression "*param_1" * identifier)) )))) ;) })))) (expression_statement "memcpy(__dest,pbVar6,sVar9);" (call_expression "memcpy(__dest,pbVar6,sVar9)" identifier (argument_list "(__dest,pbVar6,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = param_1[1];" (assignment_expression "iVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = iVar7 + sVar9;" (assignment_expression "param_1[1] = iVar7 + sVar9" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "iVar7 + sVar9" identifier + identifier)) ;) (expression_statement "*(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;" (assignment_expression "*(undefined1 *)(*param_1 + iVar7 + sVar9) = 0" (pointer_expression "*(undefined1 *)(*param_1 + iVar7 + sVar9)" * (cast_expression "(undefined1 *)(*param_1 + iVar7 + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + iVar7 + sVar9)" ( (binary_expression "*param_1 + iVar7 + sVar9" (binary_expression "*param_1 + iVar7" (pointer_expression "*param_1" * identifier) + identifier) + identifier) )))) = number_literal) ;) })) (labeled_statement "LAB_00039790:\n    iVar7 = feof(__stream);" statement_identifier : (expression_statement "iVar7 = feof(__stream);" (assignment_expression "iVar7 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" { (labeled_statement "LAB_000397a7:\n      free(__s);" statement_identifier : (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3\ngldelf64lriscv_parse_ld_so_conf(gldelf64lriscv_ld_so_conf *info,char *filename)\n\n{\n  char **ppcVar1;\n  byte bVar2;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar3;\n  size_t sVar4;\n  size_t sVar5;\n  byte bVar6;\n  byte *pbVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char *local_70;\n  int local_6c;\n  glob_t gl;\n  \n  bVar15 = 0;\n  __stream = fopen64(filename,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar7 = __s;\nLAB_000395db:\n  do {\n    iVar8 = local_6c - ((int)pbVar7 - (int)__s);\n    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);\n    if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar3 = strchr((char *)__s,10);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    pcVar3 = strchr((char *)__s,0x23);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    bVar6 = *__s;\n    uVar9 = bVar6 - 9;\n    bVar2 = (byte)uVar9;\n    pbVar7 = __s;\n    while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }\n    bVar13 = false;\n    bVar14 = bVar6 == 0;\n    if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }\nLAB_00039790:\n    iVar8 = feof(__stream);\n    pbVar7 = __s;\n    if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "bfd_boolean __regparm3\ngldelf64lriscv_parse_ld_so_conf(gldelf64lriscv_ld_so_conf *info,char *filename)\n\n{\n  char **ppcVar1;\n  byte bVar2;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar3;\n  size_t sVar4;\n  size_t sVar5;\n  byte bVar6;\n  byte *pbVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char *local_70;\n  int local_6c;\n  glob_t gl;\n  \n  bVar15 = 0;\n  __stream = fopen64(filename,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar7 = __s;\nLAB_000395db:\n  do {\n    iVar8 = local_6c - ((int)pbVar7 - (int)__s);\n    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);\n    if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar3 = strchr((char *)__s,10);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    pcVar3 = strchr((char *)__s,0x23);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    bVar6 = *__s;\n    uVar9 = bVar6 - 9;\n    bVar2 = (byte)uVar9;\n    pbVar7 = __s;\n    while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }\n    bVar13 = false;\n    bVar14 = bVar6 == 0;\n    if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }\nLAB_00039790:\n    iVar8 = feof(__stream);\n    pbVar7 = __s;\n    if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "gldelf64lriscv_parse_ld_so_conf(gldelf64lriscv_ld_so_conf *info,char *filename)" identifier (parameter_list "(gldelf64lriscv_ld_so_conf *info,char *filename)" ( (parameter_declaration "gldelf64lriscv_ld_so_conf *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  char **ppcVar1;\n  byte bVar2;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar3;\n  size_t sVar4;\n  size_t sVar5;\n  byte bVar6;\n  byte *pbVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char *local_70;\n  int local_6c;\n  glob_t gl;\n  \n  bVar15 = 0;\n  __stream = fopen64(filename,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar7 = __s;\nLAB_000395db:\n  do {\n    iVar8 = local_6c - ((int)pbVar7 - (int)__s);\n    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);\n    if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar3 = strchr((char *)__s,10);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    pcVar3 = strchr((char *)__s,0x23);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    bVar6 = *__s;\n    uVar9 = bVar6 - 9;\n    bVar2 = (byte)uVar9;\n    pbVar7 = __s;\n    while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }\n    bVar13 = false;\n    bVar14 = bVar6 == 0;\n    if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }\nLAB_00039790:\n    iVar8 = feof(__stream);\n    pbVar7 = __s;\n    if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" { (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "glob_t gl;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "__stream = fopen64(filename,"r");" (assignment_expression "__stream = fopen64(filename,"r")" identifier = (call_expression "fopen64(filename,"r")" identifier (argument_list "(filename,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = (byte *)xmalloc(0x100);" (assignment_expression "__s = (byte *)xmalloc(0x100)" identifier = (cast_expression "(byte *)xmalloc(0x100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x100)" identifier (argument_list "(0x100)" ( number_literal ))))) ;) (expression_statement "local_6c = 0x100;" (assignment_expression "local_6c = 0x100" identifier = number_literal) ;) (expression_statement "pbVar7 = __s;" (assignment_expression "pbVar7 = __s" identifier = identifier) ;) (labeled_statement "LAB_000395db:\n  do {\n    iVar8 = local_6c - ((int)pbVar7 - (int)__s);\n    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);\n    if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar3 = strchr((char *)__s,10);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    pcVar3 = strchr((char *)__s,0x23);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    bVar6 = *__s;\n    uVar9 = bVar6 - 9;\n    bVar2 = (byte)uVar9;\n    pbVar7 = __s;\n    while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }\n    bVar13 = false;\n    bVar14 = bVar6 == 0;\n    if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }\nLAB_00039790:\n    iVar8 = feof(__stream);\n    pbVar7 = __s;\n    if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    iVar8 = local_6c - ((int)pbVar7 - (int)__s);\n    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);\n    if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar3 = strchr((char *)__s,10);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    pcVar3 = strchr((char *)__s,0x23);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    bVar6 = *__s;\n    uVar9 = bVar6 - 9;\n    bVar2 = (byte)uVar9;\n    pbVar7 = __s;\n    while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }\n    bVar13 = false;\n    bVar14 = bVar6 == 0;\n    if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }\nLAB_00039790:\n    iVar8 = feof(__stream);\n    pbVar7 = __s;\n    if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar8 = local_6c - ((int)pbVar7 - (int)__s);\n    pcVar3 = fgets((char *)pbVar7,iVar8,__stream);\n    if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar3 = strchr((char *)__s,10);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    pcVar3 = strchr((char *)__s,0x23);\n    if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }\n    bVar6 = *__s;\n    uVar9 = bVar6 - 9;\n    bVar2 = (byte)uVar9;\n    pbVar7 = __s;\n    while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }\n    bVar13 = false;\n    bVar14 = bVar6 == 0;\n    if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }\nLAB_00039790:\n    iVar8 = feof(__stream);\n    pbVar7 = __s;\n    if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  }" { (expression_statement "iVar8 = local_6c - ((int)pbVar7 - (int)__s);" (assignment_expression "iVar8 = local_6c - ((int)pbVar7 - (int)__s)" identifier = (binary_expression "local_6c - ((int)pbVar7 - (int)__s)" identifier - (parenthesized_expression "((int)pbVar7 - (int)__s)" ( (binary_expression "(int)pbVar7 - (int)__s" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar3 = fgets((char *)pbVar7,iVar8,__stream);" (assignment_expression "pcVar3 = fgets((char *)pbVar7,iVar8,__stream)" identifier = (call_expression "fgets((char *)pbVar7,iVar8,__stream)" identifier (argument_list "((char *)pbVar7,iVar8,__stream)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      if (__s == pbVar7) goto LAB_000397a7;\n    }\n    else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (__s == pbVar7) goto LAB_000397a7;\n    }" { (if_statement "if (__s == pbVar7) goto LAB_000397a7;" if (parenthesized_expression "(__s == pbVar7)" ( (binary_expression "__s == pbVar7" identifier == identifier) )) (goto_statement "goto LAB_000397a7;" goto statement_identifier ;)) }) (else_clause "else {\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" else (compound_statement "{\n      sVar10 = strlen(pcVar3);\n      if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" { (expression_statement "sVar10 = strlen(pcVar3);" (assignment_expression "sVar10 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (if_statement "if ((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" if (parenthesized_expression "((sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10))" ( (binary_expression "(sVar10 == iVar8 - 1U) && (__s[local_6c + -2] != 10)" (parenthesized_expression "(sVar10 == iVar8 - 1U)" ( (binary_expression "sVar10 == iVar8 - 1U" identifier == (binary_expression "iVar8 - 1U" identifier - number_literal)) )) && (parenthesized_expression "(__s[local_6c + -2] != 10)" ( (binary_expression "__s[local_6c + -2] != 10" (subscript_expression "__s[local_6c + -2]" identifier [ (binary_expression "local_6c + -2" identifier + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar7 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" { (expression_statement "__s = (byte *)xrealloc(__s,local_6c * 2);" (assignment_expression "__s = (byte *)xrealloc(__s,local_6c * 2)" identifier = (cast_expression "(byte *)xrealloc(__s,local_6c * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__s,local_6c * 2)" identifier (argument_list "(__s,local_6c * 2)" ( identifier , (binary_expression "local_6c * 2" identifier * number_literal) ))))) ;) (expression_statement "pbVar7 = __s + local_6c + -1;" (assignment_expression "pbVar7 = __s + local_6c + -1" identifier = (binary_expression "__s + local_6c + -1" (binary_expression "__s + local_6c" identifier + identifier) + number_literal)) ;) (expression_statement "local_6c = local_6c * 2;" (assignment_expression "local_6c = local_6c * 2" identifier = (binary_expression "local_6c * 2" identifier * number_literal)) ;) (goto_statement "goto LAB_000395db;" goto statement_identifier ;) })) }))) (expression_statement "pcVar3 = strchr((char *)__s,10);" (assignment_expression "pcVar3 = strchr((char *)__s,10)" identifier = (call_expression "strchr((char *)__s,10)" identifier (argument_list "((char *)__s,10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar3 = '\0';\n    }" { (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar3 = strchr((char *)__s,0x23);" (assignment_expression "pcVar3 = strchr((char *)__s,0x23)" identifier = (call_expression "strchr((char *)__s,0x23)" identifier (argument_list "((char *)__s,0x23)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n      *pcVar3 = '\0';\n    }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar3 = '\0';\n    }" { (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "bVar6 = *__s;" (assignment_expression "bVar6 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "uVar9 = bVar6 - 9;" (assignment_expression "uVar9 = bVar6 - 9" identifier = (binary_expression "bVar6 - 9" identifier - number_literal)) ;) (expression_statement "bVar2 = (byte)uVar9;" (assignment_expression "bVar2 = (byte)uVar9" identifier = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar7 = __s;" (assignment_expression "pbVar7 = __s" identifier = identifier) ;) (while_statement "while (bVar2 < 0x18) {\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }" while (parenthesized_expression "(bVar2 < 0x18)" ( (binary_expression "bVar2 < 0x18" identifier < number_literal) )) (compound_statement "{\n      bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;\n      bVar14 = bVar2 == 0x17;\n      if (!bVar13) goto LAB_0003968a;\n      pbVar7 = pbVar7 + 1;\n      bVar6 = *pbVar7;\n      uVar9 = bVar6 - 9;\n      bVar2 = (byte)uVar9;\n    }" { (expression_statement "bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0;" (assignment_expression "bVar13 = (0x80001dU >> (uVar9 & 0x1f) & 1) != 0" identifier = (binary_expression "(0x80001dU >> (uVar9 & 0x1f) & 1) != 0" (parenthesized_expression "(0x80001dU >> (uVar9 & 0x1f) & 1)" ( (binary_expression "0x80001dU >> (uVar9 & 0x1f) & 1" (binary_expression "0x80001dU >> (uVar9 & 0x1f)" number_literal >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal)) ;) (expression_statement "bVar14 = bVar2 == 0x17;" (assignment_expression "bVar14 = bVar2 == 0x17" identifier = (binary_expression "bVar2 == 0x17" identifier == number_literal)) ;) (if_statement "if (!bVar13) goto LAB_0003968a;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_0003968a;" goto statement_identifier ;)) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar7;" (assignment_expression "bVar6 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (expression_statement "uVar9 = bVar6 - 9;" (assignment_expression "uVar9 = bVar6 - 9" identifier = (binary_expression "bVar6 - 9" identifier - number_literal)) ;) (expression_statement "bVar2 = (byte)uVar9;" (assignment_expression "bVar2 = (byte)uVar9" identifier = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) })) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar14 = bVar6 == 0;" (assignment_expression "bVar14 = bVar6 == 0" identifier = (binary_expression "bVar6 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar14) {\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (compound_statement "{\nLAB_0003968a:\n      iVar8 = 7;\n      pbVar12 = pbVar7;\n      pbVar11 = (byte *)"include";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }\n      bVar6 = *pbVar7;\n      if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }\n      sVar10 = 0;\n      pcVar3 = info->path;\njoined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }\n      memcpy(pcVar3,pbVar7,sVar10);\n      sVar5 = info->len + sVar10;\n      info->len = sVar5;\n      info->path[sVar5] = '\0';\n    }" { (labeled_statement "LAB_0003968a:\n      iVar8 = 7;" statement_identifier : (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;)) (expression_statement "pbVar12 = pbVar7;" (assignment_expression "pbVar12 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"include";" (assignment_expression "pbVar11 = (byte *)"include"" identifier = (cast_expression "(byte *)"include"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""include"" " string_content "))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar13 = *pbVar12 < *pbVar11;\n        bVar14 = *pbVar12 == *pbVar11;\n        pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar12 < *pbVar11;" (assignment_expression "bVar13 = *pbVar12 < *pbVar11" identifier = (binary_expression "*pbVar12 < *pbVar11" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar14 = *pbVar12 == *pbVar11;" (assignment_expression "bVar14 = *pbVar12 == *pbVar11" identifier = (binary_expression "*pbVar12 == *pbVar11" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if (((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))) {\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9))))" ( (binary_expression "((!bVar13 && !bVar14) == bVar13) && ((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))" (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) && (parenthesized_expression "((pbVar7[7] == 0x20 || (pbVar7[7] == 9)))" ( (parenthesized_expression "(pbVar7[7] == 0x20 || (pbVar7[7] == 9))" ( (binary_expression "pbVar7[7] == 0x20 || (pbVar7[7] == 9)" (binary_expression "pbVar7[7] == 0x20" (subscript_expression "pbVar7[7]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(pbVar7[7] == 9)" ( (binary_expression "pbVar7[7] == 9" (subscript_expression "pbVar7[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        pbVar7 = pbVar7 + 8;\n        do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );\n      }" { (expression_statement "pbVar7 = pbVar7 + 8;" (assignment_expression "pbVar7 = pbVar7 + 8" identifier = (binary_expression "pbVar7 + 8" identifier + number_literal)) ;) (do_statement "do {\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        } while( true );" do (compound_statement "{\n          bVar6 = *pbVar7;\n          while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }\n          pbVar7 = pbVar7 + 1;\n        }" { (expression_statement "bVar6 = *pbVar7;" (assignment_expression "bVar6 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (while_statement "while ((bVar6 != 0x20 && (bVar6 != 9))) {\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }" while (parenthesized_expression "((bVar6 != 0x20 && (bVar6 != 9)))" ( (parenthesized_expression "(bVar6 != 0x20 && (bVar6 != 9))" ( (binary_expression "bVar6 != 0x20 && (bVar6 != 9)" (binary_expression "bVar6 != 0x20" identifier != number_literal) && (parenthesized_expression "(bVar6 != 9)" ( (binary_expression "bVar6 != 9" identifier != number_literal) ))) )) )) (compound_statement "{\n            pbVar12 = pbVar7;\n            if (bVar6 == 0) goto LAB_00039790;\n            do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);\n            if (bVar6 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar7 = pbVar11 + 2;\n            if (bVar2 == 0) goto LAB_00039790;\n            bVar6 = *pbVar7;\n          }" { (expression_statement "pbVar12 = pbVar7;" (assignment_expression "pbVar12 = pbVar7" identifier = identifier) ;) (if_statement "if (bVar6 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (do_statement "do {\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            } while (bVar2 != 0);" do (compound_statement "{\n              pbVar11 = pbVar12;\n              bVar2 = pbVar11[1];\n              if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar12 = pbVar11 + 1;\n            }" { (expression_statement "pbVar11 = pbVar12;" (assignment_expression "pbVar11 = pbVar12" identifier = identifier) ;) (expression_statement "bVar2 = pbVar11[1];" (assignment_expression "bVar2 = pbVar11[1]" identifier = (subscript_expression "pbVar11[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar2 == 0x20) || (bVar2 == 9)) {\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" if (parenthesized_expression "((bVar2 == 0x20) || (bVar2 == 9))" ( (binary_expression "(bVar2 == 0x20) || (bVar2 == 9)" (parenthesized_expression "(bVar2 == 0x20)" ( (binary_expression "bVar2 == 0x20" identifier == number_literal) )) || (parenthesized_expression "(bVar2 == 9)" ( (binary_expression "bVar2 == 9" identifier == number_literal) ))) )) (compound_statement "{\n                pbVar11[1] = 0;\n                bVar6 = *pbVar7;\n                if (bVar6 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" { (expression_statement "pbVar11[1] = 0;" (assignment_expression "pbVar11[1] = 0" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar6 = *pbVar7;" (assignment_expression "bVar6 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (if_statement "if (bVar6 == 0) goto LAB_00039955;" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039955;" goto statement_identifier ;)) (goto_statement "goto LAB_0003985a;" goto statement_identifier ;) })) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) ;) (if_statement "if (bVar6 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (labeled_statement "LAB_0003985a:\n            if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" statement_identifier : (if_statement "if (bVar6 == 0x2f) {\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }\n            else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" if (parenthesized_expression "(bVar6 == 0x2f)" ( (binary_expression "bVar6 == 0x2f" identifier == number_literal) )) (compound_statement "{\n              iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }\n            }" { (expression_statement "iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl);" (assignment_expression "iVar8 = glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl)" identifier = (call_expression "glob64((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl)" identifier (argument_list "((char *)pbVar7,0,(__errfunc *)0x0,(glob64_t *)&gl)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(__errfunc *)0x0" ( (type_descriptor "__errfunc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(glob64_t *)&gl" ( (type_descriptor "glob64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gl" & identifier)) )))) ;) (if_statement "if (iVar8 == 0) {\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                local_70 = (char *)0x0;\n                if (gl.gl_pathc != 0) goto LAB_000398e9;\n                globfree64((glob64_t *)&gl);\n              }" { (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (gl.gl_pathc != 0) goto LAB_000398e9;" if (parenthesized_expression "(gl.gl_pathc != 0)" ( (binary_expression "gl.gl_pathc != 0" (field_expression "gl.gl_pathc" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_000398e9;" goto statement_identifier ;)) (expression_statement "globfree64((glob64_t *)&gl);" (call_expression "globfree64((glob64_t *)&gl)" identifier (argument_list "((glob64_t *)&gl)" ( (cast_expression "(glob64_t *)&gl" ( (type_descriptor "glob64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gl" & identifier)) ))) ;) })) }) (else_clause "else {\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" else (compound_statement "{\n              pcVar3 = strrchr(filename,0x2f);\n              sVar10 = strlen((char *)pbVar7);\n              local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));\n              memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));\n              memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);\n              iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);\n              if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" { (expression_statement "pcVar3 = strrchr(filename,0x2f);" (assignment_expression "pcVar3 = strrchr(filename,0x2f)" identifier = (call_expression "strrchr(filename,0x2f)" identifier (argument_list "(filename,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "sVar10 = strlen((char *)pbVar7);" (assignment_expression "sVar10 = strlen((char *)pbVar7)" identifier = (call_expression "strlen((char *)pbVar7)" identifier (argument_list "((char *)pbVar7)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename));" (assignment_expression "local_70 = (char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename))" identifier = (cast_expression "(char *)xmalloc(pcVar3 + sVar10 + (2 - (int)filename))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(pcVar3 + sVar10 + (2 - (int)filename))" identifier (argument_list "(pcVar3 + sVar10 + (2 - (int)filename))" ( (binary_expression "pcVar3 + sVar10 + (2 - (int)filename)" (binary_expression "pcVar3 + sVar10" identifier + identifier) + (parenthesized_expression "(2 - (int)filename)" ( (binary_expression "2 - (int)filename" number_literal - (cast_expression "(int)filename" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))))) ;) (expression_statement "memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)));" (call_expression "memcpy(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)))" identifier (argument_list "(local_70,filename,(size_t)(pcVar3 + (1 - (int)filename)))" ( identifier , identifier , (cast_expression "(size_t)(pcVar3 + (1 - (int)filename))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar3 + (1 - (int)filename))" ( (binary_expression "pcVar3 + (1 - (int)filename)" identifier + (parenthesized_expression "(1 - (int)filename)" ( (binary_expression "1 - (int)filename" number_literal - (cast_expression "(int)filename" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ))) ;) (expression_statement "memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1);" (call_expression "memcpy(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1)" identifier (argument_list "(local_70 + (int)(pcVar3 + (1 - (int)filename)),pbVar7,sVar10 + 1)" ( (binary_expression "local_70 + (int)(pcVar3 + (1 - (int)filename))" identifier + (cast_expression "(int)(pcVar3 + (1 - (int)filename))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar3 + (1 - (int)filename))" ( (binary_expression "pcVar3 + (1 - (int)filename)" identifier + (parenthesized_expression "(1 - (int)filename)" ( (binary_expression "1 - (int)filename" number_literal - (cast_expression "(int)filename" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) , identifier , (binary_expression "sVar10 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl);" (assignment_expression "iVar8 = glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl)" identifier = (call_expression "glob64(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl)" identifier (argument_list "(local_70,0,(__errfunc *)0x0,(glob64_t *)&gl)" ( identifier , number_literal , (cast_expression "(__errfunc *)0x0" ( (type_descriptor "__errfunc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(glob64_t *)&gl" ( (type_descriptor "glob64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gl" & identifier)) )))) ;) (if_statement "if (iVar8 == 0) {\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" { (if_statement "if (gl.gl_pathc == 0) {\n                  globfree64((glob64_t *)&gl);\n                }\n                else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" if (parenthesized_expression "(gl.gl_pathc == 0)" ( (binary_expression "gl.gl_pathc == 0" (field_expression "gl.gl_pathc" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                  globfree64((glob64_t *)&gl);\n                }" { (expression_statement "globfree64((glob64_t *)&gl);" (call_expression "globfree64((glob64_t *)&gl)" identifier (argument_list "((glob64_t *)&gl)" ( (cast_expression "(glob64_t *)&gl" ( (type_descriptor "glob64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gl" & identifier)) ))) ;) }) (else_clause "else {\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" else (compound_statement "{\nLAB_000398e9:\n                  uVar9 = 0;\n                  do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);\n                  globfree64((glob64_t *)&gl);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" { (labeled_statement "LAB_000398e9:\n                  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (do_statement "do {\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  } while (uVar9 < gl.gl_pathc);" do (compound_statement "{\n                    ppcVar1 = gl.gl_pathv + uVar9;\n                    uVar9 = uVar9 + 1;\n                    gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);\n                  }" { (expression_statement "ppcVar1 = gl.gl_pathv + uVar9;" (assignment_expression "ppcVar1 = gl.gl_pathv + uVar9" identifier = (binary_expression "gl.gl_pathv + uVar9" (field_expression "gl.gl_pathv" identifier . field_identifier) + identifier)) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1);" (call_expression "gldelf64lriscv_parse_ld_so_conf(info,*ppcVar1)" identifier (argument_list "(info,*ppcVar1)" ( identifier , (pointer_expression "*ppcVar1" * identifier) ))) ;) }) while (parenthesized_expression "(uVar9 < gl.gl_pathc)" ( (binary_expression "uVar9 < gl.gl_pathc" identifier < (field_expression "gl.gl_pathc" identifier . field_identifier)) )) ;) (expression_statement "globfree64((glob64_t *)&gl);" (call_expression "globfree64((glob64_t *)&gl)" identifier (argument_list "((glob64_t *)&gl)" ( (cast_expression "(glob64_t *)&gl" ( (type_descriptor "glob64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gl" & identifier)) ))) ;) (if_statement "if (local_70 == (char *)0x0) goto LAB_00039955;" if (parenthesized_expression "(local_70 == (char *)0x0)" ( (binary_expression "local_70 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00039955;" goto statement_identifier ;)) }))) })) (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) })))) (labeled_statement "LAB_00039955:\n            pbVar7 = pbVar11 + 2;" statement_identifier : (expression_statement "pbVar7 = pbVar11 + 2;" (assignment_expression "pbVar7 = pbVar11 + 2" identifier = (binary_expression "pbVar11 + 2" identifier + number_literal)) ;)) (if_statement "if (bVar2 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (expression_statement "bVar6 = *pbVar7;" (assignment_expression "bVar6 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "bVar6 = *pbVar7;" (assignment_expression "bVar6 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (if_statement "if (((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))) {\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }" if (parenthesized_expression "(((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb)))" ( (binary_expression "((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0) &&\n         (pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))" (parenthesized_expression "((bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0)" ( (binary_expression "(bVar6 != 0x3d && bVar6 != 9) && (bVar6 & 0xdf) != 0" (parenthesized_expression "(bVar6 != 0x3d && bVar6 != 9)" ( (binary_expression "bVar6 != 0x3d && bVar6 != 9" (binary_expression "bVar6 != 0x3d" identifier != number_literal) && (binary_expression "bVar6 != 9" identifier != number_literal)) )) && (binary_expression "(bVar6 & 0xdf) != 0" (parenthesized_expression "(bVar6 & 0xdf)" ( (binary_expression "bVar6 & 0xdf" identifier & number_literal) )) != number_literal)) )) && (parenthesized_expression "(pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb))" ( (comma_expression "pbVar12 = pbVar7, 2 < (byte)(bVar6 - 0xb)" (assignment_expression "pbVar12 = pbVar7" identifier = identifier) , (binary_expression "2 < (byte)(bVar6 - 0xb)" number_literal < (call_expression "(byte)(bVar6 - 0xb)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar6 - 0xb)" ( (binary_expression "bVar6 - 0xb" identifier - number_literal) ))))) ))) )) (compound_statement "{\n        do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));\n        do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );\n      }" { (do_statement "do {\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar6 - 0xb));" do (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          bVar6 = *pbVar12;\n          if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar12;" (assignment_expression "bVar6 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if ((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0) break;" if (parenthesized_expression "((bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0)" ( (binary_expression "(bVar6 == 9 || bVar6 == 0x3d) || (bVar6 & 0xdf) == 0" (parenthesized_expression "(bVar6 == 9 || bVar6 == 0x3d)" ( (binary_expression "bVar6 == 9 || bVar6 == 0x3d" (binary_expression "bVar6 == 9" identifier == number_literal) || (binary_expression "bVar6 == 0x3d" identifier == number_literal)) )) || (binary_expression "(bVar6 & 0xdf) == 0" (parenthesized_expression "(bVar6 & 0xdf)" ( (binary_expression "bVar6 & 0xdf" identifier & number_literal) )) == number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(2 < (byte)(bVar6 - 0xb))" ( (binary_expression "2 < (byte)(bVar6 - 0xb)" number_literal < (call_expression "(byte)(bVar6 - 0xb)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar6 - 0xb)" ( (binary_expression "bVar6 - 0xb" identifier - number_literal) )))) )) ;) (do_statement "do {\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        } while( true );" do (compound_statement "{\n          if (pbVar12 == pbVar7) break;\n          if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }\n          pbVar12 = pbVar12 + -1;\n        }" { (if_statement "if (pbVar12 == pbVar7) break;" if (parenthesized_expression "(pbVar12 == pbVar7)" ( (binary_expression "pbVar12 == pbVar7" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (pbVar12[-1] != 0x2f) {\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }" if (parenthesized_expression "(pbVar12[-1] != 0x2f)" ( (binary_expression "pbVar12[-1] != 0x2f" (subscript_expression "pbVar12[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            sVar10 = (int)pbVar12 - (int)pbVar7;\n            pcVar3 = info->path;\n            goto joined_r0x00039735;\n          }" { (expression_statement "sVar10 = (int)pbVar12 - (int)pbVar7;" (assignment_expression "sVar10 = (int)pbVar12 - (int)pbVar7" identifier = (binary_expression "(int)pbVar12 - (int)pbVar7" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = info->path;" (assignment_expression "pcVar3 = info->path" identifier = (field_expression "info->path" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00039735;" goto statement_identifier ;) })) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "sVar10 = 0;" (assignment_expression "sVar10 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = info->path;" (assignment_expression "pcVar3 = info->path" identifier = (field_expression "info->path" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x00039735:\n      if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }" statement_identifier : (if_statement "if (pcVar3 == (char *)0x0) {\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }\n      else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        info->alloc = sVar10 + 0x101;\n        pcVar3 = (char *)xmalloc(sVar10 + 0x101);\n        info->len = 0;\n        info->path = pcVar3;\n      }" { (expression_statement "info->alloc = sVar10 + 0x101;" (assignment_expression "info->alloc = sVar10 + 0x101" (field_expression "info->alloc" identifier -> field_identifier) = (binary_expression "sVar10 + 0x101" identifier + number_literal)) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar10 + 0x101);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar10 + 0x101)" identifier = (cast_expression "(char *)xmalloc(sVar10 + 0x101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar10 + 0x101)" identifier (argument_list "(sVar10 + 0x101)" ( (binary_expression "sVar10 + 0x101" identifier + number_literal) ))))) ;) (expression_statement "info->len = 0;" (assignment_expression "info->len = 0" (field_expression "info->len" identifier -> field_identifier) = number_literal) ;) (expression_statement "info->path = pcVar3;" (assignment_expression "info->path = pcVar3" (field_expression "info->path" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }" else (compound_statement "{\n        sVar4 = info->len;\n        sVar5 = sVar4 + 1;\n        if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }\n        info->len = sVar5;\n        pcVar3[sVar4] = config.rpath_separator;\n        pcVar3 = info->path + info->len;\n      }" { (expression_statement "sVar4 = info->len;" (assignment_expression "sVar4 = info->len" identifier = (field_expression "info->len" identifier -> field_identifier)) ;) (expression_statement "sVar5 = sVar4 + 1;" (assignment_expression "sVar5 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) (if_statement "if (info->alloc <= sVar5 + sVar10) {\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }" if (parenthesized_expression "(info->alloc <= sVar5 + sVar10)" ( (binary_expression "info->alloc <= sVar5 + sVar10" (field_expression "info->alloc" identifier -> field_identifier) <= (binary_expression "sVar5 + sVar10" identifier + identifier)) )) (compound_statement "{\n          sVar5 = info->alloc + 0x100 + sVar10;\n          info->alloc = sVar5;\n          pcVar3 = (char *)xrealloc(pcVar3,sVar5);\n          info->path = pcVar3;\n          sVar4 = info->len;\n          sVar5 = sVar4 + 1;\n        }" { (expression_statement "sVar5 = info->alloc + 0x100 + sVar10;" (assignment_expression "sVar5 = info->alloc + 0x100 + sVar10" identifier = (binary_expression "info->alloc + 0x100 + sVar10" (binary_expression "info->alloc + 0x100" (field_expression "info->alloc" identifier -> field_identifier) + number_literal) + identifier)) ;) (expression_statement "info->alloc = sVar5;" (assignment_expression "info->alloc = sVar5" (field_expression "info->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar3 = (char *)xrealloc(pcVar3,sVar5);" (assignment_expression "pcVar3 = (char *)xrealloc(pcVar3,sVar5)" identifier = (cast_expression "(char *)xrealloc(pcVar3,sVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pcVar3,sVar5)" identifier (argument_list "(pcVar3,sVar5)" ( identifier , identifier ))))) ;) (expression_statement "info->path = pcVar3;" (assignment_expression "info->path = pcVar3" (field_expression "info->path" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar4 = info->len;" (assignment_expression "sVar4 = info->len" identifier = (field_expression "info->len" identifier -> field_identifier)) ;) (expression_statement "sVar5 = sVar4 + 1;" (assignment_expression "sVar5 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "info->len = sVar5;" (assignment_expression "info->len = sVar5" (field_expression "info->len" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar3[sVar4] = config.rpath_separator;" (assignment_expression "pcVar3[sVar4] = config.rpath_separator" (subscript_expression "pcVar3[sVar4]" identifier [ identifier ]) = (field_expression "config.rpath_separator" identifier . field_identifier)) ;) (expression_statement "pcVar3 = info->path + info->len;" (assignment_expression "pcVar3 = info->path + info->len" identifier = (binary_expression "info->path + info->len" (field_expression "info->path" identifier -> field_identifier) + (field_expression "info->len" identifier -> field_identifier))) ;) })))) (expression_statement "memcpy(pcVar3,pbVar7,sVar10);" (call_expression "memcpy(pcVar3,pbVar7,sVar10)" identifier (argument_list "(pcVar3,pbVar7,sVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar5 = info->len + sVar10;" (assignment_expression "sVar5 = info->len + sVar10" identifier = (binary_expression "info->len + sVar10" (field_expression "info->len" identifier -> field_identifier) + identifier)) ;) (expression_statement "info->len = sVar5;" (assignment_expression "info->len = sVar5" (field_expression "info->len" identifier -> field_identifier) = identifier) ;) (expression_statement "info->path[sVar5] = '\0';" (assignment_expression "info->path[sVar5] = '\0'" (subscript_expression "info->path[sVar5]" (field_expression "info->path" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (labeled_statement "LAB_00039790:\n    iVar8 = feof(__stream);" statement_identifier : (expression_statement "iVar8 = feof(__stream);" (assignment_expression "iVar8 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (expression_statement "pbVar7 = __s;" (assignment_expression "pbVar7 = __s" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" { (labeled_statement "LAB_000397a7:\n      free(__s);" statement_identifier : (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "undefined4 __regparm3 FUN_00039520(int *param_1,char *param_2)\n\n{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00039520(int *param_1,char *param_2)\n\n{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00039520(int *param_1,char *param_2)" identifier (parameter_list "(int *param_1,char *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "glob64_t local_40;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x39529;" (assignment_expression "uStack_14 = 0x39529" identifier = number_literal) ;) (expression_statement "__stream = fopen64(param_2,"r");" (assignment_expression "__stream = fopen64(param_2,"r")" identifier = (call_expression "fopen64(param_2,"r")" identifier (argument_list "(param_2,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = (byte *)xmalloc(0x100);" (assignment_expression "__s = (byte *)xmalloc(0x100)" identifier = (cast_expression "(byte *)xmalloc(0x100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x100)" identifier (argument_list "(0x100)" ( number_literal ))))) ;) (expression_statement "local_6c = 0x100;" (assignment_expression "local_6c = 0x100" identifier = number_literal) ;) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (labeled_statement "LAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  }" { (expression_statement "iVar7 = local_6c - ((int)pbVar6 - (int)__s);" (assignment_expression "iVar7 = local_6c - ((int)pbVar6 - (int)__s)" identifier = (binary_expression "local_6c - ((int)pbVar6 - (int)__s)" identifier - (parenthesized_expression "((int)pbVar6 - (int)__s)" ( (binary_expression "(int)pbVar6 - (int)__s" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar2 = fgets((char *)pbVar6,iVar7,__stream);" (assignment_expression "pcVar2 = fgets((char *)pbVar6,iVar7,__stream)" identifier = (call_expression "fgets((char *)pbVar6,iVar7,__stream)" identifier (argument_list "((char *)pbVar6,iVar7,__stream)" ( (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (__s == pbVar6) goto LAB_000397a7;\n    }" { (if_statement "if (__s == pbVar6) goto LAB_000397a7;" if (parenthesized_expression "(__s == pbVar6)" ( (binary_expression "__s == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_000397a7;" goto statement_identifier ;)) }) (else_clause "else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" else (compound_statement "{\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" { (expression_statement "sVar9 = strlen(pcVar2);" (assignment_expression "sVar9 = strlen(pcVar2)" identifier = (call_expression "strlen(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier )))) ;) (if_statement "if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" if (parenthesized_expression "((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10))" ( (binary_expression "(sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)" (parenthesized_expression "(sVar9 == iVar7 - 1U)" ( (binary_expression "sVar9 == iVar7 - 1U" identifier == (binary_expression "iVar7 - 1U" identifier - number_literal)) )) && (parenthesized_expression "(__s[local_6c + -2] != 10)" ( (binary_expression "__s[local_6c + -2] != 10" (subscript_expression "__s[local_6c + -2]" identifier [ (binary_expression "local_6c + -2" identifier + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" { (expression_statement "__s = (byte *)xrealloc(__s,local_6c * 2);" (assignment_expression "__s = (byte *)xrealloc(__s,local_6c * 2)" identifier = (cast_expression "(byte *)xrealloc(__s,local_6c * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__s,local_6c * 2)" identifier (argument_list "(__s,local_6c * 2)" ( identifier , (binary_expression "local_6c * 2" identifier * number_literal) ))))) ;) (expression_statement "pbVar6 = __s + local_6c + -1;" (assignment_expression "pbVar6 = __s + local_6c + -1" identifier = (binary_expression "__s + local_6c + -1" (binary_expression "__s + local_6c" identifier + identifier) + number_literal)) ;) (expression_statement "local_6c = local_6c * 2;" (assignment_expression "local_6c = local_6c * 2" identifier = (binary_expression "local_6c * 2" identifier * number_literal)) ;) (goto_statement "goto LAB_000395db;" goto statement_identifier ;) })) }))) (expression_statement "pcVar2 = strchr((char *)__s,10);" (assignment_expression "pcVar2 = strchr((char *)__s,10)" identifier = (call_expression "strchr((char *)__s,10)" identifier (argument_list "((char *)__s,10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar2 = '\0';\n    }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar2 = strchr((char *)__s,0x23);" (assignment_expression "pcVar2 = strchr((char *)__s,0x23)" identifier = (call_expression "strchr((char *)__s,0x23)" identifier (argument_list "((char *)__s,0x23)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar2 = '\0';\n    }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "bVar4 = *__s;" (assignment_expression "bVar4 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "uVar8 = bVar4 - 9;" (assignment_expression "uVar8 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "bVar1 = (byte)uVar8;" (assignment_expression "bVar1 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (while_statement "while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }" while (parenthesized_expression "(bVar1 < 0x18)" ( (binary_expression "bVar1 < 0x18" identifier < number_literal) )) (compound_statement "{\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }" { (expression_statement "bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;" (assignment_expression "bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0" identifier = (binary_expression "(0x80001dU >> (uVar8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x80001dU >> (uVar8 & 0x1f) & 1)" ( (binary_expression "0x80001dU >> (uVar8 & 0x1f) & 1" (binary_expression "0x80001dU >> (uVar8 & 0x1f)" number_literal >> (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal)) ;) (expression_statement "bVar13 = bVar1 == 0x17;" (assignment_expression "bVar13 = bVar1 == 0x17" identifier = (binary_expression "bVar1 == 0x17" identifier == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_0003968a;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_0003968a;" goto statement_identifier ;)) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (expression_statement "uVar8 = bVar4 - 9;" (assignment_expression "uVar8 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "bVar1 = (byte)uVar8;" (assignment_expression "bVar1 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) })) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = bVar4 == 0;" (assignment_expression "bVar13 = bVar4 == 0" identifier = (binary_expression "bVar4 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }" { (labeled_statement "LAB_0003968a:\n      iVar7 = 7;" statement_identifier : (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;)) (expression_statement "pbVar11 = pbVar6;" (assignment_expression "pbVar11 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)"include";" (assignment_expression "pbVar10 = (byte *)"include"" identifier = (cast_expression "(byte *)"include"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""include"" " string_content "))) ;) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar11 < *pbVar10;" (assignment_expression "bVar12 = *pbVar11 < *pbVar10" identifier = (binary_expression "*pbVar11 < *pbVar10" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar10;" (assignment_expression "bVar13 = *pbVar11 == *pbVar10" identifier = (binary_expression "*pbVar11 == *pbVar10" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9))))" ( (binary_expression "((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))" (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) && (parenthesized_expression "((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))" ( (parenthesized_expression "(pbVar6[7] == 0x20 || (pbVar6[7] == 9))" ( (binary_expression "pbVar6[7] == 0x20 || (pbVar6[7] == 9)" (binary_expression "pbVar6[7] == 0x20" (subscript_expression "pbVar6[7]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(pbVar6[7] == 9)" ( (binary_expression "pbVar6[7] == 9" (subscript_expression "pbVar6[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }" { (expression_statement "pbVar6 = pbVar6 + 8;" (assignment_expression "pbVar6 = pbVar6 + 8" identifier = (binary_expression "pbVar6 + 8" identifier + number_literal)) ;) (do_statement "do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );" do (compound_statement "{\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        }" { (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (while_statement "while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }" while (parenthesized_expression "((bVar4 != 0x20 && (bVar4 != 9)))" ( (parenthesized_expression "(bVar4 != 0x20 && (bVar4 != 9))" ( (binary_expression "bVar4 != 0x20 && (bVar4 != 9)" (binary_expression "bVar4 != 0x20" identifier != number_literal) && (parenthesized_expression "(bVar4 != 9)" ( (binary_expression "bVar4 != 9" identifier != number_literal) ))) )) )) (compound_statement "{\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }" { (expression_statement "pbVar11 = pbVar6;" (assignment_expression "pbVar11 = pbVar6" identifier = identifier) ;) (if_statement "if (bVar4 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (do_statement "do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);" do (compound_statement "{\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            }" { (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (expression_statement "bVar1 = pbVar10[1];" (assignment_expression "bVar1 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" if (parenthesized_expression "((bVar1 == 0x20) || (bVar1 == 9))" ( (binary_expression "(bVar1 == 0x20) || (bVar1 == 9)" (parenthesized_expression "(bVar1 == 0x20)" ( (binary_expression "bVar1 == 0x20" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 9)" ( (binary_expression "bVar1 == 9" identifier == number_literal) ))) )) (compound_statement "{\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" { (expression_statement "pbVar10[1] = 0;" (assignment_expression "pbVar10[1] = 0" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (if_statement "if (bVar4 == 0) goto LAB_00039955;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039955;" goto statement_identifier ;)) (goto_statement "goto LAB_0003985a;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (bVar4 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (labeled_statement "LAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" statement_identifier : (if_statement "if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" if (parenthesized_expression "(bVar4 == 0x2f)" ( (binary_expression "bVar4 == 0x2f" identifier == number_literal) )) (compound_statement "{\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }" { (expression_statement "iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);" (assignment_expression "iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" identifier = (call_expression "glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" identifier (argument_list "((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" ( (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(__errfunc *)0x0" ( (type_descriptor "__errfunc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }" { (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_40.gl_pathc != 0) goto LAB_000398e9;" if (parenthesized_expression "(local_40.gl_pathc != 0)" ( (binary_expression "local_40.gl_pathc != 0" (field_expression "local_40.gl_pathc" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_000398e9;" goto statement_identifier ;)) (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" identifier (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) ))) ;) })) }) (else_clause "else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" else (compound_statement "{\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" { (expression_statement "pcVar2 = strrchr(param_2,0x2f);" (assignment_expression "pcVar2 = strrchr(param_2,0x2f)" identifier = (call_expression "strrchr(param_2,0x2f)" identifier (argument_list "(param_2,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "sVar9 = strlen((char *)pbVar6);" (assignment_expression "sVar9 = strlen((char *)pbVar6)" identifier = (call_expression "strlen((char *)pbVar6)" identifier (argument_list "((char *)pbVar6)" ( (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));" (assignment_expression "local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" identifier = (cast_expression "(char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" identifier (argument_list "(pcVar2 + sVar9 + (2 - (int)param_2))" ( (binary_expression "pcVar2 + sVar9 + (2 - (int)param_2)" (binary_expression "pcVar2 + sVar9" identifier + identifier) + (parenthesized_expression "(2 - (int)param_2)" ( (binary_expression "2 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))))) ;) (expression_statement "memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));" (call_expression "memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)))" identifier (argument_list "(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)))" ( identifier , identifier , (cast_expression "(size_t)(pcVar2 + (1 - (int)param_2))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar2 + (1 - (int)param_2))" ( (binary_expression "pcVar2 + (1 - (int)param_2)" identifier + (parenthesized_expression "(1 - (int)param_2)" ( (binary_expression "1 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ))) ;) (expression_statement "memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);" (call_expression "memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1)" identifier (argument_list "(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1)" ( (binary_expression "local_70 + (int)(pcVar2 + (1 - (int)param_2))" identifier + (cast_expression "(int)(pcVar2 + (1 - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar2 + (1 - (int)param_2))" ( (binary_expression "pcVar2 + (1 - (int)param_2)" identifier + (parenthesized_expression "(1 - (int)param_2)" ( (binary_expression "1 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) , identifier , (binary_expression "sVar9 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);" (assignment_expression "iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40)" identifier = (call_expression "glob64(local_70,0,(__errfunc *)0x0,&local_40)" identifier (argument_list "(local_70,0,(__errfunc *)0x0,&local_40)" ( identifier , number_literal , (cast_expression "(__errfunc *)0x0" ( (type_descriptor "__errfunc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" { (if_statement "if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" if (parenthesized_expression "(local_40.gl_pathc == 0)" ( (binary_expression "local_40.gl_pathc == 0" (field_expression "local_40.gl_pathc" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                  globfree64(&local_40);\n                }" { (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" identifier (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) ))) ;) }) (else_clause "else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" else (compound_statement "{\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" { (labeled_statement "LAB_000398e9:\n                  uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) (do_statement "do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);" do (compound_statement "{\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  }" { (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00039520();" (call_expression "FUN_00039520()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(uVar8 < local_40.gl_pathc)" ( (binary_expression "uVar8 < local_40.gl_pathc" identifier < (field_expression "local_40.gl_pathc" identifier . field_identifier)) )) ;) (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" identifier (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) ))) ;) (if_statement "if (local_70 == (char *)0x0) goto LAB_00039955;" if (parenthesized_expression "(local_70 == (char *)0x0)" ( (binary_expression "local_70 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00039955;" goto statement_identifier ;)) }))) })) (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) })))) (labeled_statement "LAB_00039955:\n            pbVar6 = pbVar10 + 2;" statement_identifier : (expression_statement "pbVar6 = pbVar10 + 2;" (assignment_expression "pbVar6 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;)) (if_statement "if (bVar1 == 0) goto LAB_00039790;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039790;" goto statement_identifier ;)) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) })) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (if_statement "if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }" if (parenthesized_expression "(((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb)))" ( (binary_expression "((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))" (parenthesized_expression "((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0)" ( (binary_expression "(bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0" (parenthesized_expression "(bVar4 != 0x3d && bVar4 != 9)" ( (binary_expression "bVar4 != 0x3d && bVar4 != 9" (binary_expression "bVar4 != 0x3d" identifier != number_literal) && (binary_expression "bVar4 != 9" identifier != number_literal)) )) && (binary_expression "(bVar4 & 0xdf) != 0" (parenthesized_expression "(bVar4 & 0xdf)" ( (binary_expression "bVar4 & 0xdf" identifier & number_literal) )) != number_literal)) )) && (parenthesized_expression "(pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))" ( (comma_expression "pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb)" (assignment_expression "pbVar11 = pbVar6" identifier = identifier) , (binary_expression "2 < (byte)(bVar4 - 0xb)" number_literal < (call_expression "(byte)(bVar4 - 0xb)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0xb)" ( (binary_expression "bVar4 - 0xb" identifier - number_literal) ))))) ))) )) (compound_statement "{\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }" { (do_statement "do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));" do (compound_statement "{\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *pbVar11;" (assignment_expression "bVar4 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (if_statement "if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;" if (parenthesized_expression "((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0)" ( (binary_expression "(bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0" (parenthesized_expression "(bVar4 == 9 || bVar4 == 0x3d)" ( (binary_expression "bVar4 == 9 || bVar4 == 0x3d" (binary_expression "bVar4 == 9" identifier == number_literal) || (binary_expression "bVar4 == 0x3d" identifier == number_literal)) )) || (binary_expression "(bVar4 & 0xdf) == 0" (parenthesized_expression "(bVar4 & 0xdf)" ( (binary_expression "bVar4 & 0xdf" identifier & number_literal) )) == number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(2 < (byte)(bVar4 - 0xb))" ( (binary_expression "2 < (byte)(bVar4 - 0xb)" number_literal < (call_expression "(byte)(bVar4 - 0xb)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0xb)" ( (binary_expression "bVar4 - 0xb" identifier - number_literal) )))) )) ;) (do_statement "do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );" do (compound_statement "{\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        }" { (if_statement "if (pbVar11 == pbVar6) break;" if (parenthesized_expression "(pbVar11 == pbVar6)" ( (binary_expression "pbVar11 == pbVar6" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }" if (parenthesized_expression "(pbVar11[-1] != 0x2f)" ( (binary_expression "pbVar11[-1] != 0x2f" (subscript_expression "pbVar11[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }" { (expression_statement "sVar9 = (int)pbVar11 - (int)pbVar6;" (assignment_expression "sVar9 = (int)pbVar11 - (int)pbVar6" identifier = (binary_expression "(int)pbVar11 - (int)pbVar6" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto joined_r0x00039735;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar11 + -1;" (assignment_expression "pbVar11 = pbVar11 + -1" identifier = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (labeled_statement "joined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" statement_identifier : (if_statement "if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }" { (expression_statement "param_1[2] = sVar9 + 0x101;" (assignment_expression "param_1[2] = sVar9 + 0x101" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "sVar9 + 0x101" identifier + number_literal)) ;) (expression_statement "__dest = (void *)xmalloc(sVar9 + 0x101);" (assignment_expression "__dest = (void *)xmalloc(sVar9 + 0x101)" identifier = (cast_expression "(void *)xmalloc(sVar9 + 0x101)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 0x101)" identifier (argument_list "(sVar9 + 0x101)" ( (binary_expression "sVar9 + 0x101" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = (int)__dest;" (assignment_expression "*param_1 = (int)__dest" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" else (compound_statement "{\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" { (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar3 + 1;" (assignment_expression "iVar5 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }" if (parenthesized_expression "((uint)param_1[2] <= iVar5 + sVar9)" ( (binary_expression "(uint)param_1[2] <= iVar5 + sVar9" (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) <= (binary_expression "iVar5 + sVar9" identifier + identifier)) )) (compound_statement "{\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }" { (expression_statement "iVar5 = param_1[2] + 0x100U + sVar9;" (assignment_expression "iVar5 = param_1[2] + 0x100U + sVar9" identifier = (binary_expression "param_1[2] + 0x100U + sVar9" (binary_expression "param_1[2] + 0x100U" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) + identifier)) ;) (expression_statement "param_1[2] = iVar5;" (assignment_expression "param_1[2] = iVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = xrealloc(iVar7,iVar5);" (assignment_expression "iVar7 = xrealloc(iVar7,iVar5)" identifier = (call_expression "xrealloc(iVar7,iVar5)" identifier (argument_list "(iVar7,iVar5)" ( identifier , identifier )))) ;) (expression_statement "*param_1 = iVar7;" (assignment_expression "*param_1 = iVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar3 + 1;" (assignment_expression "iVar5 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) })) (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;" (assignment_expression "*(undefined1 *)(iVar7 + iVar3) = DAT_0013d808" (pointer_expression "*(undefined1 *)(iVar7 + iVar3)" * (cast_expression "(undefined1 *)(iVar7 + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar3)" ( (binary_expression "iVar7 + iVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "__dest = (void *)(param_1[1] + *param_1);" (assignment_expression "__dest = (void *)(param_1[1] + *param_1)" identifier = (cast_expression "(void *)(param_1[1] + *param_1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + *param_1)" ( (binary_expression "param_1[1] + *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (pointer_expression "*param_1" * identifier)) )))) ;) })))) (expression_statement "memcpy(__dest,pbVar6,sVar9);" (call_expression "memcpy(__dest,pbVar6,sVar9)" identifier (argument_list "(__dest,pbVar6,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = param_1[1];" (assignment_expression "iVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = iVar7 + sVar9;" (assignment_expression "param_1[1] = iVar7 + sVar9" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "iVar7 + sVar9" identifier + identifier)) ;) (expression_statement "*(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;" (assignment_expression "*(undefined1 *)(*param_1 + iVar7 + sVar9) = 0" (pointer_expression "*(undefined1 *)(*param_1 + iVar7 + sVar9)" * (cast_expression "(undefined1 *)(*param_1 + iVar7 + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + iVar7 + sVar9)" ( (binary_expression "*param_1 + iVar7 + sVar9" (binary_expression "*param_1 + iVar7" (pointer_expression "*param_1" * identifier) + identifier) + identifier) )))) = number_literal) ;) })) (labeled_statement "LAB_00039790:\n    iVar7 = feof(__stream);" statement_identifier : (expression_statement "iVar7 = feof(__stream);" (assignment_expression "iVar7 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" { (labeled_statement "LAB_000397a7:\n      free(__s);" statement_identifier : (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT - LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (field_expression IDENT . field_identifier)) )) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) && (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) || (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (binary_expression IDENT + IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) )))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + IDENT) + IDENT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "undefined4 __regparm3 FUN_00039520(int *param_1,char *param_2)\n\n{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00039520(int *param_1,char *param_2)" (identifier "FUN_00039520") (parameter_list "(int *param_1,char *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  FILE *__stream;\n  byte *__s;\n  char *pcVar2;\n  int iVar3;\n  void *__dest;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_70;\n  int local_6c;\n  glob64_t local_40;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x39529;\n  __stream = fopen64(param_2,"r");\n  if (__stream == (FILE *)0x0) {\n    return 0;\n  }\n  __s = (byte *)xmalloc(0x100);\n  local_6c = 0x100;\n  pbVar6 = __s;\nLAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "char *local_70;" (primitive_type "char") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "glob64_t local_40;" (type_identifier "glob64_t") (identifier "local_40") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x39529;" (assignment_expression "uStack_14 = 0x39529" (identifier "uStack_14") (= "=") (number_literal "0x39529")) (; ";")) (expression_statement "__stream = fopen64(param_2,"r");" (assignment_expression "__stream = fopen64(param_2,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(param_2,"r")" (identifier "fopen64") (argument_list "(param_2,"r")" (( "(") (identifier "param_2") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (__stream == (FILE *)0x0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(__stream == (FILE *)0x0)" (( "(") (binary_expression "__stream == (FILE *)0x0" (identifier "__stream") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__s = (byte *)xmalloc(0x100);" (assignment_expression "__s = (byte *)xmalloc(0x100)" (identifier "__s") (= "=") (cast_expression "(byte *)xmalloc(0x100)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x100)" (identifier "xmalloc") (argument_list "(0x100)" (( "(") (number_literal "0x100") () ")"))))) (; ";")) (expression_statement "local_6c = 0x100;" (assignment_expression "local_6c = 0x100" (identifier "local_6c") (= "=") (number_literal "0x100")) (; ";")) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" (identifier "pbVar6") (= "=") (identifier "__s")) (; ";")) (labeled_statement "LAB_000395db:\n  do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" (statement_identifier "LAB_000395db") (: ":") (do_statement "do {\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    iVar7 = local_6c - ((int)pbVar6 - (int)__s);\n    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);\n    if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }\n    pcVar2 = strchr((char *)__s,10);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    pcVar2 = strchr((char *)__s,0x23);\n    if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }\n    bVar4 = *__s;\n    uVar8 = bVar4 - 9;\n    bVar1 = (byte)uVar8;\n    pbVar6 = __s;\n    while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }\n    bVar12 = false;\n    bVar13 = bVar4 == 0;\n    if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }\nLAB_00039790:\n    iVar7 = feof(__stream);\n    pbVar6 = __s;\n    if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }\n  }" ({ "{") (expression_statement "iVar7 = local_6c - ((int)pbVar6 - (int)__s);" (assignment_expression "iVar7 = local_6c - ((int)pbVar6 - (int)__s)" (identifier "iVar7") (= "=") (binary_expression "local_6c - ((int)pbVar6 - (int)__s)" (identifier "local_6c") (- "-") (parenthesized_expression "((int)pbVar6 - (int)__s)" (( "(") (binary_expression "(int)pbVar6 - (int)__s" (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")) (- "-") (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s"))) () ")")))) (; ";")) (expression_statement "pcVar2 = fgets((char *)pbVar6,iVar7,__stream);" (assignment_expression "pcVar2 = fgets((char *)pbVar6,iVar7,__stream)" (identifier "pcVar2") (= "=") (call_expression "fgets((char *)pbVar6,iVar7,__stream)" (identifier "fgets") (argument_list "((char *)pbVar6,iVar7,__stream)" (( "(") (cast_expression "(char *)pbVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar6")) (, ",") (identifier "iVar7") (, ",") (identifier "__stream") () ")")))) (; ";")) (if_statement "if (pcVar2 == (char *)0x0) {\n      if (__s == pbVar6) goto LAB_000397a7;\n    }\n    else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" (if "if") (parenthesized_expression "(pcVar2 == (char *)0x0)" (( "(") (binary_expression "pcVar2 == (char *)0x0" (identifier "pcVar2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (__s == pbVar6) goto LAB_000397a7;\n    }" ({ "{") (if_statement "if (__s == pbVar6) goto LAB_000397a7;" (if "if") (parenthesized_expression "(__s == pbVar6)" (( "(") (binary_expression "__s == pbVar6" (identifier "__s") (== "==") (identifier "pbVar6")) () ")")) (goto_statement "goto LAB_000397a7;" (goto "goto") (statement_identifier "LAB_000397a7") (; ";"))) (} "}")) (else_clause "else {\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" (else "else") (compound_statement "{\n      sVar9 = strlen(pcVar2);\n      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }\n    }" ({ "{") (expression_statement "sVar9 = strlen(pcVar2);" (assignment_expression "sVar9 = strlen(pcVar2)" (identifier "sVar9") (= "=") (call_expression "strlen(pcVar2)" (identifier "strlen") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")")))) (; ";")) (if_statement "if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" (if "if") (parenthesized_expression "((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10))" (( "(") (binary_expression "(sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)" (parenthesized_expression "(sVar9 == iVar7 - 1U)" (( "(") (binary_expression "sVar9 == iVar7 - 1U" (identifier "sVar9") (== "==") (binary_expression "iVar7 - 1U" (identifier "iVar7") (- "-") (number_literal "1U"))) () ")")) (&& "&&") (parenthesized_expression "(__s[local_6c + -2] != 10)" (( "(") (binary_expression "__s[local_6c + -2] != 10" (subscript_expression "__s[local_6c + -2]" (identifier "__s") ([ "[") (binary_expression "local_6c + -2" (identifier "local_6c") (+ "+") (number_literal "-2")) (] "]")) (!= "!=") (number_literal "10")) () ")"))) () ")")) (compound_statement "{\n        __s = (byte *)xrealloc(__s,local_6c * 2);\n        pbVar6 = __s + local_6c + -1;\n        local_6c = local_6c * 2;\n        goto LAB_000395db;\n      }" ({ "{") (expression_statement "__s = (byte *)xrealloc(__s,local_6c * 2);" (assignment_expression "__s = (byte *)xrealloc(__s,local_6c * 2)" (identifier "__s") (= "=") (cast_expression "(byte *)xrealloc(__s,local_6c * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(__s,local_6c * 2)" (identifier "xrealloc") (argument_list "(__s,local_6c * 2)" (( "(") (identifier "__s") (, ",") (binary_expression "local_6c * 2" (identifier "local_6c") (* "*") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "pbVar6 = __s + local_6c + -1;" (assignment_expression "pbVar6 = __s + local_6c + -1" (identifier "pbVar6") (= "=") (binary_expression "__s + local_6c + -1" (binary_expression "__s + local_6c" (identifier "__s") (+ "+") (identifier "local_6c")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_6c = local_6c * 2;" (assignment_expression "local_6c = local_6c * 2" (identifier "local_6c") (= "=") (binary_expression "local_6c * 2" (identifier "local_6c") (* "*") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_000395db;" (goto "goto") (statement_identifier "LAB_000395db") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar2 = strchr((char *)__s,10);" (assignment_expression "pcVar2 = strchr((char *)__s,10)" (identifier "pcVar2") (= "=") (call_expression "strchr((char *)__s,10)" (identifier "strchr") (argument_list "((char *)__s,10)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *pcVar2 = '\0';\n    }" ({ "{") (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "pcVar2 = strchr((char *)__s,0x23);" (assignment_expression "pcVar2 = strchr((char *)__s,0x23)" (identifier "pcVar2") (= "=") (call_expression "strchr((char *)__s,0x23)" (identifier "strchr") (argument_list "((char *)__s,0x23)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (number_literal "0x23") () ")")))) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n      *pcVar2 = '\0';\n    }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *pcVar2 = '\0';\n    }" ({ "{") (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "bVar4 = *__s;" (assignment_expression "bVar4 = *__s" (identifier "bVar4") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (expression_statement "uVar8 = bVar4 - 9;" (assignment_expression "uVar8 = bVar4 - 9" (identifier "uVar8") (= "=") (binary_expression "bVar4 - 9" (identifier "bVar4") (- "-") (number_literal "9"))) (; ";")) (expression_statement "bVar1 = (byte)uVar8;" (assignment_expression "bVar1 = (byte)uVar8" (identifier "bVar1") (= "=") (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8"))) (; ";")) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" (identifier "pbVar6") (= "=") (identifier "__s")) (; ";")) (while_statement "while (bVar1 < 0x18) {\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }" (while "while") (parenthesized_expression "(bVar1 < 0x18)" (( "(") (binary_expression "bVar1 < 0x18" (identifier "bVar1") (< "<") (number_literal "0x18")) () ")")) (compound_statement "{\n      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;\n      bVar13 = bVar1 == 0x17;\n      if (!bVar12) goto LAB_0003968a;\n      pbVar6 = pbVar6 + 1;\n      bVar4 = *pbVar6;\n      uVar8 = bVar4 - 9;\n      bVar1 = (byte)uVar8;\n    }" ({ "{") (expression_statement "bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;" (assignment_expression "bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0" (identifier "bVar12") (= "=") (binary_expression "(0x80001dU >> (uVar8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x80001dU >> (uVar8 & 0x1f) & 1)" (( "(") (binary_expression "0x80001dU >> (uVar8 & 0x1f) & 1" (binary_expression "0x80001dU >> (uVar8 & 0x1f)" (number_literal "0x80001dU") (>> ">>") (parenthesized_expression "(uVar8 & 0x1f)" (( "(") (binary_expression "uVar8 & 0x1f" (identifier "uVar8") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "bVar13 = bVar1 == 0x17;" (assignment_expression "bVar13 = bVar1 == 0x17" (identifier "bVar13") (= "=") (binary_expression "bVar1 == 0x17" (identifier "bVar1") (== "==") (number_literal "0x17"))) (; ";")) (if_statement "if (!bVar12) goto LAB_0003968a;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_0003968a;" (goto "goto") (statement_identifier "LAB_0003968a") (; ";"))) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" (identifier "bVar4") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (expression_statement "uVar8 = bVar4 - 9;" (assignment_expression "uVar8 = bVar4 - 9" (identifier "uVar8") (= "=") (binary_expression "bVar4 - 9" (identifier "bVar4") (- "-") (number_literal "9"))) (; ";")) (expression_statement "bVar1 = (byte)uVar8;" (assignment_expression "bVar1 = (byte)uVar8" (identifier "bVar1") (= "=") (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8"))) (; ";")) (} "}"))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = bVar4 == 0;" (assignment_expression "bVar13 = bVar4 == 0" (identifier "bVar13") (= "=") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar13) {\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\nLAB_0003968a:\n      iVar7 = 7;\n      pbVar11 = pbVar6;\n      pbVar10 = (byte *)"include";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }\n      bVar4 = *pbVar6;\n      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }\n      sVar9 = 0;\n      iVar7 = *param_1;\njoined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }\n      memcpy(__dest,pbVar6,sVar9);\n      iVar7 = param_1[1];\n      param_1[1] = iVar7 + sVar9;\n      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;\n    }" ({ "{") (labeled_statement "LAB_0003968a:\n      iVar7 = 7;" (statement_identifier "LAB_0003968a") (: ":") (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" (identifier "iVar7") (= "=") (number_literal "7")) (; ";"))) (expression_statement "pbVar11 = pbVar6;" (assignment_expression "pbVar11 = pbVar6" (identifier "pbVar11") (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "pbVar10 = (byte *)"include";" (assignment_expression "pbVar10 = (byte *)"include"" (identifier "pbVar10") (= "=") (cast_expression "(byte *)"include"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""include"" (" """) (string_content "include") (" """)))) (; ";")) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" (do "do") (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar12 = *pbVar11 < *pbVar10;\n        bVar13 = *pbVar11 == *pbVar10;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar11 < *pbVar10;" (assignment_expression "bVar12 = *pbVar11 < *pbVar10" (identifier "bVar12") (= "=") (binary_expression "*pbVar11 < *pbVar10" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "bVar13 = *pbVar11 == *pbVar10;" (assignment_expression "bVar13 = *pbVar11 == *pbVar10" (identifier "bVar13") (= "=") (binary_expression "*pbVar11 == *pbVar10" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9))))" (( "(") (binary_expression "((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))" (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" (( "(") (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar12")) () ")")) (&& "&&") (parenthesized_expression "((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))" (( "(") (parenthesized_expression "(pbVar6[7] == 0x20 || (pbVar6[7] == 9))" (( "(") (binary_expression "pbVar6[7] == 0x20 || (pbVar6[7] == 9)" (binary_expression "pbVar6[7] == 0x20" (subscript_expression "pbVar6[7]" (identifier "pbVar6") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "0x20")) (|| "||") (parenthesized_expression "(pbVar6[7] == 9)" (( "(") (binary_expression "pbVar6[7] == 9" (subscript_expression "pbVar6[7]" (identifier "pbVar6") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "9")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        pbVar6 = pbVar6 + 8;\n        do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );\n      }" ({ "{") (expression_statement "pbVar6 = pbVar6 + 8;" (assignment_expression "pbVar6 = pbVar6 + 8" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 8" (identifier "pbVar6") (+ "+") (number_literal "8"))) (; ";")) (do_statement "do {\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        } while( true );" (do "do") (compound_statement "{\n          bVar4 = *pbVar6;\n          while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }\n          pbVar6 = pbVar6 + 1;\n        }" ({ "{") (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" (identifier "bVar4") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (while_statement "while ((bVar4 != 0x20 && (bVar4 != 9))) {\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }" (while "while") (parenthesized_expression "((bVar4 != 0x20 && (bVar4 != 9)))" (( "(") (parenthesized_expression "(bVar4 != 0x20 && (bVar4 != 9))" (( "(") (binary_expression "bVar4 != 0x20 && (bVar4 != 9)" (binary_expression "bVar4 != 0x20" (identifier "bVar4") (!= "!=") (number_literal "0x20")) (&& "&&") (parenthesized_expression "(bVar4 != 9)" (( "(") (binary_expression "bVar4 != 9" (identifier "bVar4") (!= "!=") (number_literal "9")) () ")"))) () ")")) () ")")) (compound_statement "{\n            pbVar11 = pbVar6;\n            if (bVar4 == 0) goto LAB_00039790;\n            do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);\n            if (bVar4 == 0) goto LAB_00039790;\nLAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }\nLAB_00039955:\n            pbVar6 = pbVar10 + 2;\n            if (bVar1 == 0) goto LAB_00039790;\n            bVar4 = *pbVar6;\n          }" ({ "{") (expression_statement "pbVar11 = pbVar6;" (assignment_expression "pbVar11 = pbVar6" (identifier "pbVar11") (= "=") (identifier "pbVar6")) (; ";")) (if_statement "if (bVar4 == 0) goto LAB_00039790;" (if "if") (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00039790;" (goto "goto") (statement_identifier "LAB_00039790") (; ";"))) (do_statement "do {\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            } while (bVar1 != 0);" (do "do") (compound_statement "{\n              pbVar10 = pbVar11;\n              bVar1 = pbVar10[1];\n              if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }\n              pbVar11 = pbVar10 + 1;\n            }" ({ "{") (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" (identifier "pbVar10") (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "bVar1 = pbVar10[1];" (assignment_expression "bVar1 = pbVar10[1]" (identifier "bVar1") (= "=") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((bVar1 == 0x20) || (bVar1 == 9)) {\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" (if "if") (parenthesized_expression "((bVar1 == 0x20) || (bVar1 == 9))" (( "(") (binary_expression "(bVar1 == 0x20) || (bVar1 == 9)" (parenthesized_expression "(bVar1 == 0x20)" (( "(") (binary_expression "bVar1 == 0x20" (identifier "bVar1") (== "==") (number_literal "0x20")) () ")")) (|| "||") (parenthesized_expression "(bVar1 == 9)" (( "(") (binary_expression "bVar1 == 9" (identifier "bVar1") (== "==") (number_literal "9")) () ")"))) () ")")) (compound_statement "{\n                pbVar10[1] = 0;\n                bVar4 = *pbVar6;\n                if (bVar4 == 0) goto LAB_00039955;\n                goto LAB_0003985a;\n              }" ({ "{") (expression_statement "pbVar10[1] = 0;" (assignment_expression "pbVar10[1] = 0" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" (identifier "bVar4") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (if_statement "if (bVar4 == 0) goto LAB_00039955;" (if "if") (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00039955;" (goto "goto") (statement_identifier "LAB_00039955") (; ";"))) (goto_statement "goto LAB_0003985a;" (goto "goto") (statement_identifier "LAB_0003985a") (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (bVar4 == 0) goto LAB_00039790;" (if "if") (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00039790;" (goto "goto") (statement_identifier "LAB_00039790") (; ";"))) (labeled_statement "LAB_0003985a:\n            if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" (statement_identifier "LAB_0003985a") (: ":") (if_statement "if (bVar4 == 0x2f) {\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }\n            else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" (if "if") (parenthesized_expression "(bVar4 == 0x2f)" (( "(") (binary_expression "bVar4 == 0x2f" (identifier "bVar4") (== "==") (number_literal "0x2f")) () ")")) (compound_statement "{\n              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }\n            }" ({ "{") (expression_statement "iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);" (assignment_expression "iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" (identifier "iVar7") (= "=") (call_expression "glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" (identifier "glob64") (argument_list "((char *)pbVar6,0,(__errfunc *)0x0,&local_40)" (( "(") (cast_expression "(char *)pbVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar6")) (, ",") (number_literal "0") (, ",") (cast_expression "(__errfunc *)0x0" (( "(") (type_descriptor "__errfunc *" (type_identifier "__errfunc") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_70 = (char *)0x0;\n                if (local_40.gl_pathc != 0) goto LAB_000398e9;\n                globfree64(&local_40);\n              }" ({ "{") (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" (identifier "local_70") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_40.gl_pathc != 0) goto LAB_000398e9;" (if "if") (parenthesized_expression "(local_40.gl_pathc != 0)" (( "(") (binary_expression "local_40.gl_pathc != 0" (field_expression "local_40.gl_pathc" (identifier "local_40") (. ".") (field_identifier "gl_pathc")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000398e9;" (goto "goto") (statement_identifier "LAB_000398e9") (; ";"))) (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" (identifier "globfree64") (argument_list "(&local_40)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" (else "else") (compound_statement "{\n              pcVar2 = strrchr(param_2,0x2f);\n              sVar9 = strlen((char *)pbVar6);\n              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));\n              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));\n              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);\n              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);\n              if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }\n              free(local_70);\n            }" ({ "{") (expression_statement "pcVar2 = strrchr(param_2,0x2f);" (assignment_expression "pcVar2 = strrchr(param_2,0x2f)" (identifier "pcVar2") (= "=") (call_expression "strrchr(param_2,0x2f)" (identifier "strrchr") (argument_list "(param_2,0x2f)" (( "(") (identifier "param_2") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "sVar9 = strlen((char *)pbVar6);" (assignment_expression "sVar9 = strlen((char *)pbVar6)" (identifier "sVar9") (= "=") (call_expression "strlen((char *)pbVar6)" (identifier "strlen") (argument_list "((char *)pbVar6)" (( "(") (cast_expression "(char *)pbVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar6")) () ")")))) (; ";")) (expression_statement "local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));" (assignment_expression "local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" (identifier "local_70") (= "=") (cast_expression "(char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(pcVar2 + sVar9 + (2 - (int)param_2))" (identifier "xmalloc") (argument_list "(pcVar2 + sVar9 + (2 - (int)param_2))" (( "(") (binary_expression "pcVar2 + sVar9 + (2 - (int)param_2)" (binary_expression "pcVar2 + sVar9" (identifier "pcVar2") (+ "+") (identifier "sVar9")) (+ "+") (parenthesized_expression "(2 - (int)param_2)" (( "(") (binary_expression "2 - (int)param_2" (number_literal "2") (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")"))) () ")"))))) (; ";")) (expression_statement "memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));" (call_expression "memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)))" (identifier "memcpy") (argument_list "(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)))" (( "(") (identifier "local_70") (, ",") (identifier "param_2") (, ",") (cast_expression "(size_t)(pcVar2 + (1 - (int)param_2))" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (parenthesized_expression "(pcVar2 + (1 - (int)param_2))" (( "(") (binary_expression "pcVar2 + (1 - (int)param_2)" (identifier "pcVar2") (+ "+") (parenthesized_expression "(1 - (int)param_2)" (( "(") (binary_expression "1 - (int)param_2" (number_literal "1") (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")"))) () ")"))) () ")"))) (; ";")) (expression_statement "memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);" (call_expression "memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1)" (identifier "memcpy") (argument_list "(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1)" (( "(") (binary_expression "local_70 + (int)(pcVar2 + (1 - (int)param_2))" (identifier "local_70") (+ "+") (cast_expression "(int)(pcVar2 + (1 - (int)param_2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar2 + (1 - (int)param_2))" (( "(") (binary_expression "pcVar2 + (1 - (int)param_2)" (identifier "pcVar2") (+ "+") (parenthesized_expression "(1 - (int)param_2)" (( "(") (binary_expression "1 - (int)param_2" (number_literal "1") (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")"))) () ")")))) (, ",") (identifier "pbVar6") (, ",") (binary_expression "sVar9 + 1" (identifier "sVar9") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);" (assignment_expression "iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40)" (identifier "iVar7") (= "=") (call_expression "glob64(local_70,0,(__errfunc *)0x0,&local_40)" (identifier "glob64") (argument_list "(local_70,0,(__errfunc *)0x0,&local_40)" (( "(") (identifier "local_70") (, ",") (number_literal "0") (, ",") (cast_expression "(__errfunc *)0x0" (( "(") (type_descriptor "__errfunc *" (type_identifier "__errfunc") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }\n              }" ({ "{") (if_statement "if (local_40.gl_pathc == 0) {\n                  globfree64(&local_40);\n                }\n                else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" (if "if") (parenthesized_expression "(local_40.gl_pathc == 0)" (( "(") (binary_expression "local_40.gl_pathc == 0" (field_expression "local_40.gl_pathc" (identifier "local_40") (. ".") (field_identifier "gl_pathc")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  globfree64(&local_40);\n                }" ({ "{") (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" (identifier "globfree64") (argument_list "(&local_40)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" (else "else") (compound_statement "{\nLAB_000398e9:\n                  uVar8 = 0;\n                  do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);\n                  globfree64(&local_40);\n                  if (local_70 == (char *)0x0) goto LAB_00039955;\n                }" ({ "{") (labeled_statement "LAB_000398e9:\n                  uVar8 = 0;" (statement_identifier "LAB_000398e9") (: ":") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  } while (uVar8 < local_40.gl_pathc);" (do "do") (compound_statement "{\n                    uVar8 = uVar8 + 1;\n                    FUN_00039520();\n                  }" ({ "{") (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00039520();" (call_expression "FUN_00039520()" (identifier "FUN_00039520") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 < local_40.gl_pathc)" (( "(") (binary_expression "uVar8 < local_40.gl_pathc" (identifier "uVar8") (< "<") (field_expression "local_40.gl_pathc" (identifier "local_40") (. ".") (field_identifier "gl_pathc"))) () ")")) (; ";")) (expression_statement "globfree64(&local_40);" (call_expression "globfree64(&local_40)" (identifier "globfree64") (argument_list "(&local_40)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (if_statement "if (local_70 == (char *)0x0) goto LAB_00039955;" (if "if") (parenthesized_expression "(local_70 == (char *)0x0)" (( "(") (binary_expression "local_70 == (char *)0x0" (identifier "local_70") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00039955;" (goto "goto") (statement_identifier "LAB_00039955") (; ";"))) (} "}")))) (} "}"))) (expression_statement "free(local_70);" (call_expression "free(local_70)" (identifier "free") (argument_list "(local_70)" (( "(") (identifier "local_70") () ")"))) (; ";")) (} "}"))))) (labeled_statement "LAB_00039955:\n            pbVar6 = pbVar10 + 2;" (statement_identifier "LAB_00039955") (: ":") (expression_statement "pbVar6 = pbVar10 + 2;" (assignment_expression "pbVar6 = pbVar10 + 2" (identifier "pbVar6") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";"))) (if_statement "if (bVar1 == 0) goto LAB_00039790;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00039790;" (goto "goto") (statement_identifier "LAB_00039790") (; ";"))) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" (identifier "bVar4") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (} "}"))) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" (identifier "bVar4") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (if_statement "if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb)))" (( "(") (binary_expression "((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&\n         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))" (parenthesized_expression "((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0)" (( "(") (binary_expression "(bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0" (parenthesized_expression "(bVar4 != 0x3d && bVar4 != 9)" (( "(") (binary_expression "bVar4 != 0x3d && bVar4 != 9" (binary_expression "bVar4 != 0x3d" (identifier "bVar4") (!= "!=") (number_literal "0x3d")) (&& "&&") (binary_expression "bVar4 != 9" (identifier "bVar4") (!= "!=") (number_literal "9"))) () ")")) (&& "&&") (binary_expression "(bVar4 & 0xdf) != 0" (parenthesized_expression "(bVar4 & 0xdf)" (( "(") (binary_expression "bVar4 & 0xdf" (identifier "bVar4") (& "&") (number_literal "0xdf")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))" (( "(") (comma_expression "pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb)" (assignment_expression "pbVar11 = pbVar6" (identifier "pbVar11") (= "=") (identifier "pbVar6")) (, ",") (binary_expression "2 < (byte)(bVar4 - 0xb)" (number_literal "2") (< "<") (call_expression "(byte)(bVar4 - 0xb)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar4 - 0xb)" (( "(") (binary_expression "bVar4 - 0xb" (identifier "bVar4") (- "-") (number_literal "0xb")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n        do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));\n        do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        } while (2 < (byte)(bVar4 - 0xb));" (do "do") (compound_statement "{\n          pbVar11 = pbVar11 + 1;\n          bVar4 = *pbVar11;\n          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;\n        }" ({ "{") (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar4 = *pbVar11;" (assignment_expression "bVar4 = *pbVar11" (identifier "bVar4") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (if_statement "if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;" (if "if") (parenthesized_expression "((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0)" (( "(") (binary_expression "(bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0" (parenthesized_expression "(bVar4 == 9 || bVar4 == 0x3d)" (( "(") (binary_expression "bVar4 == 9 || bVar4 == 0x3d" (binary_expression "bVar4 == 9" (identifier "bVar4") (== "==") (number_literal "9")) (|| "||") (binary_expression "bVar4 == 0x3d" (identifier "bVar4") (== "==") (number_literal "0x3d"))) () ")")) (|| "||") (binary_expression "(bVar4 & 0xdf) == 0" (parenthesized_expression "(bVar4 & 0xdf)" (( "(") (binary_expression "bVar4 & 0xdf" (identifier "bVar4") (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(2 < (byte)(bVar4 - 0xb))" (( "(") (binary_expression "2 < (byte)(bVar4 - 0xb)" (number_literal "2") (< "<") (call_expression "(byte)(bVar4 - 0xb)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar4 - 0xb)" (( "(") (binary_expression "bVar4 - 0xb" (identifier "bVar4") (- "-") (number_literal "0xb")) () ")")))) () ")")) (; ";")) (do_statement "do {\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        } while( true );" (do "do") (compound_statement "{\n          if (pbVar11 == pbVar6) break;\n          if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }\n          pbVar11 = pbVar11 + -1;\n        }" ({ "{") (if_statement "if (pbVar11 == pbVar6) break;" (if "if") (parenthesized_expression "(pbVar11 == pbVar6)" (( "(") (binary_expression "pbVar11 == pbVar6" (identifier "pbVar11") (== "==") (identifier "pbVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (pbVar11[-1] != 0x2f) {\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }" (if "if") (parenthesized_expression "(pbVar11[-1] != 0x2f)" (( "(") (binary_expression "pbVar11[-1] != 0x2f" (subscript_expression "pbVar11[-1]" (identifier "pbVar11") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "0x2f")) () ")")) (compound_statement "{\n            sVar9 = (int)pbVar11 - (int)pbVar6;\n            iVar7 = *param_1;\n            goto joined_r0x00039735;\n          }" ({ "{") (expression_statement "sVar9 = (int)pbVar11 - (int)pbVar6;" (assignment_expression "sVar9 = (int)pbVar11 - (int)pbVar6" (identifier "sVar9") (= "=") (binary_expression "(int)pbVar11 - (int)pbVar6" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (- "-") (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")))) (; ";")) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" (identifier "iVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (goto_statement "goto joined_r0x00039735;" (goto "goto") (statement_identifier "joined_r0x00039735") (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar11 + -1;" (assignment_expression "pbVar11 = pbVar11 + -1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + -1" (identifier "pbVar11") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" (identifier "sVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" (identifier "iVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (labeled_statement "joined_r0x00039735:\n      if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" (statement_identifier "joined_r0x00039735") (: ":") (if_statement "if (iVar7 == 0) {\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }\n      else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[2] = sVar9 + 0x101;\n        __dest = (void *)xmalloc(sVar9 + 0x101);\n        param_1[1] = 0;\n        *param_1 = (int)__dest;\n      }" ({ "{") (expression_statement "param_1[2] = sVar9 + 0x101;" (assignment_expression "param_1[2] = sVar9 + 0x101" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "sVar9 + 0x101" (identifier "sVar9") (+ "+") (number_literal "0x101"))) (; ";")) (expression_statement "__dest = (void *)xmalloc(sVar9 + 0x101);" (assignment_expression "__dest = (void *)xmalloc(sVar9 + 0x101)" (identifier "__dest") (= "=") (cast_expression "(void *)xmalloc(sVar9 + 0x101)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar9 + 0x101)" (identifier "xmalloc") (argument_list "(sVar9 + 0x101)" (( "(") (binary_expression "sVar9 + 0x101" (identifier "sVar9") (+ "+") (number_literal "0x101")) () ")"))))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = (int)__dest;" (assignment_expression "*param_1 = (int)__dest" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest"))) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" (else "else") (compound_statement "{\n        iVar3 = param_1[1];\n        iVar5 = iVar3 + 1;\n        if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }\n        param_1[1] = iVar5;\n        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;\n        __dest = (void *)(param_1[1] + *param_1);\n      }" ({ "{") (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" (identifier "iVar3") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar5 = iVar3 + 1;" (assignment_expression "iVar5 = iVar3 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uint)param_1[2] <= iVar5 + sVar9) {\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }" (if "if") (parenthesized_expression "((uint)param_1[2] <= iVar5 + sVar9)" (( "(") (binary_expression "(uint)param_1[2] <= iVar5 + sVar9" (cast_expression "(uint)param_1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (<= "<=") (binary_expression "iVar5 + sVar9" (identifier "iVar5") (+ "+") (identifier "sVar9"))) () ")")) (compound_statement "{\n          iVar5 = param_1[2] + 0x100U + sVar9;\n          param_1[2] = iVar5;\n          iVar7 = xrealloc(iVar7,iVar5);\n          *param_1 = iVar7;\n          iVar3 = param_1[1];\n          iVar5 = iVar3 + 1;\n        }" ({ "{") (expression_statement "iVar5 = param_1[2] + 0x100U + sVar9;" (assignment_expression "iVar5 = param_1[2] + 0x100U + sVar9" (identifier "iVar5") (= "=") (binary_expression "param_1[2] + 0x100U + sVar9" (binary_expression "param_1[2] + 0x100U" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x100U")) (+ "+") (identifier "sVar9"))) (; ";")) (expression_statement "param_1[2] = iVar5;" (assignment_expression "param_1[2] = iVar5" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar7 = xrealloc(iVar7,iVar5);" (assignment_expression "iVar7 = xrealloc(iVar7,iVar5)" (identifier "iVar7") (= "=") (call_expression "xrealloc(iVar7,iVar5)" (identifier "xrealloc") (argument_list "(iVar7,iVar5)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "*param_1 = iVar7;" (assignment_expression "*param_1 = iVar7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" (identifier "iVar3") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar5 = iVar3 + 1;" (assignment_expression "iVar5 = iVar3 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;" (assignment_expression "*(undefined1 *)(iVar7 + iVar3) = DAT_0013d808" (pointer_expression "*(undefined1 *)(iVar7 + iVar3)" (* "*") (cast_expression "(undefined1 *)(iVar7 + iVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar3)" (( "(") (binary_expression "iVar7 + iVar3" (identifier "iVar7") (+ "+") (identifier "iVar3")) () ")")))) (= "=") (identifier "DAT_0013d808")) (; ";")) (expression_statement "__dest = (void *)(param_1[1] + *param_1);" (assignment_expression "__dest = (void *)(param_1[1] + *param_1)" (identifier "__dest") (= "=") (cast_expression "(void *)(param_1[1] + *param_1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + *param_1)" (( "(") (binary_expression "param_1[1] + *param_1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (; ";")) (} "}"))))) (expression_statement "memcpy(__dest,pbVar6,sVar9);" (call_expression "memcpy(__dest,pbVar6,sVar9)" (identifier "memcpy") (argument_list "(__dest,pbVar6,sVar9)" (( "(") (identifier "__dest") (, ",") (identifier "pbVar6") (, ",") (identifier "sVar9") () ")"))) (; ";")) (expression_statement "iVar7 = param_1[1];" (assignment_expression "iVar7 = param_1[1]" (identifier "iVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[1] = iVar7 + sVar9;" (assignment_expression "param_1[1] = iVar7 + sVar9" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "iVar7 + sVar9" (identifier "iVar7") (+ "+") (identifier "sVar9"))) (; ";")) (expression_statement "*(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;" (assignment_expression "*(undefined1 *)(*param_1 + iVar7 + sVar9) = 0" (pointer_expression "*(undefined1 *)(*param_1 + iVar7 + sVar9)" (* "*") (cast_expression "(undefined1 *)(*param_1 + iVar7 + sVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + iVar7 + sVar9)" (( "(") (binary_expression "*param_1 + iVar7 + sVar9" (binary_expression "*param_1 + iVar7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "iVar7")) (+ "+") (identifier "sVar9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_00039790:\n    iVar7 = feof(__stream);" (statement_identifier "LAB_00039790") (: ":") (expression_statement "iVar7 = feof(__stream);" (assignment_expression "iVar7 = feof(__stream)" (identifier "iVar7") (= "=") (call_expression "feof(__stream)" (identifier "feof") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";"))) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" (identifier "pbVar6") (= "=") (identifier "__s")) (; ";")) (if_statement "if (iVar7 != 0) {\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000397a7:\n      free(__s);\n      fclose(__stream);\n      return 1;\n    }" ({ "{") (labeled_statement "LAB_000397a7:\n      free(__s);" (statement_identifier "LAB_000397a7") (: ":") (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";"))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

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

type_1 __regparm3
function_1(type_2 *info,char *filename)

{
  char **ppcVar1;
  type_3 var_15;
  type_4 *var_2;
  type_3 *var_7;
  char *var_6;
  size_t var_26;
  size_t var_27;
  type_3 var_14;
  type_3 *var_8;
  int var_11;
  type_5 var_16;
  size_t var_10;
  type_3 *var_18;
  type_3 *var_17;
  bool var_19;
  bool bVar14;
  type_3 bVar15;
  char *var_24;
  int var_4;
  type_6 gl;
  
  bVar15 = 0;
  var_2 = var_1(filename,"r");
  if (var_2 == (type_4 *)0x0) {
    return 0;
  }
  var_7 = (type_3 *)var_3(0x100);
  var_4 = 0x100;
  var_8 = var_7;
LAB_000395db:
  do {
    var_11 = var_4 - ((int)var_8 - (int)var_7);
    var_6 = var_5((char *)var_8,var_11,var_2);
    if (var_6 == (char *)0x0) {
      if (var_7 == var_8) goto LAB_000397a7;
    }
    else {
      var_10 = var_9(var_6);
      if ((var_10 == var_11 - 1U) && (var_7[var_4 + -2] != 10)) {
        var_7 = (type_3 *)var_12(var_7,var_4 * 2);
        var_8 = var_7 + var_4 + -1;
        var_4 = var_4 * 2;
        goto LAB_000395db;
      }
    }
    var_6 = var_13((char *)var_7,10);
    if (var_6 != (char *)0x0) {
      *var_6 = '\0';
    }
    var_6 = var_13((char *)var_7,0x23);
    if (var_6 != (char *)0x0) {
      *var_6 = '\0';
    }
    var_14 = *var_7;
    var_16 = var_14 - 9;
    var_15 = (type_3)var_16;
    var_8 = var_7;
    while (var_15 < 0x18) {
      var_19 = (0x80001dU >> (var_16 & 0x1f) & 1) != 0;
      bVar14 = var_15 == 0x17;
      if (!var_19) goto LAB_0003968a;
      var_8 = var_8 + 1;
      var_14 = *var_8;
      var_16 = var_14 - 9;
      var_15 = (type_3)var_16;
    }
    var_19 = false;
    bVar14 = var_14 == 0;
    if (!bVar14) {
LAB_0003968a:
      var_11 = 7;
      var_17 = var_8;
      var_18 = (type_3 *)"include";
      do {
        if (var_11 == 0) break;
        var_11 = var_11 + -1;
        var_19 = *var_17 < *var_18;
        bVar14 = *var_17 == *var_18;
        var_17 = var_17 + (type_5)bVar15 * -2 + 1;
        var_18 = var_18 + (type_5)bVar15 * -2 + 1;
      } while (bVar14);
      if (((!var_19 && !bVar14) == var_19) && ((var_8[7] == 0x20 || (var_8[7] == 9)))) {
        var_8 = var_8 + 8;
        do {
          var_14 = *var_8;
          while ((var_14 != 0x20 && (var_14 != 9))) {
            var_17 = var_8;
            if (var_14 == 0) goto LAB_00039790;
            do {
              var_18 = var_17;
              var_15 = var_18[1];
              if ((var_15 == 0x20) || (var_15 == 9)) {
                var_18[1] = 0;
                var_14 = *var_8;
                if (var_14 == 0) goto LAB_00039955;
                goto LAB_0003985a;
              }
              var_17 = var_18 + 1;
            } while (var_15 != 0);
            if (var_14 == 0) goto LAB_00039790;
LAB_0003985a:
            if (var_14 == 0x2f) {
              var_11 = var_20((char *)var_8,0,(type_7 *)0x0,(type_8 *)&gl);
              if (var_11 == 0) {
                var_24 = (char *)0x0;
                if (gl.gl_pathc != 0) goto LAB_000398e9;
                var_21((type_8 *)&gl);
              }
            }
            else {
              var_6 = var_22(filename,0x2f);
              var_10 = var_9((char *)var_8);
              var_24 = (char *)var_3(var_6 + var_10 + (2 - (int)filename));
              var_23(var_24,filename,(size_t)(var_6 + (1 - (int)filename)));
              var_23(var_24 + (int)(var_6 + (1 - (int)filename)),var_8,var_10 + 1);
              var_11 = var_20(var_24,0,(type_7 *)0x0,(type_8 *)&gl);
              if (var_11 == 0) {
                if (gl.gl_pathc == 0) {
                  var_21((type_8 *)&gl);
                }
                else {
LAB_000398e9:
                  var_16 = 0;
                  do {
                    ppcVar1 = gl.gl_pathv + var_16;
                    var_16 = var_16 + 1;
                    function_1(info,*ppcVar1);
                  } while (var_16 < gl.gl_pathc);
                  var_21((type_8 *)&gl);
                  if (var_24 == (char *)0x0) goto LAB_00039955;
                }
              }
              var_25(var_24);
            }
LAB_00039955:
            var_8 = var_18 + 2;
            if (var_15 == 0) goto LAB_00039790;
            var_14 = *var_8;
          }
          var_8 = var_8 + 1;
        } while( true );
      }
      var_14 = *var_8;
      if (((var_14 != 0x3d && var_14 != 9) && (var_14 & 0xdf) != 0) &&
         (var_17 = var_8, 2 < (type_3)(var_14 - 0xb))) {
        do {
          var_17 = var_17 + 1;
          var_14 = *var_17;
          if ((var_14 == 9 || var_14 == 0x3d) || (var_14 & 0xdf) == 0) break;
        } while (2 < (type_3)(var_14 - 0xb));
        do {
          if (var_17 == var_8) break;
          if (var_17[-1] != 0x2f) {
            var_10 = (int)var_17 - (int)var_8;
            var_6 = info->path;
            goto joined_r0x00039735;
          }
          var_17 = var_17 + -1;
        } while( true );
      }
      var_10 = 0;
      var_6 = info->path;
joined_r0x00039735:
      if (var_6 == (char *)0x0) {
        info->alloc = var_10 + 0x101;
        var_6 = (char *)var_3(var_10 + 0x101);
        info->len = 0;
        info->path = var_6;
      }
      else {
        var_26 = info->len;
        var_27 = var_26 + 1;
        if (info->alloc <= var_27 + var_10) {
          var_27 = info->alloc + 0x100 + var_10;
          info->alloc = var_27;
          var_6 = (char *)var_12(var_6,var_27);
          info->path = var_6;
          var_26 = info->len;
          var_27 = var_26 + 1;
        }
        info->len = var_27;
        var_6[var_26] = config.rpath_separator;
        var_6 = info->path + info->len;
      }
      var_23(var_6,var_8,var_10);
      var_27 = info->len + var_10;
      info->len = var_27;
      info->path[var_27] = '\0';
    }
LAB_00039790:
    var_11 = var_28(var_2);
    var_8 = var_7;
    if (var_11 != 0) {
LAB_000397a7:
      var_25(var_7);
      var_29(var_2);
      return 1;
    }
  } while( true );
}


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

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

undefined4 __regparm3 MASKED(int *param_1,char *param_2)

{
  byte bVar1;
  FILE *__stream;
  byte *__s;
  char *pcVar2;
  int iVar3;
  void *__dest;
  byte bVar4;
  int iVar5;
  byte *pbVar6;
  int iVar7;
  uint uVar8;
  size_t sVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  char *local_70;
  int local_6c;
  glob64_t local_40;
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x39529;
  __stream = fopen64(param_2,"r");
  if (__stream == (FILE *)0x0) {
    return 0;
  }
  __s = (byte *)xmalloc(0x100);
  local_6c = 0x100;
  pbVar6 = __s;
LAB_000395db:
  do {
    iVar7 = local_6c - ((int)pbVar6 - (int)__s);
    pcVar2 = fgets((char *)pbVar6,iVar7,__stream);
    if (pcVar2 == (char *)0x0) {
      if (__s == pbVar6) goto LAB_000397a7;
    }
    else {
      sVar9 = strlen(pcVar2);
      if ((sVar9 == iVar7 - 1U) && (__s[local_6c + -2] != 10)) {
        __s = (byte *)xrealloc(__s,local_6c * 2);
        pbVar6 = __s + local_6c + -1;
        local_6c = local_6c * 2;
        goto LAB_000395db;
      }
    }
    pcVar2 = strchr((char *)__s,10);
    if (pcVar2 != (char *)0x0) {
      *pcVar2 = '\0';
    }
    pcVar2 = strchr((char *)__s,0x23);
    if (pcVar2 != (char *)0x0) {
      *pcVar2 = '\0';
    }
    bVar4 = *__s;
    uVar8 = bVar4 - 9;
    bVar1 = (byte)uVar8;
    pbVar6 = __s;
    while (bVar1 < 0x18) {
      bVar12 = (0x80001dU >> (uVar8 & 0x1f) & 1) != 0;
      bVar13 = bVar1 == 0x17;
      if (!bVar12) goto LAB_0003968a;
      pbVar6 = pbVar6 + 1;
      bVar4 = *pbVar6;
      uVar8 = bVar4 - 9;
      bVar1 = (byte)uVar8;
    }
    bVar12 = false;
    bVar13 = bVar4 == 0;
    if (!bVar13) {
LAB_0003968a:
      iVar7 = 7;
      pbVar11 = pbVar6;
      pbVar10 = (byte *)"include";
      do {
        if (iVar7 == 0) break;
        iVar7 = iVar7 + -1;
        bVar12 = *pbVar11 < *pbVar10;
        bVar13 = *pbVar11 == *pbVar10;
        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
      } while (bVar13);
      if (((!bVar12 && !bVar13) == bVar12) && ((pbVar6[7] == 0x20 || (pbVar6[7] == 9)))) {
        pbVar6 = pbVar6 + 8;
        do {
          bVar4 = *pbVar6;
          while ((bVar4 != 0x20 && (bVar4 != 9))) {
            pbVar11 = pbVar6;
            if (bVar4 == 0) goto LAB_00039790;
            do {
              pbVar10 = pbVar11;
              bVar1 = pbVar10[1];
              if ((bVar1 == 0x20) || (bVar1 == 9)) {
                pbVar10[1] = 0;
                bVar4 = *pbVar6;
                if (bVar4 == 0) goto LAB_00039955;
                goto LAB_0003985a;
              }
              pbVar11 = pbVar10 + 1;
            } while (bVar1 != 0);
            if (bVar4 == 0) goto LAB_00039790;
LAB_0003985a:
            if (bVar4 == 0x2f) {
              iVar7 = glob64((char *)pbVar6,0,(__errfunc *)0x0,&local_40);
              if (iVar7 == 0) {
                local_70 = (char *)0x0;
                if (local_40.gl_pathc != 0) goto LAB_000398e9;
                globfree64(&local_40);
              }
            }
            else {
              pcVar2 = strrchr(param_2,0x2f);
              sVar9 = strlen((char *)pbVar6);
              local_70 = (char *)xmalloc(pcVar2 + sVar9 + (2 - (int)param_2));
              memcpy(local_70,param_2,(size_t)(pcVar2 + (1 - (int)param_2)));
              memcpy(local_70 + (int)(pcVar2 + (1 - (int)param_2)),pbVar6,sVar9 + 1);
              iVar7 = glob64(local_70,0,(__errfunc *)0x0,&local_40);
              if (iVar7 == 0) {
                if (local_40.gl_pathc == 0) {
                  globfree64(&local_40);
                }
                else {
LAB_000398e9:
                  uVar8 = 0;
                  do {
                    uVar8 = uVar8 + 1;
                    MASKED();
                  } while (uVar8 < local_40.gl_pathc);
                  globfree64(&local_40);
                  if (local_70 == (char *)0x0) goto LAB_00039955;
                }
              }
              free(local_70);
            }
LAB_00039955:
            pbVar6 = pbVar10 + 2;
            if (bVar1 == 0) goto LAB_00039790;
            bVar4 = *pbVar6;
          }
          pbVar6 = pbVar6 + 1;
        } while( true );
      }
      bVar4 = *pbVar6;
      if (((bVar4 != 0x3d && bVar4 != 9) && (bVar4 & 0xdf) != 0) &&
         (pbVar11 = pbVar6, 2 < (byte)(bVar4 - 0xb))) {
        do {
          pbVar11 = pbVar11 + 1;
          bVar4 = *pbVar11;
          if ((bVar4 == 9 || bVar4 == 0x3d) || (bVar4 & 0xdf) == 0) break;
        } while (2 < (byte)(bVar4 - 0xb));
        do {
          if (pbVar11 == pbVar6) break;
          if (pbVar11[-1] != 0x2f) {
            sVar9 = (int)pbVar11 - (int)pbVar6;
            iVar7 = *param_1;
            goto joined_r0x00039735;
          }
          pbVar11 = pbVar11 + -1;
        } while( true );
      }
      sVar9 = 0;
      iVar7 = *param_1;
joined_r0x00039735:
      if (iVar7 == 0) {
        param_1[2] = sVar9 + 0x101;
        __dest = (void *)xmalloc(sVar9 + 0x101);
        param_1[1] = 0;
        *param_1 = (int)__dest;
      }
      else {
        iVar3 = param_1[1];
        iVar5 = iVar3 + 1;
        if ((uint)param_1[2] <= iVar5 + sVar9) {
          iVar5 = param_1[2] + 0x100U + sVar9;
          param_1[2] = iVar5;
          iVar7 = xrealloc(iVar7,iVar5);
          *param_1 = iVar7;
          iVar3 = param_1[1];
          iVar5 = iVar3 + 1;
        }
        param_1[1] = iVar5;
        *(undefined1 *)(iVar7 + iVar3) = DAT_0013d808;
        __dest = (void *)(param_1[1] + *param_1);
      }
      memcpy(__dest,pbVar6,sVar9);
      iVar7 = param_1[1];
      param_1[1] = iVar7 + sVar9;
      *(undefined1 *)(*param_1 + iVar7 + sVar9) = 0;
    }
LAB_00039790:
    iVar7 = feof(__stream);
    pbVar6 = __s;
    if (iVar7 != 0) {
LAB_000397a7:
      free(__s);
      fclose(__stream);
      return 1;
    }
  } while( true );
}

