
void print_stack_union(FILE *out,lemon *lemp,int *plineno,int mhflag)

{
  byte bVar1;
  ushort uVar2;
  uint uVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  char *pcVar7;
  int *piVar8;
  uint uVar9;
  undefined1 *puVar10;
  symbol *psVar11;
  uint uVar12;
  char *pcVar13;
  symbol **ppsVar14;
  char *pcVar15;
  symbol **ppsVar16;
  symbol *psVar17;
  uint uVar18;
  int iVar19;
  byte *pbVar20;
  undefined *puVar21;
  int local_34;
  
  iVar19 = lemp->nsymbol;
  uVar18 = iVar19 * 2;
  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar18,4);
  if (piVar4 != (int *)0x0) {
    if (0 < (int)uVar18) {
      piVar8 = piVar4;
      do {
        *piVar8 = 0;
        piVar8 = piVar8 + 1;
      } while (piVar4 + iVar19 * 2 != piVar8);
    }
    if (lemp->vartype == (char *)0x0) {
      iVar5 = 0;
    }
    else {
      iVar5 = (*(code *)PTR_strlen_00033308)();
    }
    if (iVar19 < 1) {
      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);
      if (pcVar7 != (char *)0x0) {
LAB_00017618:
        pcVar15 = lemp->name;
        if (pcVar15 == (char *)0x0) {
          pcVar15 = PTR_LAB_00033198 + 0x8ec;
        }
        iVar5 = *plineno;
        iVar19 = iVar5 + 1;
        if (mhflag == 0) {
          if (lemp->tokentype == (char *)0x0) {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);
          }
          else {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);
          }
        }
        else {
          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);
          if (lemp->tokentype == (char *)0x0) {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);
          }
          else {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);
          }
          iVar19 = iVar5 + 3;
          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);
        }
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);
        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);
        if ((int)uVar18 < 1) {
          iVar19 = iVar19 + 4;
        }
        else {
          uVar9 = 0;
          puVar21 = PTR_LAB_00033198 + 0xa30;
          piVar8 = piVar4;
          iVar5 = iVar19 + 3;
          do {
            while( true ) {
              iVar6 = *piVar8;
              uVar9 = uVar9 + 1;
              if (iVar6 != 0) break;
              piVar8 = piVar8 + 1;
              iVar19 = iVar5 + 1;
              if (uVar18 == uVar9) goto LAB_0001773c;
            }
            piVar8 = piVar8 + 1;
            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);
            iVar19 = iVar5 + 2;
            (*(code *)PTR_free_00033348)(iVar6);
            iVar5 = iVar5 + 1;
          } while (uVar18 != uVar9);
        }
LAB_0001773c:
        psVar11 = lemp->errsym;
        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {
          iVar19 = iVar19 + 1;
          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);
        }
        (*(code *)PTR_free_00033348)(pcVar7);
        (*(code *)PTR_free_00033348)(piVar4);
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);
        *plineno = iVar19;
        return;
      }
    }
    else {
      ppsVar16 = lemp->symbols;
      ppsVar14 = ppsVar16;
      do {
        if (((*ppsVar14)->datatype != (char *)0x0) &&
           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {
          iVar5 = iVar6;
        }
        ppsVar14 = ppsVar14 + 1;
      } while (ppsVar16 + iVar19 != ppsVar14);
      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);
      if (pcVar7 != (char *)0x0) {
        psVar11 = lemp->errsym;
        iVar19 = 0;
        psVar17 = *ppsVar16;
        if (psVar11 == psVar17) goto LAB_000175fc;
        do {
          if ((psVar17->type == NONTERMINAL) &&
             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||
              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {
            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();
            iVar5 = *piVar8;
            while( true ) {
              bVar1 = *pbVar20;
              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);
              uVar9 = uVar2 & 0x20;
              if ((uVar2 & 0x20) == 0) break;
              pbVar20 = pbVar20 + 1;
            }
            uVar3 = (int)(char)bVar1;
            pcVar15 = pcVar7;
            if ((int)(char)bVar1 != 0) {
              do {
                uVar12 = uVar3;
                uVar9 = uVar9 + 1;
                pcVar15 = pcVar7 + uVar9;
                bVar1 = pbVar20[uVar9];
                pcVar15[-1] = (char)uVar12;
                uVar3 = (int)(char)bVar1;
              } while ((int)(char)bVar1 != 0);
              uVar12 = uVar12 & 0xff;
              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&
                     (pcVar15 = pcVar7, uVar9 != 0))) {
                pcVar15 = pcVar7 + uVar9;
                uVar12 = (uint)(byte)pcVar15[-1];
              }
            }
            pcVar13 = lemp->tokentype;
            *pcVar15 = '\0';
            if ((pcVar13 == (char *)0x0) ||
               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {
              local_34 = (int)*pcVar7;
              if (local_34 == 0) goto LAB_0001789c;
              iVar6 = 0;
              iVar5 = local_34;
              pcVar15 = pcVar7;
              do {
                pcVar15 = pcVar15 + 1;
                uVar9 = iVar6 + iVar5;
                iVar5 = (int)*pcVar15;
                iVar6 = uVar9 * 0x35;
              } while (iVar5 != 0);
              if (uVar18 == 0) {
                trap(7);
              }
              uVar9 = (uVar9 & 0x7fffffff) % uVar18;
LAB_00017808:
              piVar8 = piVar4 + uVar9;
              while( true ) {
                puVar21 = PTR_strlen_00033308;
                uVar9 = uVar9 + 1;
                if (*piVar8 == 0) break;
                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);
                if (iVar5 == 0) {
                  psVar17->dtnum = uVar9;
                  goto LAB_000175cc;
                }
                piVar8 = piVar8 + 1;
                if (uVar18 <= uVar9) goto LAB_0001789c;
              }
              psVar17->dtnum = uVar9;
              iVar5 = (*(code *)puVar21)(pcVar7);
              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);
              *piVar8 = (int)puVar10;
              pcVar15 = pcVar7;
              if (puVar10 == (undefined1 *)0x0) break;
              while( true ) {
                *puVar10 = (char)local_34;
                if (local_34 == 0) break;
                local_34 = (int)pcVar15[1];
                puVar10 = puVar10 + 1;
                pcVar15 = pcVar15 + 1;
              }
              iVar5 = lemp->nsymbol;
              goto LAB_000175d0;
            }
          }
          psVar17->dtnum = 0;
LAB_000175cc:
          iVar5 = lemp->nsymbol;
LAB_000175d0:
          iVar19 = iVar19 + 1;
          if (iVar5 <= iVar19) goto LAB_00017618;
          while( true ) {
            psVar11 = lemp->errsym;
            psVar17 = lemp->symbols[iVar19];
            if (psVar11 != psVar17) break;
LAB_000175fc:
            iVar19 = iVar19 + 1;
            psVar11->dtnum = uVar18 + 1;
            if (lemp->nsymbol <= iVar19) goto LAB_00017618;
          }
        } while( true );
      }
    }
  }
  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);
  (*(code *)PTR_exit_00033310)(1);
  return;
LAB_0001789c:
  uVar9 = 0;
  goto LAB_00017808;
}



void print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)

{
  byte bVar1;
  ushort uVar2;
  uint uVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  char *pcVar7;
  int *piVar8;
  uint uVar9;
  undefined1 *puVar10;
  uint uVar11;
  char *pcVar12;
  int iVar13;
  undefined *puVar14;
  int *piVar15;
  uint uVar16;
  int iVar17;
  byte *pbVar18;
  int local_34;
  
  iVar17 = *(int *)(param_2 + 0x18);
  uVar16 = iVar17 * 2;
  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);
  if (piVar4 != (int *)0x0) {
    if (0 < (int)uVar16) {
      piVar8 = piVar4;
      do {
        *piVar8 = 0;
        piVar8 = piVar8 + 1;
      } while (piVar4 + iVar17 * 2 != piVar8);
    }
    if (*(int *)(param_2 + 0x58) == 0) {
      iVar5 = 0;
    }
    else {
      iVar5 = (*(code *)PTR_strlen_00033308)();
    }
    if (iVar17 < 1) {
      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);
      if (pcVar7 != (char *)0x0) {
LAB_00017618:
        puVar14 = *(undefined **)(param_2 + 0x48);
        if (puVar14 == (undefined *)0x0) {
          puVar14 = PTR_LAB_00033198 + 0x8ec;
        }
        iVar5 = *param_3;
        iVar17 = iVar5 + 1;
        if (param_4 == 0) {
          if (*(int *)(param_2 + 0x54) == 0) {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);
          }
          else {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));
          }
        }
        else {
          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);
          if (*(int *)(param_2 + 0x54) == 0) {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);
          }
          else {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));
          }
          iVar17 = iVar5 + 3;
          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);
        }
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);
        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);
        if ((int)uVar16 < 1) {
          iVar17 = iVar17 + 4;
        }
        else {
          uVar9 = 0;
          puVar14 = PTR_LAB_00033198 + 0xa30;
          piVar8 = piVar4;
          iVar5 = iVar17 + 3;
          do {
            while( true ) {
              iVar6 = *piVar8;
              uVar9 = uVar9 + 1;
              if (iVar6 != 0) break;
              piVar8 = piVar8 + 1;
              iVar17 = iVar5 + 1;
              if (uVar16 == uVar9) goto LAB_0001773c;
            }
            piVar8 = piVar8 + 1;
            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);
            iVar17 = iVar5 + 2;
            (*(code *)PTR_free_00033348)(iVar6);
            iVar5 = iVar5 + 1;
          } while (uVar16 != uVar9);
        }
LAB_0001773c:
        iVar5 = *(int *)(param_2 + 0x40);
        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {
          iVar17 = iVar17 + 1;
          (*(code *)PTR___fprintf_chk_000332cc)
                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));
        }
        (*(code *)PTR_free_00033348)(pcVar7);
        (*(code *)PTR_free_00033348)(piVar4);
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);
        *param_3 = iVar17;
        return;
      }
    }
    else {
      piVar15 = *(int **)(param_2 + 0x38);
      piVar8 = piVar15;
      do {
        if ((*(int *)(*piVar8 + 0x30) != 0) &&
           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {
          iVar5 = iVar6;
        }
        piVar8 = piVar8 + 1;
      } while (piVar15 + iVar17 != piVar8);
      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);
      if (pcVar7 != (char *)0x0) {
        iVar17 = *(int *)(param_2 + 0x40);
        iVar5 = 0;
        iVar6 = *piVar15;
        if (iVar17 == iVar6) goto LAB_000175fc;
        do {
          if ((*(int *)(iVar6 + 8) == 1) &&
             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||
              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {
            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();
            iVar17 = *piVar8;
            while( true ) {
              bVar1 = *pbVar18;
              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);
              uVar9 = uVar2 & 0x20;
              if ((uVar2 & 0x20) == 0) break;
              pbVar18 = pbVar18 + 1;
            }
            uVar3 = (int)(char)bVar1;
            pcVar12 = pcVar7;
            if ((int)(char)bVar1 != 0) {
              do {
                uVar11 = uVar3;
                uVar9 = uVar9 + 1;
                pcVar12 = pcVar7 + uVar9;
                bVar1 = pbVar18[uVar9];
                pcVar12[-1] = (char)uVar11;
                uVar3 = (int)(char)bVar1;
              } while ((int)(char)bVar1 != 0);
              uVar11 = uVar11 & 0xff;
              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&
                     (pcVar12 = pcVar7, uVar9 != 0))) {
                pcVar12 = pcVar7 + uVar9;
                uVar11 = (uint)(byte)pcVar12[-1];
              }
            }
            iVar17 = *(int *)(param_2 + 0x54);
            *pcVar12 = '\0';
            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {
              local_34 = (int)*pcVar7;
              if (local_34 == 0) goto LAB_0001789c;
              iVar13 = 0;
              iVar17 = local_34;
              pcVar12 = pcVar7;
              do {
                pcVar12 = pcVar12 + 1;
                uVar9 = iVar13 + iVar17;
                iVar17 = (int)*pcVar12;
                iVar13 = uVar9 * 0x35;
              } while (iVar17 != 0);
              if (uVar16 == 0) {
                trap(7);
              }
              uVar9 = (uVar9 & 0x7fffffff) % uVar16;
LAB_00017808:
              piVar8 = piVar4 + uVar9;
              while( true ) {
                puVar14 = PTR_strlen_00033308;
                uVar9 = uVar9 + 1;
                if (*piVar8 == 0) break;
                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);
                if (iVar17 == 0) {
                  *(uint *)(iVar6 + 0x34) = uVar9;
                  goto LAB_000175cc;
                }
                piVar8 = piVar8 + 1;
                if (uVar16 <= uVar9) goto LAB_0001789c;
              }
              *(uint *)(iVar6 + 0x34) = uVar9;
              iVar17 = (*(code *)puVar14)(pcVar7);
              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);
              *piVar8 = (int)puVar10;
              pcVar12 = pcVar7;
              if (puVar10 == (undefined1 *)0x0) break;
              while( true ) {
                *puVar10 = (char)local_34;
                if (local_34 == 0) break;
                local_34 = (int)pcVar12[1];
                puVar10 = puVar10 + 1;
                pcVar12 = pcVar12 + 1;
              }
              iVar17 = *(int *)(param_2 + 0x18);
              goto LAB_000175d0;
            }
          }
          *(undefined4 *)(iVar6 + 0x34) = 0;
LAB_000175cc:
          iVar17 = *(int *)(param_2 + 0x18);
LAB_000175d0:
          iVar5 = iVar5 + 1;
          if (iVar17 <= iVar5) goto LAB_00017618;
          while( true ) {
            iVar17 = *(int *)(param_2 + 0x40);
            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);
            if (iVar17 != iVar6) break;
LAB_000175fc:
            iVar5 = iVar5 + 1;
            *(uint *)(iVar17 + 0x34) = uVar16 + 1;
            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;
          }
        } while( true );
      }
    }
  }
  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);
  (*(code *)PTR_exit_00033310)(1);
  return;
LAB_0001789c:
  uVar9 = 0;
  goto LAB_00017808;
}


lui gp,0x2
addiu gp,gp,0x3da4
addu gp,gp,t9
addiu sp,sp,-0x58
lw t9,-0x7eac(gp)
sw s2,0x38(sp)
or s2,a1,zero
sw gp,0x18(sp)
li a1,0x4
sw s3,0x3c(sp)
sw ra,0x54(sp)
sw s8,0x50(sp)
sw s7,0x4c(sp)
sw s6,0x48(sp)
sw s5,0x44(sp)
sw s4,0x40(sp)
sw s1,0x34(sp)
sw s0,0x30(sp)
lw s4,0x18(s2)
sw a0,0x58(sp)
sw a2,0x60(sp)
sll s3,s4,0x1
sw a3,0x64(sp)
jalr t9
_or a0,s3,zero
lw gp,0x18(sp)
beq v0,zero,0x0001797c
_sw v0,0x28(sp)
blez s3,0x00017450
_lw a0,0x28(sp)
sll v1,s4,0x3
addu v1,v1,a0
or v0,a0,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne v1,v0,0x00017440
_nop
lw a0,0x58(s2)
beq a0,zero,0x00017958
_lw t9,-0x7e58(gp)
jalr t9
_nop
lw gp,0x18(sp)
blez s4,0x00017960
_or s5,v0,zero
lw s1,0x38(s2)
sll s4,s4,0x2
addu s4,s4,s1
or s0,s1,zero
lw v0,0x0(s0)
lw a0,0x30(v0)
beq a0,zero,0x000174a4
_lw t9,-0x7e58(gp)
jalr t9
_nop
slt v1,s5,v0
lw gp,0x18(sp)
movn s5,v0,v1
addiu s0,s0,0x4
bne s4,s0,0x00017480
_sll a0,s5,0x1
lw t9,-0x7e44(gp)
jalr t9
_addiu a0,a0,0x1
lw gp,0x18(sp)
beq v0,zero,0x0001797c
_or s8,v0,zero
addiu v0,s3,0x1
lw v1,0x40(s2)
or s0,zero,zero
sw v0,0x2c(sp)
li s5,0x1
sll v0,s0,0x2
addu v0,s1,v0
lw s1,0x0(v0)
beq v1,s1,0x000175fc
_li s4,0x35
lw v0,0x8(s1)
bne v0,s5,0x000175c8
_nop
lw s6,0x30(s1)
bne s6,zero,0x00017514
_lw t9,-0x7ea8(gp)
lw s6,0x58(s2)
beq s6,zero,0x000175c8
_nop
jalr t9
_nop
lw gp,0x18(sp)
b 0x0001752c
_lw a1,0x0(v0)
addiu s6,s6,0x1
lb v1,0x0(s6)
andi v0,v1,0xff
sll v0,v0,0x1
addu v0,a1,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x00017528
_nop
bne v1,zero,0x00017564
_addiu v0,v0,0x1
b 0x000175a8
_or a0,s8,zero
or v1,a2,zero
addiu v0,v0,0x1
addu a2,s6,v0
addu a0,s8,v0
lb a2,0x0(a2)
bne a2,zero,0x0001755c
_sb v1,-0x1(a0)
b 0x00017590
_andi v1,v1,0xff
beq v0,zero,0x000175a8
_or a0,s8,zero
addu a0,s8,v0
lbu v1,-0x1(a0)
sll v1,v1,0x1
addu v1,a1,v1
lhu v1,0x0(v1)
andi v1,v1,0x20
bne v1,zero,0x00017580
_addiu v0,v0,-0x1
lw a1,0x54(s2)
beq a1,zero,0x000177c8
_sb zero,0x0(a0)
lw t9,-0x7e00(gp)
jalr t9
_or a0,s8,zero
bne v0,zero,0x000177c8
_lw gp,0x18(sp)
sw zero,0x34(s1)
lw v0,0x18(s2)
addiu s0,s0,0x1
slt v0,s0,v0
beq v0,zero,0x00017618
_nop
lw s1,0x38(s2)
sll v0,s0,0x2
lw v1,0x40(s2)
addu v0,s1,v0
lw s1,0x0(v0)
bne v1,s1,0x000174f0
_nop
lw v0,0x2c(sp)
addiu s0,s0,0x1
sw v0,0x34(v1)
lw v0,0x18(s2)
slt v0,s0,v0
bne v0,zero,0x000175e0
_nop
lw s0,0x48(s2)
beq s0,zero,0x0001794c
_nop
lw v0,0x60(sp)
lw s4,0x0(v0)
lw v0,0x64(sp)
bne v0,zero,0x000178d8
_addiu s1,s4,0x1
lw v0,0x54(s2)
beq v0,zero,0x000178ac
_li a1,0x1
lw a2,-0x7fc8(gp)
lw t9,-0x7e94(gp)
or a3,s0,zero
lw a0,0x58(sp)
addiu a2,a2,0x9d0
jalr t9
_sw v0,0x10(sp)
lw gp,0x18(sp)
lw a0,-0x7fc8(gp)
li a2,0x10
lw t9,-0x7e34(gp)
li a1,0x1
lw a3,0x58(sp)
addiu s6,s1,0x3
jalr t9
_addiu a0,a0,0x9f8
li a2,0xe
lw gp,0x18(sp)
li a1,0x1
lw a3,0x58(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7e34(gp)
jalr t9
_addiu a0,a0,0xa0c
li a1,0x1
lw gp,0x18(sp)
or a3,s0,zero
lw a0,0x58(sp)
lw a2,-0x7fc8(gp)
lw t9,-0x7e94(gp)
jalr t9
_addiu a2,a2,0xa1c
blez s3,0x000179d0
_lw gp,0x18(sp)
lw s4,-0x7fc8(gp)
or s0,zero,zero
lw s5,0x28(sp)
b 0x00017720
_addiu s7,s4,0xa30
lw t9,-0x7e94(gp)
li a1,0x1
lw a0,0x58(sp)
or a3,s1,zero
or a2,s7,zero
sw s0,0x10(sp)
jalr t9
_addiu s5,s5,0x4
or a0,s1,zero
lw gp,0x18(sp)
addiu s1,s6,0x2
lw t9,-0x7e18(gp)
jalr t9
_or s6,s4,zero
beq s3,s0,0x0001773c
_lw gp,0x18(sp)
lw s1,0x0(s5)
addiu s4,s6,0x1
bne s1,zero,0x000176e0
_addiu s0,s0,0x1
or s1,s4,zero
bne s3,s0,0x00017720
_addiu s5,s5,0x4
lw v0,0x40(s2)
beq v0,zero,0x00017758
_lw t9,-0x7e18(gp)
lw v1,0x24(v0)
bne v1,zero,0x000179ac
_lw a2,-0x7fc8(gp)
lw t9,-0x7e18(gp)
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
lw t9,-0x7e18(gp)
jalr t9
_lw a0,0x28(sp)
li a2,0xf
lw gp,0x18(sp)
li a1,0x1
lw a3,0x58(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7e34(gp)
jalr t9
_addiu a0,a0,0xa4c
lw v0,0x60(sp)
sw s1,0x0(v0)
lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lb v0,0x0(s8)
beq v0,zero,0x0001789c
_sw v0,0x24(sp)
lw v0,0x24(sp)
addiu a0,s8,0x1
or v1,zero,zero
mul a1,v1,s4
addiu a0,a0,0x1
addu v1,a1,v0
lb v0,-0x1(a0)
bne v0,zero,0x000177e4
_mul a1,v1,s4
ext v1,v1,0x0,0x1f
teq s3,zero
divu v1,s3
mfhi s6
lw v0,0x28(sp)
sll a2,s6,0x2
b 0x00017838
_addu s7,v0,a2
lw t9,-0x7e00(gp)
jalr t9
_or a1,s8,zero
beq v0,zero,0x000178a4
_lw gp,0x18(sp)
sltu v0,s6,s3
beq v0,zero,0x0001789c
_addiu s7,s7,0x4
lw a0,0x0(s7)
bne a0,zero,0x00017818
_addiu s6,s6,0x1
lw t9,-0x7e58(gp)
or a0,s8,zero
jalr t9
_sw s6,0x34(s1)
lw gp,0x18(sp)
lw t9,-0x7e44(gp)
jalr t9
_addiu a0,v0,0x1
lw gp,0x18(sp)
beq v0,zero,0x0001797c
_sw v0,0x0(s7)
b 0x00017880
_or v1,s8,zero
lb a0,0x0(v1)
sw a0,0x24(sp)
addiu v0,v0,0x1
lw a0,0x24(sp)
addiu v1,v1,0x1
bne a0,zero,0x00017878
_sb a0,-0x1(v0)
b 0x000175d0
_lw v0,0x18(s2)
b 0x00017808
_or s6,zero,zero
b 0x000175cc
_sw s6,0x34(s1)
lw v0,-0x7fc8(gp)
lw a2,-0x7fc8(gp)
or a3,s0,zero
lw t9,-0x7e94(gp)
addiu v0,v0,0x9e8
lw a0,0x58(sp)
addiu a2,a2,0x9d0
jalr t9
_sw v0,0x10(sp)
b 0x00017664
_lw gp,0x18(sp)
lw a0,-0x7fc8(gp)
li a1,0x1
lw t9,-0x7e34(gp)
li a2,0xe
lw a3,0x58(sp)
jalr t9
_addiu a0,a0,0x9c0
li a1,0x1
lw v0,0x54(s2)
beq v0,zero,0x000179d8
_lw gp,0x18(sp)
lw a2,-0x7fc8(gp)
or a3,s0,zero
lw t9,-0x7e94(gp)
lw a0,0x58(sp)
addiu a2,a2,0x9d0
jalr t9
_sw v0,0x10(sp)
lw gp,0x18(sp)
lw a0,-0x7fc8(gp)
li a2,0x7
lw t9,-0x7e34(gp)
li a1,0x1
lw a3,0x58(sp)
addiu s1,s4,0x3
jalr t9
_addiu a0,a0,0x9f0
b 0x00017664
_lw gp,0x18(sp)
lw s0,-0x7fc8(gp)
b 0x00017624
_addiu s0,s0,0x8ec
bgtz s4,0x00017470
_or s5,zero,zero
sll a0,s5,0x1
lw t9,-0x7e44(gp)
jalr t9
_addiu a0,a0,0x1
lw gp,0x18(sp)
bne v0,zero,0x00017618
_or s8,v0,zero
lw v0,-0x7e14(gp)
li a2,0xf
lw a0,-0x7fc8(gp)
li a1,0x1
lw t9,-0x7e34(gp)
lw a3,0x0(v0)
jalr t9
_addiu a0,a0,0x9b0
lw gp,0x18(sp)
lw t9,-0x7e50(gp)
jalr t9
_li a0,0x1
li a1,0x1
lw t9,-0x7e94(gp)
addiu s1,s1,0x1
lw a3,0x34(v0)
lw a0,0x58(sp)
jalr t9
_addiu a2,a2,0xa3c
b 0x00017754
_lw gp,0x18(sp)
b 0x0001773c
_addiu s1,s1,0x4
lw v0,-0x7fc8(gp)
or a3,s0,zero
lw a2,-0x7fc8(gp)
lw t9,-0x7e94(gp)
addiu v0,v0,0x9e8
lw a0,0x58(sp)
addiu a2,a2,0x9d0
jalr t9
_sw v0,0x10(sp)
b 0x00017924
_lw gp,0x18(sp)
(translation_unit "void print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}\n\n" (function_definition "void print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" primitive_type (function_declarator "print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,int *param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = iVar17 * 2;" (assignment_expression "uVar16 = iVar17 * 2" identifier = (binary_expression "iVar17 * 2" identifier * number_literal)) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4)" identifier = (cast_expression "(int *)(*(code *)PTR_calloc_000332b4)(uVar16,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_000332b4)(uVar16,4)" (parenthesized_expression "(*(code *)PTR_calloc_000332b4)" ( (pointer_expression "*(code *)PTR_calloc_000332b4" * (cast_expression "(code *)PTR_calloc_000332b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar16,4)" ( identifier , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" { (if_statement "if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }" if (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }" { (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" identifier = identifier) ;) (do_statement "do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);" do (compound_statement "{\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar4 + iVar17 * 2 != piVar8)" ( (binary_expression "piVar4 + iVar17 * 2 != piVar8" (binary_expression "piVar4 + iVar17 * 2" identifier + (binary_expression "iVar17 * 2" identifier * number_literal)) != identifier) )) ;) })) (if_statement "if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x58) == 0)" ( (binary_expression "*(int *)(param_2 + 0x58) == 0" (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar5 = 0;\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" else (compound_statement "{\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" { (expression_statement "iVar5 = (*(code *)PTR_strlen_00033308)();" (assignment_expression "iVar5 = (*(code *)PTR_strlen_00033308)()" identifier = (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" ( (pointer_expression "*(code *)PTR_strlen_00033308" * (cast_expression "(code *)PTR_strlen_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" if (parenthesized_expression "(iVar17 < 1)" ( (binary_expression "iVar17 < 1" identifier < number_literal) )) (compound_statement "{\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 * 2 + 1)" ( (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }" { (labeled_statement "LAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);" statement_identifier : (expression_statement "puVar14 = *(undefined **)(param_2 + 0x48);" (assignment_expression "puVar14 = *(undefined **)(param_2 + 0x48)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x48)" * (cast_expression "(undefined **)(param_2 + 0x48)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;)) (if_statement "if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }" if (parenthesized_expression "(puVar14 == (undefined *)0x0)" ( (binary_expression "puVar14 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }" { (expression_statement "puVar14 = PTR_LAB_00033198 + 0x8ec;" (assignment_expression "puVar14 = PTR_LAB_00033198 + 0x8ec" identifier = (binary_expression "PTR_LAB_00033198 + 0x8ec" identifier + number_literal)) ;) })) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar17 = iVar5 + 1;" (assignment_expression "iVar17 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }" { (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" if (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_00033198 + 0x9e8" identifier + number_literal) ))) ;) }) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" else (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) ))) ;) }))) }) (else_clause "else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" else (compound_statement "{\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" { (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0x9c0" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" if (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_00033198 + 0x9e8" identifier + number_literal) ))) ;) }) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" else (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) ))) ;) }))) (expression_statement "iVar17 = iVar5 + 3;" (assignment_expression "iVar17 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9f0,1,7,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0x9f0" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0x9f8" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0xa0c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0xa1c" identifier + number_literal) , identifier ))) ;) (if_statement "if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          iVar17 = iVar17 + 4;\n        }" { (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" identifier = (binary_expression "iVar17 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" else (compound_statement "{\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = PTR_LAB_00033198 + 0xa30;" (assignment_expression "puVar14 = PTR_LAB_00033198 + 0xa30" identifier = (binary_expression "PTR_LAB_00033198 + 0xa30" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" identifier = identifier) ;) (expression_statement "iVar5 = iVar17 + 3;" (assignment_expression "iVar5 = iVar17 + 3" identifier = (binary_expression "iVar17 + 3" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);" do (compound_statement "{\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          }" { (while_statement "while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }" { (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (iVar6 != 0) break;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar5 + 1;" (assignment_expression "iVar17 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 == uVar9) goto LAB_0001773c;" if (parenthesized_expression "(uVar16 == uVar9)" ( (binary_expression "uVar16 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_0001773c;" goto statement_identifier ;)) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,puVar14,iVar6,uVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar17 = iVar5 + 2;" (assignment_expression "iVar17 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_00033348)(iVar6);" (call_expression "(*(code *)PTR_free_00033348)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 != uVar9)" ( (binary_expression "uVar16 != uVar9" identifier != identifier) )) ;) }))) (labeled_statement "LAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);" statement_identifier : (expression_statement "iVar5 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;)) (if_statement "if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }" if (parenthesized_expression "((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0))" ( (binary_expression "(iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x24) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x24) != 0" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34))" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0xa3c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" * (cast_expression "(undefined4 *)(iVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) ))) ;) })) (expression_statement "(*(code *)PTR_free_00033348)(pcVar7);" (call_expression "(*(code *)PTR_free_00033348)(pcVar7)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00033348)(piVar4);" (call_expression "(*(code *)PTR_free_00033348)(piVar4)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0xa4c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "*param_3 = iVar17;" (assignment_expression "*param_3 = iVar17" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" else (compound_statement "{\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" { (expression_statement "piVar15 = *(int **)(param_2 + 0x38);" (assignment_expression "piVar15 = *(int **)(param_2 + 0x38)" identifier = (pointer_expression "*(int **)(param_2 + 0x38)" * (cast_expression "(int **)(param_2 + 0x38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = piVar15;" (assignment_expression "piVar8 = piVar15" identifier = identifier) ;) (do_statement "do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);" do (compound_statement "{\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      }" { (if_statement "if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }" if (parenthesized_expression "((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6))" ( (binary_expression "(*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" (parenthesized_expression "(*(int *)(*piVar8 + 0x30) != 0)" ( (binary_expression "*(int *)(*piVar8 + 0x30) != 0" (pointer_expression "*(int *)(*piVar8 + 0x30)" * (cast_expression "(int *)(*piVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 0x30)" ( (binary_expression "*piVar8 + 0x30" (pointer_expression "*piVar8" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" ( (comma_expression "iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6" (assignment_expression "iVar6 = (*(code *)PTR_strlen_00033308)()" identifier = (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" ( (pointer_expression "*(code *)PTR_strlen_00033308" * (cast_expression "(code *)PTR_strlen_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) , (binary_expression "iVar5 < iVar6" identifier < identifier)) ))) )) (compound_statement "{\n          iVar5 = iVar6;\n        }" { (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 + iVar17 != piVar8)" ( (binary_expression "piVar15 + iVar17 != piVar8" (binary_expression "piVar15 + iVar17" identifier + identifier) != identifier) )) ;) (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 * 2 + 1)" ( (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }" { (expression_statement "iVar17 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = *piVar15;" (assignment_expression "iVar6 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iVar17 == iVar6) goto LAB_000175fc;" if (parenthesized_expression "(iVar17 == iVar6)" ( (binary_expression "iVar17 == iVar6" identifier == identifier) )) (goto_statement "goto LAB_000175fc;" goto statement_identifier ;)) (do_statement "do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );" do (compound_statement "{\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        }" { (if_statement "if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }" if (parenthesized_expression "((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0))))" ( (binary_expression "(*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))" (parenthesized_expression "(*(int *)(iVar6 + 8) == 1)" ( (binary_expression "*(int *)(iVar6 + 8) == 1" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))" ( (parenthesized_expression "(pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0))" ( (comma_expression "pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (assignment_expression "pbVar18 = *(byte **)(iVar6 + 0x30)" identifier = (pointer_expression "*(byte **)(iVar6 + 0x30)" * (cast_expression "(byte **)(iVar6 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) ))))) , (binary_expression "pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (binary_expression "pbVar18 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" ( (comma_expression "pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x58)" identifier = (pointer_expression "*(byte **)(param_2 + 0x58)" * (cast_expression "(byte **)(param_2 + 0x58)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) , (binary_expression "pbVar18 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }" { (expression_statement "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000332b8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000332b8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000332b8)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000332b8" * (cast_expression "(code *)PTR___ctype_b_loc_000332b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = *piVar8;" (assignment_expression "iVar17 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (while_statement "while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }" { (expression_statement "bVar1 = *pbVar18;" (assignment_expression "bVar1 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" ( (binary_expression "iVar17 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (expression_statement "uVar9 = uVar2 & 0x20;" (assignment_expression "uVar9 = uVar2 & 0x20" identifier = (binary_expression "uVar2 & 0x20" identifier & number_literal)) ;) (if_statement "if ((uVar2 & 0x20) == 0) break;" if (parenthesized_expression "((uVar2 & 0x20) == 0)" ( (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) ;) (if_statement "if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }" if (parenthesized_expression "((int)(char)bVar1 != 0)" ( (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) != number_literal) )) (compound_statement "{\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }" { (do_statement "do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);" do (compound_statement "{\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              }" { (expression_statement "uVar11 = uVar3;" (assignment_expression "uVar11 = uVar3" identifier = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "pcVar12 = pcVar7 + uVar9;" (assignment_expression "pcVar12 = pcVar7 + uVar9" identifier = (binary_expression "pcVar7 + uVar9" identifier + identifier)) ;) (expression_statement "bVar1 = pbVar18[uVar9];" (assignment_expression "bVar1 = pbVar18[uVar9]" identifier = (subscript_expression "pbVar18[uVar9]" identifier [ identifier ])) ;) (expression_statement "pcVar12[-1] = (char)uVar11;" (assignment_expression "pcVar12[-1] = (char)uVar11" (subscript_expression "pcVar12[-1]" identifier [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "((int)(char)bVar1 != 0)" ( (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) != number_literal) )) ;) (expression_statement "uVar11 = uVar11 & 0xff;" (assignment_expression "uVar11 = uVar11 & 0xff" identifier = (binary_expression "uVar11 & 0xff" identifier & number_literal)) ;) (while_statement "while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }" while (parenthesized_expression "((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)))" ( (parenthesized_expression "(uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))" ( (comma_expression "uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) , (binary_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)" (binary_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + uVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + uVar11 * 2)" * (cast_expression "(ushort *)(iVar17 + uVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar11 * 2)" ( (binary_expression "iVar17 + uVar11 * 2" identifier + (binary_expression "uVar11 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(pcVar12 = pcVar7, uVar9 != 0)" ( (comma_expression "pcVar12 = pcVar7, uVar9 != 0" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) , (binary_expression "uVar9 != 0" identifier != number_literal)) )))) )) )) (compound_statement "{\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }" { (expression_statement "pcVar12 = pcVar7 + uVar9;" (assignment_expression "pcVar12 = pcVar7 + uVar9" identifier = (binary_expression "pcVar7 + uVar9" identifier + identifier)) ;) (expression_statement "uVar11 = (uint)(byte)pcVar12[-1];" (assignment_expression "uVar11 = (uint)(byte)pcVar12[-1]" identifier = (cast_expression "(uint)(byte)pcVar12[-1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar12[-1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar12[-1]" identifier [ number_literal ])))) ;) })) })) (expression_statement "iVar17 = *(int *)(param_2 + 0x54);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x54)" identifier = (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "*pcVar12 = '\0';" (assignment_expression "*pcVar12 = '\0'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }" if (parenthesized_expression "((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0))" ( (binary_expression "(iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)" (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)" ( (comma_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0" (assignment_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7)" identifier = (call_expression "(*(code *)PTR_strcmp_00033360)(pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" ( (pointer_expression "*(code *)PTR_strcmp_00033360" * (cast_expression "(code *)PTR_strcmp_00033360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }" { (expression_statement "local_34 = (int)*pcVar7;" (assignment_expression "local_34 = (int)*pcVar7" identifier = (cast_expression "(int)*pcVar7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar7" * identifier))) ;) (if_statement "if (local_34 == 0) goto LAB_0001789c;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001789c;" goto statement_identifier ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = local_34;" (assignment_expression "iVar17 = local_34" identifier = identifier) ;) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);" do (compound_statement "{\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              }" { (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = iVar13 + iVar17;" (assignment_expression "uVar9 = iVar13 + iVar17" identifier = (binary_expression "iVar13 + iVar17" identifier + identifier)) ;) (expression_statement "iVar17 = (int)*pcVar12;" (assignment_expression "iVar17 = (int)*pcVar12" identifier = (cast_expression "(int)*pcVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar12" * identifier))) ;) (expression_statement "iVar13 = uVar9 * 0x35;" (assignment_expression "iVar13 = uVar9 * 0x35" identifier = (binary_expression "uVar9 * 0x35" identifier * number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (if_statement "if (uVar16 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar9 = (uVar9 & 0x7fffffff) % uVar16;" (assignment_expression "uVar9 = (uVar9 & 0x7fffffff) % uVar16" identifier = (binary_expression "(uVar9 & 0x7fffffff) % uVar16" (parenthesized_expression "(uVar9 & 0x7fffffff)" ( (binary_expression "uVar9 & 0x7fffffff" identifier & number_literal) )) % identifier)) ;) (labeled_statement "LAB_00017808:\n              piVar8 = piVar4 + uVar9;" statement_identifier : (expression_statement "piVar8 = piVar4 + uVar9;" (assignment_expression "piVar8 = piVar4 + uVar9" identifier = (binary_expression "piVar4 + uVar9" identifier + identifier)) ;)) (while_statement "while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }" { (expression_statement "puVar14 = PTR_strlen_00033308;" (assignment_expression "puVar14 = PTR_strlen_00033308" identifier = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*piVar8 == 0) break;" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);" (assignment_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" identifier = (call_expression "(*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" ( (pointer_expression "*(code *)PTR_strcmp_00033360" * (cast_expression "(code *)PTR_strcmp_00033360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar8,pcVar7)" ( (pointer_expression "*piVar8" * identifier) , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }" { (expression_statement "*(uint *)(iVar6 + 0x34) = uVar9;" (assignment_expression "*(uint *)(iVar6 + 0x34) = uVar9" (pointer_expression "*(uint *)(iVar6 + 0x34)" * (cast_expression "(uint *)(iVar6 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000175cc;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 <= uVar9) goto LAB_0001789c;" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (goto_statement "goto LAB_0001789c;" goto statement_identifier ;)) })) (expression_statement "*(uint *)(iVar6 + 0x34) = uVar9;" (assignment_expression "*(uint *)(iVar6 + 0x34) = uVar9" (pointer_expression "*(uint *)(iVar6 + 0x34)" * (cast_expression "(uint *)(iVar6 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = (*(code *)puVar14)(pcVar7);" (assignment_expression "iVar17 = (*(code *)puVar14)(pcVar7)" identifier = (call_expression "(*(code *)puVar14)(pcVar7)" (parenthesized_expression "(*(code *)puVar14)" ( (pointer_expression "*(code *)puVar14" * (cast_expression "(code *)puVar14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);" (assignment_expression "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17 + 1)" ( (binary_expression "iVar17 + 1" identifier + number_literal) ))))) ;) (expression_statement "*piVar8 = (int)puVar10;" (assignment_expression "*piVar8 = (int)puVar10" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) break;" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }" { (expression_statement "*puVar10 = (char)local_34;" (assignment_expression "*puVar10 = (char)local_34" (pointer_expression "*puVar10" * identifier) = (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (local_34 == 0) break;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_34 = (int)pcVar12[1];" (assignment_expression "local_34 = (int)pcVar12[1]" identifier = (cast_expression "(int)pcVar12[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar12[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000175d0;" goto statement_identifier ;) })) })) (expression_statement "*(undefined4 *)(iVar6 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x34)" * (cast_expression "(undefined4 *)(iVar6 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);" statement_identifier : (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000175d0:\n          iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar17 <= iVar5) goto LAB_00017618;" if (parenthesized_expression "(iVar17 <= iVar5)" ( (binary_expression "iVar17 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_00017618;" goto statement_identifier ;)) (while_statement "while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }" { (expression_statement "iVar17 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);" (assignment_expression "iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x38) + iVar5 * 4)" ( (binary_expression "*(int *)(param_2 + 0x38) + iVar5 * 4" (pointer_expression "*(int *)(param_2 + 0x38)" * (cast_expression "(int *)(param_2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) + (binary_expression "iVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar17 != iVar6) break;" if (parenthesized_expression "(iVar17 != iVar6)" ( (binary_expression "iVar17 != iVar6" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000175fc:\n            iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "*(uint *)(iVar17 + 0x34) = uVar16 + 1;" (assignment_expression "*(uint *)(iVar17 + 0x34) = uVar16 + 1" (pointer_expression "*(uint *)(iVar17 + 0x34)" * (cast_expression "(uint *)(iVar17 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x34)" ( (binary_expression "iVar17 + 0x34" identifier + number_literal) )))) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;" if (parenthesized_expression "(*(int *)(param_2 + 0x18) <= iVar5)" ( (binary_expression "*(int *)(param_2 + 0x18) <= iVar5" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00017618;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) }))) })) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" ( (binary_expression "PTR_LAB_00033198 + 0x9b0" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_0003334c" * (cast_expression "(undefined4 *)PTR_stderr_0003334c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "(*(code *)PTR_exit_00033310)(1);" (call_expression "(*(code *)PTR_exit_00033310)(1)" (parenthesized_expression "(*(code *)PTR_exit_00033310)" ( (pointer_expression "*(code *)PTR_exit_00033310" * (cast_expression "(code *)PTR_exit_00033310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) (labeled_statement "LAB_0001789c:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00017808;" goto statement_identifier ;) })))
(translation_unit "void print_stack_union(FILE *out,lemon *lemp,int *plineno,int mhflag)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  symbol *psVar11;\n  uint uVar12;\n  char *pcVar13;\n  symbol **ppsVar14;\n  char *pcVar15;\n  symbol **ppsVar16;\n  symbol *psVar17;\n  uint uVar18;\n  int iVar19;\n  byte *pbVar20;\n  undefined *puVar21;\n  int local_34;\n  \n  iVar19 = lemp->nsymbol;\n  uVar18 = iVar19 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar18,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar18) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }\n    if (lemp->vartype == (char *)0x0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar19 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }\n    else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}\n\n" (function_definition "void print_stack_union(FILE *out,lemon *lemp,int *plineno,int mhflag)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  symbol *psVar11;\n  uint uVar12;\n  char *pcVar13;\n  symbol **ppsVar14;\n  char *pcVar15;\n  symbol **ppsVar16;\n  symbol *psVar17;\n  uint uVar18;\n  int iVar19;\n  byte *pbVar20;\n  undefined *puVar21;\n  int local_34;\n  \n  iVar19 = lemp->nsymbol;\n  uVar18 = iVar19 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar18,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar18) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }\n    if (lemp->vartype == (char *)0x0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar19 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }\n    else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" primitive_type (function_declarator "print_stack_union(FILE *out,lemon *lemp,int *plineno,int mhflag)" identifier (parameter_list "(FILE *out,lemon *lemp,int *plineno,int mhflag)" ( (parameter_declaration "FILE *out" type_identifier (pointer_declarator "*out" * identifier)) , (parameter_declaration "lemon *lemp" type_identifier (pointer_declarator "*lemp" * identifier)) , (parameter_declaration "int *plineno" primitive_type (pointer_declarator "*plineno" * identifier)) , (parameter_declaration "int mhflag" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  symbol *psVar11;\n  uint uVar12;\n  char *pcVar13;\n  symbol **ppsVar14;\n  char *pcVar15;\n  symbol **ppsVar16;\n  symbol *psVar17;\n  uint uVar18;\n  int iVar19;\n  byte *pbVar20;\n  undefined *puVar21;\n  int local_34;\n  \n  iVar19 = lemp->nsymbol;\n  uVar18 = iVar19 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar18,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar18) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }\n    if (lemp->vartype == (char *)0x0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar19 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }\n    else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "symbol *psVar11;" type_identifier (pointer_declarator "*psVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "symbol **ppsVar14;" type_identifier (pointer_declarator "**ppsVar14" * (pointer_declarator "*ppsVar14" * identifier)) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "symbol **ppsVar16;" type_identifier (pointer_declarator "**ppsVar16" * (pointer_declarator "*ppsVar16" * identifier)) ;) (declaration "symbol *psVar17;" type_identifier (pointer_declarator "*psVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "iVar19 = lemp->nsymbol;" (assignment_expression "iVar19 = lemp->nsymbol" identifier = (field_expression "lemp->nsymbol" identifier -> field_identifier)) ;) (expression_statement "uVar18 = iVar19 * 2;" (assignment_expression "uVar18 = iVar19 * 2" identifier = (binary_expression "iVar19 * 2" identifier * number_literal)) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar18,4);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar18,4)" identifier = (cast_expression "(int *)(*(code *)PTR_calloc_000332b4)(uVar18,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_000332b4)(uVar18,4)" (parenthesized_expression "(*(code *)PTR_calloc_000332b4)" ( (pointer_expression "*(code *)PTR_calloc_000332b4" * (cast_expression "(code *)PTR_calloc_000332b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar18,4)" ( identifier , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar18) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }\n    if (lemp->vartype == (char *)0x0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar19 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }\n    else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (0 < (int)uVar18) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }\n    if (lemp->vartype == (char *)0x0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar19 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }\n    else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" { (if_statement "if (0 < (int)uVar18) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }" if (parenthesized_expression "(0 < (int)uVar18)" ( (binary_expression "0 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);\n    }" { (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" identifier = identifier) ;) (do_statement "do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar19 * 2 != piVar8);" do (compound_statement "{\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar4 + iVar19 * 2 != piVar8)" ( (binary_expression "piVar4 + iVar19 * 2 != piVar8" (binary_expression "piVar4 + iVar19 * 2" identifier + (binary_expression "iVar19 * 2" identifier * number_literal)) != identifier) )) ;) })) (if_statement "if (lemp->vartype == (char *)0x0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" if (parenthesized_expression "(lemp->vartype == (char *)0x0)" ( (binary_expression "lemp->vartype == (char *)0x0" (field_expression "lemp->vartype" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = 0;\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" else (compound_statement "{\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" { (expression_statement "iVar5 = (*(code *)PTR_strlen_00033308)();" (assignment_expression "iVar5 = (*(code *)PTR_strlen_00033308)()" identifier = (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" ( (pointer_expression "*(code *)PTR_strlen_00033308" * (cast_expression "(code *)PTR_strlen_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar19 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }\n    else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" if (parenthesized_expression "(iVar19 < 1)" ( (binary_expression "iVar19 < 1" identifier < number_literal) )) (compound_statement "{\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 * 2 + 1)" ( (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017618:\n        pcVar15 = lemp->name;\n        if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *plineno;\n        iVar19 = iVar5 + 1;\n        if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);\n        (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);\n        if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }\nLAB_0001773c:\n        psVar11 = lemp->errsym;\n        if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);\n        *plineno = iVar19;\n        return;\n      }" { (labeled_statement "LAB_00017618:\n        pcVar15 = lemp->name;" statement_identifier : (expression_statement "pcVar15 = lemp->name;" (assignment_expression "pcVar15 = lemp->name" identifier = (field_expression "lemp->name" identifier -> field_identifier)) ;)) (if_statement "if (pcVar15 == (char *)0x0) {\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar15 = PTR_LAB_00033198 + 0x8ec;\n        }" { (expression_statement "pcVar15 = PTR_LAB_00033198 + 0x8ec;" (assignment_expression "pcVar15 = PTR_LAB_00033198 + 0x8ec" identifier = (binary_expression "PTR_LAB_00033198 + 0x8ec" identifier + number_literal)) ;) })) (expression_statement "iVar5 = *plineno;" (assignment_expression "iVar5 = *plineno" identifier = (pointer_expression "*plineno" * identifier)) ;) (expression_statement "iVar19 = iVar5 + 1;" (assignment_expression "iVar19 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (mhflag == 0) {\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }" if (parenthesized_expression "(mhflag == 0)" ( (binary_expression "mhflag == 0" identifier == number_literal) )) (compound_statement "{\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n        }" { (if_statement "if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }" if (parenthesized_expression "(lemp->tokentype == (char *)0x0)" ( (binary_expression "lemp->tokentype == (char *)0x0" (field_expression "lemp->tokentype" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_00033198 + 0x9e8" identifier + number_literal) ))) ;) }) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }" else (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (field_expression "lemp->tokentype" identifier -> field_identifier) ))) ;) }))) }) (else_clause "else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }" else (compound_statement "{\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);\n          if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }\n          iVar19 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);\n        }" { (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,out)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9c0,1,0xe,out)" ( (binary_expression "PTR_LAB_00033198 + 0x9c0" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (if_statement "if (lemp->tokentype == (char *)0x0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }" if (parenthesized_expression "(lemp->tokentype == (char *)0x0)" ( (binary_expression "lemp->tokentype == (char *)0x0" (field_expression "lemp->tokentype" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,PTR_LAB_00033198 + 0x9e8)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_00033198 + 0x9e8" identifier + number_literal) ))) ;) }) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }" else (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,PTR_LAB_00033198 + 0x9d0,pcVar15,lemp->tokentype)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (field_expression "lemp->tokentype" identifier -> field_identifier) ))) ;) }))) (expression_statement "iVar19 = iVar5 + 3;" (assignment_expression "iVar19 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,out)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9f0,1,7,out)" ( (binary_expression "PTR_LAB_00033198 + 0x9f0" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,out)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9f8,1,0x10,out)" ( (binary_expression "PTR_LAB_00033198 + 0x9f8" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,out)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0xa0c,1,0xe,out)" ( (binary_expression "PTR_LAB_00033198 + 0xa0c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,PTR_LAB_00033198 + 0xa1c,pcVar15)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0xa1c" identifier + number_literal) , identifier ))) ;) (if_statement "if ((int)uVar18 < 1) {\n          iVar19 = iVar19 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }" if (parenthesized_expression "((int)uVar18 < 1)" ( (binary_expression "(int)uVar18 < 1" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          iVar19 = iVar19 + 4;\n        }" { (expression_statement "iVar19 = iVar19 + 4;" (assignment_expression "iVar19 = iVar19 + 4" identifier = (binary_expression "iVar19 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }" else (compound_statement "{\n          uVar9 = 0;\n          puVar21 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar19 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = PTR_LAB_00033198 + 0xa30;" (assignment_expression "puVar21 = PTR_LAB_00033198 + 0xa30" identifier = (binary_expression "PTR_LAB_00033198 + 0xa30" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" identifier = identifier) ;) (expression_statement "iVar5 = iVar19 + 3;" (assignment_expression "iVar5 = iVar19 + 3" identifier = (binary_expression "iVar19 + 3" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar18 != uVar9);" do (compound_statement "{\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);\n            iVar19 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          }" { (while_statement "while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar19 = iVar5 + 1;\n              if (uVar18 == uVar9) goto LAB_0001773c;\n            }" { (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (iVar6 != 0) break;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar5 + 1;" (assignment_expression "iVar19 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar9) goto LAB_0001773c;" if (parenthesized_expression "(uVar18 == uVar9)" ( (binary_expression "uVar18 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_0001773c;" goto statement_identifier ;)) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(out,1,puVar21,iVar6,uVar9)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,puVar21,iVar6,uVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar19 = iVar5 + 2;" (assignment_expression "iVar19 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_00033348)(iVar6);" (call_expression "(*(code *)PTR_free_00033348)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 != uVar9)" ( (binary_expression "uVar18 != uVar9" identifier != identifier) )) ;) }))) (labeled_statement "LAB_0001773c:\n        psVar11 = lemp->errsym;" statement_identifier : (expression_statement "psVar11 = lemp->errsym;" (assignment_expression "psVar11 = lemp->errsym" identifier = (field_expression "lemp->errsym" identifier -> field_identifier)) ;)) (if_statement "if ((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)) {\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }" if (parenthesized_expression "((psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0))" ( (binary_expression "(psVar11 != (symbol *)0x0) && (psVar11->useCnt != 0)" (parenthesized_expression "(psVar11 != (symbol *)0x0)" ( (binary_expression "psVar11 != (symbol *)0x0" identifier != (cast_expression "(symbol *)0x0" ( (type_descriptor "symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(psVar11->useCnt != 0)" ( (binary_expression "psVar11->useCnt != 0" (field_expression "psVar11->useCnt" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n          iVar19 = iVar19 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);\n        }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(out,1,PTR_LAB_00033198 + 0xa3c,psVar11->dtnum)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0xa3c" identifier + number_literal) , (field_expression "psVar11->dtnum" identifier -> field_identifier) ))) ;) })) (expression_statement "(*(code *)PTR_free_00033348)(pcVar7);" (call_expression "(*(code *)PTR_free_00033348)(pcVar7)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00033348)(piVar4);" (call_expression "(*(code *)PTR_free_00033348)(piVar4)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,out)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0xa4c,1,0xf,out)" ( (binary_expression "PTR_LAB_00033198 + 0xa4c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "*plineno = iVar19;" (assignment_expression "*plineno = iVar19" (pointer_expression "*plineno" * identifier) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" else (compound_statement "{\n      ppsVar16 = lemp->symbols;\n      ppsVar14 = ppsVar16;\n      do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" { (expression_statement "ppsVar16 = lemp->symbols;" (assignment_expression "ppsVar16 = lemp->symbols" identifier = (field_expression "lemp->symbols" identifier -> field_identifier)) ;) (expression_statement "ppsVar14 = ppsVar16;" (assignment_expression "ppsVar14 = ppsVar16" identifier = identifier) ;) (do_statement "do {\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      } while (ppsVar16 + iVar19 != ppsVar14);" do (compound_statement "{\n        if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        ppsVar14 = ppsVar14 + 1;\n      }" { (if_statement "if (((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }" if (parenthesized_expression "(((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6))" ( (binary_expression "((*ppsVar14)->datatype != (char *)0x0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" (parenthesized_expression "((*ppsVar14)->datatype != (char *)0x0)" ( (binary_expression "(*ppsVar14)->datatype != (char *)0x0" (field_expression "(*ppsVar14)->datatype" (parenthesized_expression "(*ppsVar14)" ( (pointer_expression "*ppsVar14" * identifier) )) -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" ( (comma_expression "iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6" (assignment_expression "iVar6 = (*(code *)PTR_strlen_00033308)()" identifier = (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" ( (pointer_expression "*(code *)PTR_strlen_00033308" * (cast_expression "(code *)PTR_strlen_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) , (binary_expression "iVar5 < iVar6" identifier < identifier)) ))) )) (compound_statement "{\n          iVar5 = iVar6;\n        }" { (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) })) (expression_statement "ppsVar14 = ppsVar14 + 1;" (assignment_expression "ppsVar14 = ppsVar14 + 1" identifier = (binary_expression "ppsVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppsVar16 + iVar19 != ppsVar14)" ( (binary_expression "ppsVar16 + iVar19 != ppsVar14" (binary_expression "ppsVar16 + iVar19" identifier + identifier) != identifier) )) ;) (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 * 2 + 1)" ( (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        psVar11 = lemp->errsym;\n        iVar19 = 0;\n        psVar17 = *ppsVar16;\n        if (psVar11 == psVar17) goto LAB_000175fc;\n        do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );\n      }" { (expression_statement "psVar11 = lemp->errsym;" (assignment_expression "psVar11 = lemp->errsym" identifier = (field_expression "lemp->errsym" identifier -> field_identifier)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "psVar17 = *ppsVar16;" (assignment_expression "psVar17 = *ppsVar16" identifier = (pointer_expression "*ppsVar16" * identifier)) ;) (if_statement "if (psVar11 == psVar17) goto LAB_000175fc;" if (parenthesized_expression "(psVar11 == psVar17)" ( (binary_expression "psVar11 == psVar17" identifier == identifier) )) (goto_statement "goto LAB_000175fc;" goto statement_identifier ;)) (do_statement "do {\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        } while( true );" do (compound_statement "{\n          if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }\n          psVar17->dtnum = 0;\nLAB_000175cc:\n          iVar5 = lemp->nsymbol;\nLAB_000175d0:\n          iVar19 = iVar19 + 1;\n          if (iVar5 <= iVar19) goto LAB_00017618;\n          while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }\n        }" { (if_statement "if ((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }" if (parenthesized_expression "((psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0))))" ( (binary_expression "(psVar17->type == NONTERMINAL) &&\n             ((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))" (parenthesized_expression "(psVar17->type == NONTERMINAL)" ( (binary_expression "psVar17->type == NONTERMINAL" (field_expression "psVar17->type" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "((pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)))" ( (parenthesized_expression "(pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0))" ( (comma_expression "pbVar20 = (byte *)psVar17->datatype, pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)" (assignment_expression "pbVar20 = (byte *)psVar17->datatype" identifier = (cast_expression "(byte *)psVar17->datatype" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar17->datatype" identifier -> field_identifier))) , (binary_expression "pbVar20 != (byte *)0x0 ||\n              (pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)" (binary_expression "pbVar20 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0)" ( (comma_expression "pbVar20 = (byte *)lemp->vartype, pbVar20 != (byte *)0x0" (assignment_expression "pbVar20 = (byte *)lemp->vartype" identifier = (cast_expression "(byte *)lemp->vartype" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "lemp->vartype" identifier -> field_identifier))) , (binary_expression "pbVar20 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar5 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar15 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }\n            pcVar13 = lemp->tokentype;\n            *pcVar15 = '\0';\n            if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }\n          }" { (expression_statement "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000332b8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000332b8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000332b8)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000332b8" * (cast_expression "(code *)PTR___ctype_b_loc_000332b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar5 = *piVar8;" (assignment_expression "iVar5 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (while_statement "while( true ) {\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = *pbVar20;\n              uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar20 = pbVar20 + 1;\n            }" { (expression_statement "bVar1 = *pbVar20;" (assignment_expression "bVar1 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar5 + (uint)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(iVar5 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar5 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + (uint)bVar1 * 2)" ( (binary_expression "iVar5 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (expression_statement "uVar9 = uVar2 & 0x20;" (assignment_expression "uVar9 = uVar2 & 0x20" identifier = (binary_expression "uVar2 & 0x20" identifier & number_literal)) ;) (if_statement "if ((uVar2 & 0x20) == 0) break;" if (parenthesized_expression "((uVar2 & 0x20) == 0)" ( (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "pcVar15 = pcVar7;" (assignment_expression "pcVar15 = pcVar7" identifier = identifier) ;) (if_statement "if ((int)(char)bVar1 != 0) {\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }" if (parenthesized_expression "((int)(char)bVar1 != 0)" ( (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) != number_literal) )) (compound_statement "{\n              do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar12 = uVar12 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }\n            }" { (do_statement "do {\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);" do (compound_statement "{\n                uVar12 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar15 = pcVar7 + uVar9;\n                bVar1 = pbVar20[uVar9];\n                pcVar15[-1] = (char)uVar12;\n                uVar3 = (int)(char)bVar1;\n              }" { (expression_statement "uVar12 = uVar3;" (assignment_expression "uVar12 = uVar3" identifier = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "pcVar15 = pcVar7 + uVar9;" (assignment_expression "pcVar15 = pcVar7 + uVar9" identifier = (binary_expression "pcVar7 + uVar9" identifier + identifier)) ;) (expression_statement "bVar1 = pbVar20[uVar9];" (assignment_expression "bVar1 = pbVar20[uVar9]" identifier = (subscript_expression "pbVar20[uVar9]" identifier [ identifier ])) ;) (expression_statement "pcVar15[-1] = (char)uVar12;" (assignment_expression "pcVar15[-1] = (char)uVar12" (subscript_expression "pcVar15[-1]" identifier [ number_literal ]) = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "((int)(char)bVar1 != 0)" ( (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) != number_literal) )) ;) (expression_statement "uVar12 = uVar12 & 0xff;" (assignment_expression "uVar12 = uVar12 & 0xff" identifier = (binary_expression "uVar12 & 0xff" identifier & number_literal)) ;) (while_statement "while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))) {\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }" while (parenthesized_expression "((uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0)))" ( (parenthesized_expression "(uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0))" ( (comma_expression "uVar9 = uVar9 - 1, (*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0)" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) , (binary_expression "(*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0 &&\n                     (pcVar15 = pcVar7, uVar9 != 0)" (binary_expression "(*(ushort *)(iVar5 + uVar12 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar5 + uVar12 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar5 + uVar12 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar5 + uVar12 * 2)" * (cast_expression "(ushort *)(iVar5 + uVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + uVar12 * 2)" ( (binary_expression "iVar5 + uVar12 * 2" identifier + (binary_expression "uVar12 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(pcVar15 = pcVar7, uVar9 != 0)" ( (comma_expression "pcVar15 = pcVar7, uVar9 != 0" (assignment_expression "pcVar15 = pcVar7" identifier = identifier) , (binary_expression "uVar9 != 0" identifier != number_literal)) )))) )) )) (compound_statement "{\n                pcVar15 = pcVar7 + uVar9;\n                uVar12 = (uint)(byte)pcVar15[-1];\n              }" { (expression_statement "pcVar15 = pcVar7 + uVar9;" (assignment_expression "pcVar15 = pcVar7 + uVar9" identifier = (binary_expression "pcVar7 + uVar9" identifier + identifier)) ;) (expression_statement "uVar12 = (uint)(byte)pcVar15[-1];" (assignment_expression "uVar12 = (uint)(byte)pcVar15[-1]" identifier = (cast_expression "(uint)(byte)pcVar15[-1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar15[-1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar15[-1]" identifier [ number_literal ])))) ;) })) })) (expression_statement "pcVar13 = lemp->tokentype;" (assignment_expression "pcVar13 = lemp->tokentype" identifier = (field_expression "lemp->tokentype" identifier -> field_identifier)) ;) (expression_statement "*pcVar15 = '\0';" (assignment_expression "*pcVar15 = '\0'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }" if (parenthesized_expression "((pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0))" ( (binary_expression "(pcVar13 == (char *)0x0) ||\n               (iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)" (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0)" ( (comma_expression "iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar5 != 0" (assignment_expression "iVar5 = (*(code *)PTR_strcmp_00033360)(pcVar7)" identifier = (call_expression "(*(code *)PTR_strcmp_00033360)(pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" ( (pointer_expression "*(code *)PTR_strcmp_00033360" * (cast_expression "(code *)PTR_strcmp_00033360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar6 = 0;\n              iVar5 = local_34;\n              pcVar15 = pcVar7;\n              do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);\n              if (uVar18 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar18;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }\n              psVar17->dtnum = uVar9;\n              iVar5 = (*(code *)puVar21)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar15 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }\n              iVar5 = lemp->nsymbol;\n              goto LAB_000175d0;\n            }" { (expression_statement "local_34 = (int)*pcVar7;" (assignment_expression "local_34 = (int)*pcVar7" identifier = (cast_expression "(int)*pcVar7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar7" * identifier))) ;) (if_statement "if (local_34 == 0) goto LAB_0001789c;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001789c;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = local_34;" (assignment_expression "iVar5 = local_34" identifier = identifier) ;) (expression_statement "pcVar15 = pcVar7;" (assignment_expression "pcVar15 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              } while (iVar5 != 0);" do (compound_statement "{\n                pcVar15 = pcVar15 + 1;\n                uVar9 = iVar6 + iVar5;\n                iVar5 = (int)*pcVar15;\n                iVar6 = uVar9 * 0x35;\n              }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = iVar6 + iVar5;" (assignment_expression "uVar9 = iVar6 + iVar5" identifier = (binary_expression "iVar6 + iVar5" identifier + identifier)) ;) (expression_statement "iVar5 = (int)*pcVar15;" (assignment_expression "iVar5 = (int)*pcVar15" identifier = (cast_expression "(int)*pcVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar15" * identifier))) ;) (expression_statement "iVar6 = uVar9 * 0x35;" (assignment_expression "iVar6 = uVar9 * 0x35" identifier = (binary_expression "uVar9 * 0x35" identifier * number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (if_statement "if (uVar18 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar9 = (uVar9 & 0x7fffffff) % uVar18;" (assignment_expression "uVar9 = (uVar9 & 0x7fffffff) % uVar18" identifier = (binary_expression "(uVar9 & 0x7fffffff) % uVar18" (parenthesized_expression "(uVar9 & 0x7fffffff)" ( (binary_expression "uVar9 & 0x7fffffff" identifier & number_literal) )) % identifier)) ;) (labeled_statement "LAB_00017808:\n              piVar8 = piVar4 + uVar9;" statement_identifier : (expression_statement "piVar8 = piVar4 + uVar9;" (assignment_expression "piVar8 = piVar4 + uVar9" identifier = (binary_expression "piVar4 + uVar9" identifier + identifier)) ;)) (while_statement "while( true ) {\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                puVar21 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar18 <= uVar9) goto LAB_0001789c;\n              }" { (expression_statement "puVar21 = PTR_strlen_00033308;" (assignment_expression "puVar21 = PTR_strlen_00033308" identifier = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*piVar8 == 0) break;" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);" (assignment_expression "iVar5 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" identifier = (call_expression "(*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" ( (pointer_expression "*(code *)PTR_strcmp_00033360" * (cast_expression "(code *)PTR_strcmp_00033360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar8,pcVar7)" ( (pointer_expression "*piVar8" * identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                  psVar17->dtnum = uVar9;\n                  goto LAB_000175cc;\n                }" { (expression_statement "psVar17->dtnum = uVar9;" (assignment_expression "psVar17->dtnum = uVar9" (field_expression "psVar17->dtnum" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_000175cc;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 <= uVar9) goto LAB_0001789c;" if (parenthesized_expression "(uVar18 <= uVar9)" ( (binary_expression "uVar18 <= uVar9" identifier <= identifier) )) (goto_statement "goto LAB_0001789c;" goto statement_identifier ;)) })) (expression_statement "psVar17->dtnum = uVar9;" (assignment_expression "psVar17->dtnum = uVar9" (field_expression "psVar17->dtnum" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar5 = (*(code *)puVar21)(pcVar7);" (assignment_expression "iVar5 = (*(code *)puVar21)(pcVar7)" identifier = (call_expression "(*(code *)puVar21)(pcVar7)" (parenthesized_expression "(*(code *)puVar21)" ( (pointer_expression "*(code *)puVar21" * (cast_expression "(code *)puVar21" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1);" (assignment_expression "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar5 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "*piVar8 = (int)puVar10;" (assignment_expression "*piVar8 = (int)puVar10" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar15 = pcVar7;" (assignment_expression "pcVar15 = pcVar7" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) break;" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar15[1];\n                puVar10 = puVar10 + 1;\n                pcVar15 = pcVar15 + 1;\n              }" { (expression_statement "*puVar10 = (char)local_34;" (assignment_expression "*puVar10 = (char)local_34" (pointer_expression "*puVar10" * identifier) = (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (local_34 == 0) break;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_34 = (int)pcVar15[1];" (assignment_expression "local_34 = (int)pcVar15[1]" identifier = (cast_expression "(int)pcVar15[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar15[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar5 = lemp->nsymbol;" (assignment_expression "iVar5 = lemp->nsymbol" identifier = (field_expression "lemp->nsymbol" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000175d0;" goto statement_identifier ;) })) })) (expression_statement "psVar17->dtnum = 0;" (assignment_expression "psVar17->dtnum = 0" (field_expression "psVar17->dtnum" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_000175cc:\n          iVar5 = lemp->nsymbol;" statement_identifier : (expression_statement "iVar5 = lemp->nsymbol;" (assignment_expression "iVar5 = lemp->nsymbol" identifier = (field_expression "lemp->nsymbol" identifier -> field_identifier)) ;)) (labeled_statement "LAB_000175d0:\n          iVar19 = iVar19 + 1;" statement_identifier : (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar5 <= iVar19) goto LAB_00017618;" if (parenthesized_expression "(iVar5 <= iVar19)" ( (binary_expression "iVar5 <= iVar19" identifier <= identifier) )) (goto_statement "goto LAB_00017618;" goto statement_identifier ;)) (while_statement "while( true ) {\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            psVar11 = lemp->errsym;\n            psVar17 = lemp->symbols[iVar19];\n            if (psVar11 != psVar17) break;\nLAB_000175fc:\n            iVar19 = iVar19 + 1;\n            psVar11->dtnum = uVar18 + 1;\n            if (lemp->nsymbol <= iVar19) goto LAB_00017618;\n          }" { (expression_statement "psVar11 = lemp->errsym;" (assignment_expression "psVar11 = lemp->errsym" identifier = (field_expression "lemp->errsym" identifier -> field_identifier)) ;) (expression_statement "psVar17 = lemp->symbols[iVar19];" (assignment_expression "psVar17 = lemp->symbols[iVar19]" identifier = (subscript_expression "lemp->symbols[iVar19]" (field_expression "lemp->symbols" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (psVar11 != psVar17) break;" if (parenthesized_expression "(psVar11 != psVar17)" ( (binary_expression "psVar11 != psVar17" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000175fc:\n            iVar19 = iVar19 + 1;" statement_identifier : (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;)) (expression_statement "psVar11->dtnum = uVar18 + 1;" (assignment_expression "psVar11->dtnum = uVar18 + 1" (field_expression "psVar11->dtnum" identifier -> field_identifier) = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (if_statement "if (lemp->nsymbol <= iVar19) goto LAB_00017618;" if (parenthesized_expression "(lemp->nsymbol <= iVar19)" ( (binary_expression "lemp->nsymbol <= iVar19" (field_expression "lemp->nsymbol" identifier -> field_identifier) <= identifier) )) (goto_statement "goto LAB_00017618;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) }))) })) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" ( (binary_expression "PTR_LAB_00033198 + 0x9b0" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_0003334c" * (cast_expression "(undefined4 *)PTR_stderr_0003334c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "(*(code *)PTR_exit_00033310)(1);" (call_expression "(*(code *)PTR_exit_00033310)(1)" (parenthesized_expression "(*(code *)PTR_exit_00033310)" ( (pointer_expression "*(code *)PTR_exit_00033310" * (cast_expression "(code *)PTR_exit_00033310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) (labeled_statement "LAB_0001789c:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00017808;" goto statement_identifier ;) })))
(translation_unit "void print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}\n\n" (function_definition "void print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" primitive_type (function_declarator "print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,int *param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = iVar17 * 2;" (assignment_expression "uVar16 = iVar17 * 2" identifier = (binary_expression "iVar17 * 2" identifier * number_literal)) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4)" identifier = (cast_expression "(int *)(*(code *)PTR_calloc_000332b4)(uVar16,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_000332b4)(uVar16,4)" (parenthesized_expression "(*(code *)PTR_calloc_000332b4)" ( (pointer_expression "*(code *)PTR_calloc_000332b4" * (cast_expression "(code *)PTR_calloc_000332b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar16,4)" ( identifier , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" { (if_statement "if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }" if (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }" { (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" identifier = identifier) ;) (do_statement "do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);" do (compound_statement "{\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar4 + iVar17 * 2 != piVar8)" ( (binary_expression "piVar4 + iVar17 * 2 != piVar8" (binary_expression "piVar4 + iVar17 * 2" identifier + (binary_expression "iVar17 * 2" identifier * number_literal)) != identifier) )) ;) })) (if_statement "if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x58) == 0)" ( (binary_expression "*(int *)(param_2 + 0x58) == 0" (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar5 = 0;\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" else (compound_statement "{\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" { (expression_statement "iVar5 = (*(code *)PTR_strlen_00033308)();" (assignment_expression "iVar5 = (*(code *)PTR_strlen_00033308)()" identifier = (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" ( (pointer_expression "*(code *)PTR_strlen_00033308" * (cast_expression "(code *)PTR_strlen_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" if (parenthesized_expression "(iVar17 < 1)" ( (binary_expression "iVar17 < 1" identifier < number_literal) )) (compound_statement "{\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 * 2 + 1)" ( (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }" { (labeled_statement "LAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);" statement_identifier : (expression_statement "puVar14 = *(undefined **)(param_2 + 0x48);" (assignment_expression "puVar14 = *(undefined **)(param_2 + 0x48)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x48)" * (cast_expression "(undefined **)(param_2 + 0x48)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;)) (if_statement "if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }" if (parenthesized_expression "(puVar14 == (undefined *)0x0)" ( (binary_expression "puVar14 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }" { (expression_statement "puVar14 = PTR_LAB_00033198 + 0x8ec;" (assignment_expression "puVar14 = PTR_LAB_00033198 + 0x8ec" identifier = (binary_expression "PTR_LAB_00033198 + 0x8ec" identifier + number_literal)) ;) })) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar17 = iVar5 + 1;" (assignment_expression "iVar17 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }" { (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" if (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_00033198 + 0x9e8" identifier + number_literal) ))) ;) }) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" else (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) ))) ;) }))) }) (else_clause "else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" else (compound_statement "{\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" { (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0x9c0" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" if (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_00033198 + 0x9e8" identifier + number_literal) ))) ;) }) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" else (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" { (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0x9d0" identifier + number_literal) , identifier , (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) ))) ;) }))) (expression_statement "iVar17 = iVar5 + 3;" (assignment_expression "iVar17 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9f0,1,7,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0x9f0" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0x9f8" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0xa0c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14)" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0xa1c" identifier + number_literal) , identifier ))) ;) (if_statement "if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          iVar17 = iVar17 + 4;\n        }" { (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" identifier = (binary_expression "iVar17 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" else (compound_statement "{\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = PTR_LAB_00033198 + 0xa30;" (assignment_expression "puVar14 = PTR_LAB_00033198 + 0xa30" identifier = (binary_expression "PTR_LAB_00033198 + 0xa30" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" identifier = identifier) ;) (expression_statement "iVar5 = iVar17 + 3;" (assignment_expression "iVar5 = iVar17 + 3" identifier = (binary_expression "iVar17 + 3" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);" do (compound_statement "{\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          }" { (while_statement "while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }" { (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (iVar6 != 0) break;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar5 + 1;" (assignment_expression "iVar17 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 == uVar9) goto LAB_0001773c;" if (parenthesized_expression "(uVar16 == uVar9)" ( (binary_expression "uVar16 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_0001773c;" goto statement_identifier ;)) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,puVar14,iVar6,uVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar17 = iVar5 + 2;" (assignment_expression "iVar17 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_00033348)(iVar6);" (call_expression "(*(code *)PTR_free_00033348)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 != uVar9)" ( (binary_expression "uVar16 != uVar9" identifier != identifier) )) ;) }))) (labeled_statement "LAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);" statement_identifier : (expression_statement "iVar5 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;)) (if_statement "if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }" if (parenthesized_expression "((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0))" ( (binary_expression "(iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x24) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x24) != 0" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" * (cast_expression "(code *)PTR___fprintf_chk_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34))" ( identifier , number_literal , (binary_expression "PTR_LAB_00033198 + 0xa3c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" * (cast_expression "(undefined4 *)(iVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) ))) ;) })) (expression_statement "(*(code *)PTR_free_00033348)(pcVar7);" (call_expression "(*(code *)PTR_free_00033348)(pcVar7)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00033348)(piVar4);" (call_expression "(*(code *)PTR_free_00033348)(piVar4)" (parenthesized_expression "(*(code *)PTR_free_00033348)" ( (pointer_expression "*(code *)PTR_free_00033348" * (cast_expression "(code *)PTR_free_00033348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1)" ( (binary_expression "PTR_LAB_00033198 + 0xa4c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "*param_3 = iVar17;" (assignment_expression "*param_3 = iVar17" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" else (compound_statement "{\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" { (expression_statement "piVar15 = *(int **)(param_2 + 0x38);" (assignment_expression "piVar15 = *(int **)(param_2 + 0x38)" identifier = (pointer_expression "*(int **)(param_2 + 0x38)" * (cast_expression "(int **)(param_2 + 0x38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = piVar15;" (assignment_expression "piVar8 = piVar15" identifier = identifier) ;) (do_statement "do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);" do (compound_statement "{\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      }" { (if_statement "if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }" if (parenthesized_expression "((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6))" ( (binary_expression "(*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" (parenthesized_expression "(*(int *)(*piVar8 + 0x30) != 0)" ( (binary_expression "*(int *)(*piVar8 + 0x30) != 0" (pointer_expression "*(int *)(*piVar8 + 0x30)" * (cast_expression "(int *)(*piVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 0x30)" ( (binary_expression "*piVar8 + 0x30" (pointer_expression "*piVar8" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" ( (comma_expression "iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6" (assignment_expression "iVar6 = (*(code *)PTR_strlen_00033308)()" identifier = (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" ( (pointer_expression "*(code *)PTR_strlen_00033308" * (cast_expression "(code *)PTR_strlen_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) , (binary_expression "iVar5 < iVar6" identifier < identifier)) ))) )) (compound_statement "{\n          iVar5 = iVar6;\n        }" { (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 + iVar17 != piVar8)" ( (binary_expression "piVar15 + iVar17 != piVar8" (binary_expression "piVar15 + iVar17" identifier + identifier) != identifier) )) ;) (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 * 2 + 1)" ( (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }" { (expression_statement "iVar17 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = *piVar15;" (assignment_expression "iVar6 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iVar17 == iVar6) goto LAB_000175fc;" if (parenthesized_expression "(iVar17 == iVar6)" ( (binary_expression "iVar17 == iVar6" identifier == identifier) )) (goto_statement "goto LAB_000175fc;" goto statement_identifier ;)) (do_statement "do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );" do (compound_statement "{\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        }" { (if_statement "if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }" if (parenthesized_expression "((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0))))" ( (binary_expression "(*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))" (parenthesized_expression "(*(int *)(iVar6 + 8) == 1)" ( (binary_expression "*(int *)(iVar6 + 8) == 1" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))" ( (parenthesized_expression "(pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0))" ( (comma_expression "pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (assignment_expression "pbVar18 = *(byte **)(iVar6 + 0x30)" identifier = (pointer_expression "*(byte **)(iVar6 + 0x30)" * (cast_expression "(byte **)(iVar6 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) ))))) , (binary_expression "pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (binary_expression "pbVar18 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" ( (comma_expression "pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x58)" identifier = (pointer_expression "*(byte **)(param_2 + 0x58)" * (cast_expression "(byte **)(param_2 + 0x58)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) , (binary_expression "pbVar18 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }" { (expression_statement "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000332b8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000332b8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000332b8)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000332b8" * (cast_expression "(code *)PTR___ctype_b_loc_000332b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = *piVar8;" (assignment_expression "iVar17 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (while_statement "while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }" { (expression_statement "bVar1 = *pbVar18;" (assignment_expression "bVar1 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" ( (binary_expression "iVar17 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (expression_statement "uVar9 = uVar2 & 0x20;" (assignment_expression "uVar9 = uVar2 & 0x20" identifier = (binary_expression "uVar2 & 0x20" identifier & number_literal)) ;) (if_statement "if ((uVar2 & 0x20) == 0) break;" if (parenthesized_expression "((uVar2 & 0x20) == 0)" ( (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) ;) (if_statement "if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }" if (parenthesized_expression "((int)(char)bVar1 != 0)" ( (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) != number_literal) )) (compound_statement "{\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }" { (do_statement "do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);" do (compound_statement "{\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              }" { (expression_statement "uVar11 = uVar3;" (assignment_expression "uVar11 = uVar3" identifier = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "pcVar12 = pcVar7 + uVar9;" (assignment_expression "pcVar12 = pcVar7 + uVar9" identifier = (binary_expression "pcVar7 + uVar9" identifier + identifier)) ;) (expression_statement "bVar1 = pbVar18[uVar9];" (assignment_expression "bVar1 = pbVar18[uVar9]" identifier = (subscript_expression "pbVar18[uVar9]" identifier [ identifier ])) ;) (expression_statement "pcVar12[-1] = (char)uVar11;" (assignment_expression "pcVar12[-1] = (char)uVar11" (subscript_expression "pcVar12[-1]" identifier [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "((int)(char)bVar1 != 0)" ( (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) != number_literal) )) ;) (expression_statement "uVar11 = uVar11 & 0xff;" (assignment_expression "uVar11 = uVar11 & 0xff" identifier = (binary_expression "uVar11 & 0xff" identifier & number_literal)) ;) (while_statement "while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }" while (parenthesized_expression "((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)))" ( (parenthesized_expression "(uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))" ( (comma_expression "uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) , (binary_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)" (binary_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + uVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + uVar11 * 2)" * (cast_expression "(ushort *)(iVar17 + uVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar11 * 2)" ( (binary_expression "iVar17 + uVar11 * 2" identifier + (binary_expression "uVar11 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(pcVar12 = pcVar7, uVar9 != 0)" ( (comma_expression "pcVar12 = pcVar7, uVar9 != 0" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) , (binary_expression "uVar9 != 0" identifier != number_literal)) )))) )) )) (compound_statement "{\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }" { (expression_statement "pcVar12 = pcVar7 + uVar9;" (assignment_expression "pcVar12 = pcVar7 + uVar9" identifier = (binary_expression "pcVar7 + uVar9" identifier + identifier)) ;) (expression_statement "uVar11 = (uint)(byte)pcVar12[-1];" (assignment_expression "uVar11 = (uint)(byte)pcVar12[-1]" identifier = (cast_expression "(uint)(byte)pcVar12[-1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar12[-1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar12[-1]" identifier [ number_literal ])))) ;) })) })) (expression_statement "iVar17 = *(int *)(param_2 + 0x54);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x54)" identifier = (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "*pcVar12 = '\0';" (assignment_expression "*pcVar12 = '\0'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }" if (parenthesized_expression "((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0))" ( (binary_expression "(iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)" (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)" ( (comma_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0" (assignment_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7)" identifier = (call_expression "(*(code *)PTR_strcmp_00033360)(pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" ( (pointer_expression "*(code *)PTR_strcmp_00033360" * (cast_expression "(code *)PTR_strcmp_00033360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }" { (expression_statement "local_34 = (int)*pcVar7;" (assignment_expression "local_34 = (int)*pcVar7" identifier = (cast_expression "(int)*pcVar7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar7" * identifier))) ;) (if_statement "if (local_34 == 0) goto LAB_0001789c;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001789c;" goto statement_identifier ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = local_34;" (assignment_expression "iVar17 = local_34" identifier = identifier) ;) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);" do (compound_statement "{\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              }" { (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = iVar13 + iVar17;" (assignment_expression "uVar9 = iVar13 + iVar17" identifier = (binary_expression "iVar13 + iVar17" identifier + identifier)) ;) (expression_statement "iVar17 = (int)*pcVar12;" (assignment_expression "iVar17 = (int)*pcVar12" identifier = (cast_expression "(int)*pcVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar12" * identifier))) ;) (expression_statement "iVar13 = uVar9 * 0x35;" (assignment_expression "iVar13 = uVar9 * 0x35" identifier = (binary_expression "uVar9 * 0x35" identifier * number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (if_statement "if (uVar16 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar9 = (uVar9 & 0x7fffffff) % uVar16;" (assignment_expression "uVar9 = (uVar9 & 0x7fffffff) % uVar16" identifier = (binary_expression "(uVar9 & 0x7fffffff) % uVar16" (parenthesized_expression "(uVar9 & 0x7fffffff)" ( (binary_expression "uVar9 & 0x7fffffff" identifier & number_literal) )) % identifier)) ;) (labeled_statement "LAB_00017808:\n              piVar8 = piVar4 + uVar9;" statement_identifier : (expression_statement "piVar8 = piVar4 + uVar9;" (assignment_expression "piVar8 = piVar4 + uVar9" identifier = (binary_expression "piVar4 + uVar9" identifier + identifier)) ;)) (while_statement "while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }" { (expression_statement "puVar14 = PTR_strlen_00033308;" (assignment_expression "puVar14 = PTR_strlen_00033308" identifier = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*piVar8 == 0) break;" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);" (assignment_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" identifier = (call_expression "(*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" ( (pointer_expression "*(code *)PTR_strcmp_00033360" * (cast_expression "(code *)PTR_strcmp_00033360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar8,pcVar7)" ( (pointer_expression "*piVar8" * identifier) , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }" { (expression_statement "*(uint *)(iVar6 + 0x34) = uVar9;" (assignment_expression "*(uint *)(iVar6 + 0x34) = uVar9" (pointer_expression "*(uint *)(iVar6 + 0x34)" * (cast_expression "(uint *)(iVar6 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000175cc;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 <= uVar9) goto LAB_0001789c;" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (goto_statement "goto LAB_0001789c;" goto statement_identifier ;)) })) (expression_statement "*(uint *)(iVar6 + 0x34) = uVar9;" (assignment_expression "*(uint *)(iVar6 + 0x34) = uVar9" (pointer_expression "*(uint *)(iVar6 + 0x34)" * (cast_expression "(uint *)(iVar6 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = (*(code *)puVar14)(pcVar7);" (assignment_expression "iVar17 = (*(code *)puVar14)(pcVar7)" identifier = (call_expression "(*(code *)puVar14)(pcVar7)" (parenthesized_expression "(*(code *)puVar14)" ( (pointer_expression "*(code *)puVar14" * (cast_expression "(code *)puVar14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);" (assignment_expression "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" ( (pointer_expression "*(code *)PTR_malloc_0003331c" * (cast_expression "(code *)PTR_malloc_0003331c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17 + 1)" ( (binary_expression "iVar17 + 1" identifier + number_literal) ))))) ;) (expression_statement "*piVar8 = (int)puVar10;" (assignment_expression "*piVar8 = (int)puVar10" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) break;" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }" { (expression_statement "*puVar10 = (char)local_34;" (assignment_expression "*puVar10 = (char)local_34" (pointer_expression "*puVar10" * identifier) = (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (local_34 == 0) break;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_34 = (int)pcVar12[1];" (assignment_expression "local_34 = (int)pcVar12[1]" identifier = (cast_expression "(int)pcVar12[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar12[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000175d0;" goto statement_identifier ;) })) })) (expression_statement "*(undefined4 *)(iVar6 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x34)" * (cast_expression "(undefined4 *)(iVar6 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);" statement_identifier : (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000175d0:\n          iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar17 <= iVar5) goto LAB_00017618;" if (parenthesized_expression "(iVar17 <= iVar5)" ( (binary_expression "iVar17 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_00017618;" goto statement_identifier ;)) (while_statement "while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }" { (expression_statement "iVar17 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);" (assignment_expression "iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x38) + iVar5 * 4)" ( (binary_expression "*(int *)(param_2 + 0x38) + iVar5 * 4" (pointer_expression "*(int *)(param_2 + 0x38)" * (cast_expression "(int *)(param_2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) + (binary_expression "iVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar17 != iVar6) break;" if (parenthesized_expression "(iVar17 != iVar6)" ( (binary_expression "iVar17 != iVar6" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000175fc:\n            iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "*(uint *)(iVar17 + 0x34) = uVar16 + 1;" (assignment_expression "*(uint *)(iVar17 + 0x34) = uVar16 + 1" (pointer_expression "*(uint *)(iVar17 + 0x34)" * (cast_expression "(uint *)(iVar17 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x34)" ( (binary_expression "iVar17 + 0x34" identifier + number_literal) )))) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;" if (parenthesized_expression "(*(int *)(param_2 + 0x18) <= iVar5)" ( (binary_expression "*(int *)(param_2 + 0x18) <= iVar5" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00017618;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) }))) })) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" ( (pointer_expression "*(code *)PTR_fwrite_0003332c" * (cast_expression "(code *)PTR_fwrite_0003332c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" ( (binary_expression "PTR_LAB_00033198 + 0x9b0" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_0003334c" * (cast_expression "(undefined4 *)PTR_stderr_0003334c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "(*(code *)PTR_exit_00033310)(1);" (call_expression "(*(code *)PTR_exit_00033310)(1)" (parenthesized_expression "(*(code *)PTR_exit_00033310)" ( (pointer_expression "*(code *)PTR_exit_00033310" * (cast_expression "(code *)PTR_exit_00033310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) (labeled_statement "LAB_0001789c:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00017808;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) % IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( BOOL )) ;) })) }))) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "void print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" (primitive_type "void") (function_declarator "print_stack_union(undefined4 param_1,int param_2,int *param_3,int param_4)" (identifier "print_stack_union") (parameter_list "(undefined4 param_1,int param_2,int *param_3,int param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  byte *pbVar18;\n  int local_34;\n  \n  iVar17 = *(int *)(param_2 + 0x18);\n  uVar16 = iVar17 * 2;\n  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);\n  if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }\n  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);\n  (*(code *)PTR_exit_00033310)(1);\n  return;\nLAB_0001789c:\n  uVar9 = 0;\n  goto LAB_00017808;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar16 = iVar17 * 2;" (assignment_expression "uVar16 = iVar17 * 2" (identifier "uVar16") (= "=") (binary_expression "iVar17 * 2" (identifier "iVar17") (* "*") (number_literal "2"))) (; ";")) (expression_statement "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR_calloc_000332b4)(uVar16,4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_calloc_000332b4)(uVar16,4)" (parenthesized_expression "(*(code *)PTR_calloc_000332b4)" (( "(") (pointer_expression "*(code *)PTR_calloc_000332b4" (* "*") (cast_expression "(code *)PTR_calloc_000332b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_calloc_000332b4"))) () ")")) (argument_list "(uVar16,4)" (( "(") (identifier "uVar16") (, ",") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }\n    if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }\n    if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }\n  }" ({ "{") (if_statement "if (0 < (int)uVar16) {\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }" (if "if") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n      piVar8 = piVar4;\n      do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);\n    }" ({ "{") (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" (identifier "piVar8") (= "=") (identifier "piVar4")) (; ";")) (do_statement "do {\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      } while (piVar4 + iVar17 * 2 != piVar8);" (do "do") (compound_statement "{\n        *piVar8 = 0;\n        piVar8 = piVar8 + 1;\n      }" ({ "{") (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar4 + iVar17 * 2 != piVar8)" (( "(") (binary_expression "piVar4 + iVar17 * 2 != piVar8" (binary_expression "piVar4 + iVar17 * 2" (identifier "piVar4") (+ "+") (binary_expression "iVar17 * 2" (identifier "iVar17") (* "*") (number_literal "2"))) (!= "!=") (identifier "piVar8")) () ")")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x58) == 0) {\n      iVar5 = 0;\n    }\n    else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x58) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x58) == 0" (pointer_expression "*(int *)(param_2 + 0x58)" (* "*") (cast_expression "(int *)(param_2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = 0;\n    }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" (else "else") (compound_statement "{\n      iVar5 = (*(code *)PTR_strlen_00033308)();\n    }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_strlen_00033308)();" (assignment_expression "iVar5 = (*(code *)PTR_strlen_00033308)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" (( "(") (pointer_expression "*(code *)PTR_strlen_00033308" (* "*") (cast_expression "(code *)PTR_strlen_00033308" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00033308"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar17 < 1) {\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }\n    else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" (if "if") (parenthesized_expression "(iVar17 < 1)" (( "(") (binary_expression "iVar17 < 1" (identifier "iVar17") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }\n    }" ({ "{") (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (identifier "pcVar7") (= "=") (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0003331c" (* "*") (cast_expression "(code *)PTR_malloc_0003331c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0003331c"))) () ")")) (argument_list "(iVar5 * 2 + 1)" (( "(") (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" (identifier "iVar5") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (pcVar7 != (char *)0x0) {\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }" (if "if") (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);\n        if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }\n        iVar5 = *param_3;\n        iVar17 = iVar5 + 1;\n        if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);\n        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);\n        if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }\nLAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);\n        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }\n        (*(code *)PTR_free_00033348)(pcVar7);\n        (*(code *)PTR_free_00033348)(piVar4);\n        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);\n        *param_3 = iVar17;\n        return;\n      }" ({ "{") (labeled_statement "LAB_00017618:\n        puVar14 = *(undefined **)(param_2 + 0x48);" (statement_identifier "LAB_00017618") (: ":") (expression_statement "puVar14 = *(undefined **)(param_2 + 0x48);" (assignment_expression "puVar14 = *(undefined **)(param_2 + 0x48)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined **)(param_2 + 0x48)" (* "*") (cast_expression "(undefined **)(param_2 + 0x48)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";"))) (if_statement "if (puVar14 == (undefined *)0x0) {\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }" (if "if") (parenthesized_expression "(puVar14 == (undefined *)0x0)" (( "(") (binary_expression "puVar14 == (undefined *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar14 = PTR_LAB_00033198 + 0x8ec;\n        }" ({ "{") (expression_statement "puVar14 = PTR_LAB_00033198 + 0x8ec;" (assignment_expression "puVar14 = PTR_LAB_00033198 + 0x8ec" (identifier "puVar14") (= "=") (binary_expression "PTR_LAB_00033198 + 0x8ec" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x8ec"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" (identifier "iVar5") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "iVar17 = iVar5 + 1;" (assignment_expression "iVar17 = iVar5 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_4 == 0) {\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }\n        else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n        }" ({ "{") (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_00033198 + 0x9d0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9d0")) (, ",") (identifier "puVar14") (, ",") (binary_expression "PTR_LAB_00033198 + 0x9e8" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9e8")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_00033198 + 0x9d0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9d0")) (, ",") (identifier "puVar14") (, ",") (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" (else "else") (compound_statement "{\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);\n          if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }\n          iVar17 = iVar5 + 3;\n          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);\n        }" ({ "{") (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" (( "(") (pointer_expression "*(code *)PTR_fwrite_0003332c" (* "*") (cast_expression "(code *)PTR_fwrite_0003332c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_0003332c"))) () ")")) (argument_list "(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1)" (( "(") (binary_expression "PTR_LAB_00033198 + 0x9c0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9c0")) (, ",") (number_literal "1") (, ",") (number_literal "0xe") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }\n          else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);\n          }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_00033198 + 0x9d0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9d0")) (, ",") (identifier "puVar14") (, ",") (binary_expression "PTR_LAB_00033198 + 0x9e8" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9e8")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));\n          }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54))" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_00033198 + 0x9d0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9d0")) (, ",") (identifier "puVar14") (, ",") (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar17 = iVar5 + 3;" (assignment_expression "iVar17 = iVar5 + 3" (identifier "iVar17") (= "=") (binary_expression "iVar5 + 3" (identifier "iVar5") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" (( "(") (pointer_expression "*(code *)PTR_fwrite_0003332c" (* "*") (cast_expression "(code *)PTR_fwrite_0003332c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_0003332c"))) () ")")) (argument_list "(PTR_LAB_00033198 + 0x9f0,1,7,param_1)" (( "(") (binary_expression "PTR_LAB_00033198 + 0x9f0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9f0")) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" (( "(") (pointer_expression "*(code *)PTR_fwrite_0003332c" (* "*") (cast_expression "(code *)PTR_fwrite_0003332c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_0003332c"))) () ")")) (argument_list "(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1)" (( "(") (binary_expression "PTR_LAB_00033198 + 0x9f8" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9f8")) (, ",") (number_literal "1") (, ",") (number_literal "0x10") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" (( "(") (pointer_expression "*(code *)PTR_fwrite_0003332c" (* "*") (cast_expression "(code *)PTR_fwrite_0003332c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_0003332c"))) () ")")) (argument_list "(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1)" (( "(") (binary_expression "PTR_LAB_00033198 + 0xa0c" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0xa0c")) (, ",") (number_literal "1") (, ",") (number_literal "0xe") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_00033198 + 0xa1c" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0xa1c")) (, ",") (identifier "puVar14") () ")"))) (; ";")) (if_statement "if ((int)uVar16 < 1) {\n          iVar17 = iVar17 + 4;\n        }\n        else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          iVar17 = iVar17 + 4;\n        }" ({ "{") (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" (else "else") (compound_statement "{\n          uVar9 = 0;\n          puVar14 = PTR_LAB_00033198 + 0xa30;\n          piVar8 = piVar4;\n          iVar5 = iVar17 + 3;\n          do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);\n        }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = PTR_LAB_00033198 + 0xa30;" (assignment_expression "puVar14 = PTR_LAB_00033198 + 0xa30" (identifier "puVar14") (= "=") (binary_expression "PTR_LAB_00033198 + 0xa30" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0xa30"))) (; ";")) (expression_statement "piVar8 = piVar4;" (assignment_expression "piVar8 = piVar4" (identifier "piVar8") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "iVar5 = iVar17 + 3;" (assignment_expression "iVar5 = iVar17 + 3" (identifier "iVar5") (= "=") (binary_expression "iVar17 + 3" (identifier "iVar17") (+ "+") (number_literal "3"))) (; ";")) (do_statement "do {\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          } while (uVar16 != uVar9);" (do "do") (compound_statement "{\n            while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }\n            piVar8 = piVar8 + 1;\n            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);\n            iVar17 = iVar5 + 2;\n            (*(code *)PTR_free_00033348)(iVar6);\n            iVar5 = iVar5 + 1;\n          }" ({ "{") (while_statement "while( true ) {\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              iVar6 = *piVar8;\n              uVar9 = uVar9 + 1;\n              if (iVar6 != 0) break;\n              piVar8 = piVar8 + 1;\n              iVar17 = iVar5 + 1;\n              if (uVar16 == uVar9) goto LAB_0001773c;\n            }" ({ "{") (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" (identifier "iVar6") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar6 != 0) break;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = iVar5 + 1;" (assignment_expression "iVar17 = iVar5 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 == uVar9) goto LAB_0001773c;" (if "if") (parenthesized_expression "(uVar16 == uVar9)" (( "(") (binary_expression "uVar16 == uVar9" (identifier "uVar16") (== "==") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_0001773c;" (goto "goto") (statement_identifier "LAB_0001773c") (; ";"))) (} "}"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,puVar14,iVar6,uVar9)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "puVar14") (, ",") (identifier "iVar6") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "iVar17 = iVar5 + 2;" (assignment_expression "iVar17 = iVar5 + 2" (identifier "iVar17") (= "=") (binary_expression "iVar5 + 2" (identifier "iVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "(*(code *)PTR_free_00033348)(iVar6);" (call_expression "(*(code *)PTR_free_00033348)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00033348)" (( "(") (pointer_expression "*(code *)PTR_free_00033348" (* "*") (cast_expression "(code *)PTR_free_00033348" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00033348"))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 != uVar9)" (( "(") (binary_expression "uVar16 != uVar9" (identifier "uVar16") (!= "!=") (identifier "uVar9")) () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_0001773c:\n        iVar5 = *(int *)(param_2 + 0x40);" (statement_identifier "LAB_0001773c") (: ":") (expression_statement "iVar5 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x40)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + 0x40)" (* "*") (cast_expression "(int *)(param_2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";"))) (if_statement "if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }" (if "if") (parenthesized_expression "((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0))" (( "(") (binary_expression "(iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar5 + 0x24) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x24) != 0" (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          iVar17 = iVar17 + 1;\n          (*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));\n        }" ({ "{") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));" (call_expression "(*(code *)PTR___fprintf_chk_000332cc)\n                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000332cc)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000332cc" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000332cc"))) () ")")) (argument_list "(param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34))" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_00033198 + 0xa3c" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0xa3c")) (, ",") (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_00033348)(pcVar7);" (call_expression "(*(code *)PTR_free_00033348)(pcVar7)" (parenthesized_expression "(*(code *)PTR_free_00033348)" (( "(") (pointer_expression "*(code *)PTR_free_00033348" (* "*") (cast_expression "(code *)PTR_free_00033348" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00033348"))) () ")")) (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_00033348)(piVar4);" (call_expression "(*(code *)PTR_free_00033348)(piVar4)" (parenthesized_expression "(*(code *)PTR_free_00033348)" (( "(") (pointer_expression "*(code *)PTR_free_00033348" (* "*") (cast_expression "(code *)PTR_free_00033348" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00033348"))) () ")")) (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" (( "(") (pointer_expression "*(code *)PTR_fwrite_0003332c" (* "*") (cast_expression "(code *)PTR_fwrite_0003332c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_0003332c"))) () ")")) (argument_list "(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1)" (( "(") (binary_expression "PTR_LAB_00033198 + 0xa4c" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0xa4c")) (, ",") (number_literal "1") (, ",") (number_literal "0xf") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "*param_3 = iVar17;" (assignment_expression "*param_3 = iVar17" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar17")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" (else "else") (compound_statement "{\n      piVar15 = *(int **)(param_2 + 0x38);\n      piVar8 = piVar15;\n      do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);\n      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);\n      if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }\n    }" ({ "{") (expression_statement "piVar15 = *(int **)(param_2 + 0x38);" (assignment_expression "piVar15 = *(int **)(param_2 + 0x38)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(param_2 + 0x38)" (* "*") (cast_expression "(int **)(param_2 + 0x38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "piVar8 = piVar15;" (assignment_expression "piVar8 = piVar15" (identifier "piVar8") (= "=") (identifier "piVar15")) (; ";")) (do_statement "do {\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      } while (piVar15 + iVar17 != piVar8);" (do "do") (compound_statement "{\n        if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }\n        piVar8 = piVar8 + 1;\n      }" ({ "{") (if_statement "if ((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {\n          iVar5 = iVar6;\n        }" (if "if") (parenthesized_expression "((*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6))" (( "(") (binary_expression "(*(int *)(*piVar8 + 0x30) != 0) &&\n           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" (parenthesized_expression "(*(int *)(*piVar8 + 0x30) != 0)" (( "(") (binary_expression "*(int *)(*piVar8 + 0x30) != 0" (pointer_expression "*(int *)(*piVar8 + 0x30)" (* "*") (cast_expression "(int *)(*piVar8 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar8 + 0x30)" (( "(") (binary_expression "*piVar8 + 0x30" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)" (( "(") (comma_expression "iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6" (assignment_expression "iVar6 = (*(code *)PTR_strlen_00033308)()" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_strlen_00033308)()" (parenthesized_expression "(*(code *)PTR_strlen_00033308)" (( "(") (pointer_expression "*(code *)PTR_strlen_00033308" (* "*") (cast_expression "(code *)PTR_strlen_00033308" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00033308"))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar5 < iVar6" (identifier "iVar5") (< "<") (identifier "iVar6"))) () ")"))) () ")")) (compound_statement "{\n          iVar5 = iVar6;\n        }" ({ "{") (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" (identifier "iVar5") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar15 + iVar17 != piVar8)" (( "(") (binary_expression "piVar15 + iVar17 != piVar8" (binary_expression "piVar15 + iVar17" (identifier "piVar15") (+ "+") (identifier "iVar17")) (!= "!=") (identifier "piVar8")) () ")")) (; ";")) (expression_statement "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (identifier "pcVar7") (= "=") (cast_expression "(char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0003331c" (* "*") (cast_expression "(code *)PTR_malloc_0003331c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0003331c"))) () ")")) (argument_list "(iVar5 * 2 + 1)" (( "(") (binary_expression "iVar5 * 2 + 1" (binary_expression "iVar5 * 2" (identifier "iVar5") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (pcVar7 != (char *)0x0) {\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }" (if "if") (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar17 = *(int *)(param_2 + 0x40);\n        iVar5 = 0;\n        iVar6 = *piVar15;\n        if (iVar17 == iVar6) goto LAB_000175fc;\n        do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );\n      }" ({ "{") (expression_statement "iVar17 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x40)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x40)" (* "*") (cast_expression "(int *)(param_2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = *piVar15;" (assignment_expression "iVar6 = *piVar15" (identifier "iVar6") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (if_statement "if (iVar17 == iVar6) goto LAB_000175fc;" (if "if") (parenthesized_expression "(iVar17 == iVar6)" (( "(") (binary_expression "iVar17 == iVar6" (identifier "iVar17") (== "==") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_000175fc;" (goto "goto") (statement_identifier "LAB_000175fc") (; ";"))) (do_statement "do {\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        } while( true );" (do "do") (compound_statement "{\n          if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }\n          *(undefined4 *)(iVar6 + 0x34) = 0;\nLAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);\nLAB_000175d0:\n          iVar5 = iVar5 + 1;\n          if (iVar17 <= iVar5) goto LAB_00017618;\n          while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }\n        }" ({ "{") (if_statement "if ((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }" (if "if") (parenthesized_expression "((*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0))))" (( "(") (binary_expression "(*(int *)(iVar6 + 8) == 1) &&\n             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))" (parenthesized_expression "(*(int *)(iVar6 + 8) == 1)" (( "(") (binary_expression "*(int *)(iVar6 + 8) == 1" (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))" (( "(") (parenthesized_expression "(pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0))" (( "(") (comma_expression "pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (assignment_expression "pbVar18 = *(byte **)(iVar6 + 0x30)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(iVar6 + 0x30)" (* "*") (cast_expression "(byte **)(iVar6 + 0x30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x30)" (( "(") (binary_expression "iVar6 + 0x30" (identifier "iVar6") (+ "+") (number_literal "0x30")) () ")"))))) (, ",") (binary_expression "pbVar18 != (byte *)0x0 ||\n              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (binary_expression "pbVar18 != (byte *)0x0" (identifier "pbVar18") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)" (( "(") (comma_expression "pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x58)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(param_2 + 0x58)" (* "*") (cast_expression "(byte **)(param_2 + 0x58)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) (, ",") (binary_expression "pbVar18 != (byte *)0x0" (identifier "pbVar18") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();\n            iVar17 = *piVar8;\n            while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }\n            uVar3 = (int)(char)bVar1;\n            pcVar12 = pcVar7;\n            if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }\n            iVar17 = *(int *)(param_2 + 0x54);\n            *pcVar12 = '\0';\n            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }\n          }" ({ "{") (expression_statement "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)()" (identifier "piVar8") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000332b8)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_000332b8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000332b8)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_000332b8" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_000332b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_000332b8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar17 = *piVar8;" (assignment_expression "iVar17 = *piVar8" (identifier "iVar17") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (while_statement "while( true ) {\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              bVar1 = *pbVar18;\n              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);\n              uVar9 = uVar2 & 0x20;\n              if ((uVar2 & 0x20) == 0) break;\n              pbVar18 = pbVar18 + 1;\n            }" ({ "{") (expression_statement "bVar1 = *pbVar18;" (assignment_expression "bVar1 = *pbVar18" (identifier "bVar1") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" (( "(") (binary_expression "iVar17 + (uint)bVar1 * 2" (identifier "iVar17") (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "uVar9 = uVar2 & 0x20;" (assignment_expression "uVar9 = uVar2 & 0x20" (identifier "uVar9") (= "=") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20"))) (; ";")) (if_statement "if ((uVar2 & 0x20) == 0) break;" (if "if") (parenthesized_expression "((uVar2 & 0x20) == 0)" (( "(") (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" (( "(") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" (identifier "uVar3") (= "=") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")))) (; ";")) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" (identifier "pcVar12") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if ((int)(char)bVar1 != 0) {\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }" (if "if") (parenthesized_expression "((int)(char)bVar1 != 0)" (( "(") (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);\n              uVar11 = uVar11 & 0xff;\n              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }\n            }" ({ "{") (do_statement "do {\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              } while ((int)(char)bVar1 != 0);" (do "do") (compound_statement "{\n                uVar11 = uVar3;\n                uVar9 = uVar9 + 1;\n                pcVar12 = pcVar7 + uVar9;\n                bVar1 = pbVar18[uVar9];\n                pcVar12[-1] = (char)uVar11;\n                uVar3 = (int)(char)bVar1;\n              }" ({ "{") (expression_statement "uVar11 = uVar3;" (assignment_expression "uVar11 = uVar3" (identifier "uVar11") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar12 = pcVar7 + uVar9;" (assignment_expression "pcVar12 = pcVar7 + uVar9" (identifier "pcVar12") (= "=") (binary_expression "pcVar7 + uVar9" (identifier "pcVar7") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "bVar1 = pbVar18[uVar9];" (assignment_expression "bVar1 = pbVar18[uVar9]" (identifier "bVar1") (= "=") (subscript_expression "pbVar18[uVar9]" (identifier "pbVar18") ([ "[") (identifier "uVar9") (] "]"))) (; ";")) (expression_statement "pcVar12[-1] = (char)uVar11;" (assignment_expression "pcVar12[-1] = (char)uVar11" (subscript_expression "pcVar12[-1]" (identifier "pcVar12") ([ "[") (number_literal "-1") (] "]")) (= "=") (cast_expression "(char)uVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "uVar3 = (int)(char)bVar1;" (assignment_expression "uVar3 = (int)(char)bVar1" (identifier "uVar3") (= "=") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)(char)bVar1 != 0)" (( "(") (binary_expression "(int)(char)bVar1 != 0" (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar11 = uVar11 & 0xff;" (assignment_expression "uVar11 = uVar11 & 0xff" (identifier "uVar11") (= "=") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff"))) (; ";")) (while_statement "while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))) {\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }" (while "while") (parenthesized_expression "((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)))" (( "(") (parenthesized_expression "(uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0))" (( "(") (comma_expression "uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (, ",") (binary_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&\n                     (pcVar12 = pcVar7, uVar9 != 0)" (binary_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + uVar11 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(iVar17 + uVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + uVar11 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + uVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + uVar11 * 2)" (( "(") (binary_expression "iVar17 + uVar11 * 2" (identifier "iVar17") (+ "+") (binary_expression "uVar11 * 2" (identifier "uVar11") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pcVar12 = pcVar7, uVar9 != 0)" (( "(") (comma_expression "pcVar12 = pcVar7, uVar9 != 0" (assignment_expression "pcVar12 = pcVar7" (identifier "pcVar12") (= "=") (identifier "pcVar7")) (, ",") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")")) (compound_statement "{\n                pcVar12 = pcVar7 + uVar9;\n                uVar11 = (uint)(byte)pcVar12[-1];\n              }" ({ "{") (expression_statement "pcVar12 = pcVar7 + uVar9;" (assignment_expression "pcVar12 = pcVar7 + uVar9" (identifier "pcVar12") (= "=") (binary_expression "pcVar7 + uVar9" (identifier "pcVar7") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "uVar11 = (uint)(byte)pcVar12[-1];" (assignment_expression "uVar11 = (uint)(byte)pcVar12[-1]" (identifier "uVar11") (= "=") (cast_expression "(uint)(byte)pcVar12[-1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar12[-1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar12[-1]" (identifier "pcVar12") ([ "[") (number_literal "-1") (] "]"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar17 = *(int *)(param_2 + 0x54);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x54)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "*pcVar12 = '\0';" (assignment_expression "*pcVar12 = '\0'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }" (if "if") (parenthesized_expression "((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0))" (( "(") (binary_expression "(iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)" (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)" (( "(") (comma_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0" (assignment_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_strcmp_00033360)(pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" (( "(") (pointer_expression "*(code *)PTR_strcmp_00033360" (* "*") (cast_expression "(code *)PTR_strcmp_00033360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_00033360"))) () ")")) (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (, ",") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              local_34 = (int)*pcVar7;\n              if (local_34 == 0) goto LAB_0001789c;\n              iVar13 = 0;\n              iVar17 = local_34;\n              pcVar12 = pcVar7;\n              do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);\n              if (uVar16 == 0) {\n                trap(7);\n              }\n              uVar9 = (uVar9 & 0x7fffffff) % uVar16;\nLAB_00017808:\n              piVar8 = piVar4 + uVar9;\n              while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }\n              *(uint *)(iVar6 + 0x34) = uVar9;\n              iVar17 = (*(code *)puVar14)(pcVar7);\n              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);\n              *piVar8 = (int)puVar10;\n              pcVar12 = pcVar7;\n              if (puVar10 == (undefined1 *)0x0) break;\n              while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }\n              iVar17 = *(int *)(param_2 + 0x18);\n              goto LAB_000175d0;\n            }" ({ "{") (expression_statement "local_34 = (int)*pcVar7;" (assignment_expression "local_34 = (int)*pcVar7" (identifier "local_34") (= "=") (cast_expression "(int)*pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")))) (; ";")) (if_statement "if (local_34 == 0) goto LAB_0001789c;" (if "if") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001789c;" (goto "goto") (statement_identifier "LAB_0001789c") (; ";"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = local_34;" (assignment_expression "iVar17 = local_34" (identifier "iVar17") (= "=") (identifier "local_34")) (; ";")) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" (identifier "pcVar12") (= "=") (identifier "pcVar7")) (; ";")) (do_statement "do {\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              } while (iVar17 != 0);" (do "do") (compound_statement "{\n                pcVar12 = pcVar12 + 1;\n                uVar9 = iVar13 + iVar17;\n                iVar17 = (int)*pcVar12;\n                iVar13 = uVar9 * 0x35;\n              }" ({ "{") (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" (identifier "pcVar12") (= "=") (binary_expression "pcVar12 + 1" (identifier "pcVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = iVar13 + iVar17;" (assignment_expression "uVar9 = iVar13 + iVar17" (identifier "uVar9") (= "=") (binary_expression "iVar13 + iVar17" (identifier "iVar13") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar17 = (int)*pcVar12;" (assignment_expression "iVar17 = (int)*pcVar12" (identifier "iVar17") (= "=") (cast_expression "(int)*pcVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")))) (; ";")) (expression_statement "iVar13 = uVar9 * 0x35;" (assignment_expression "iVar13 = uVar9 * 0x35" (identifier "iVar13") (= "=") (binary_expression "uVar9 * 0x35" (identifier "uVar9") (* "*") (number_literal "0x35"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (uVar16 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = (uVar9 & 0x7fffffff) % uVar16;" (assignment_expression "uVar9 = (uVar9 & 0x7fffffff) % uVar16" (identifier "uVar9") (= "=") (binary_expression "(uVar9 & 0x7fffffff) % uVar16" (parenthesized_expression "(uVar9 & 0x7fffffff)" (( "(") (binary_expression "uVar9 & 0x7fffffff" (identifier "uVar9") (& "&") (number_literal "0x7fffffff")) () ")")) (% "%") (identifier "uVar16"))) (; ";")) (labeled_statement "LAB_00017808:\n              piVar8 = piVar4 + uVar9;" (statement_identifier "LAB_00017808") (: ":") (expression_statement "piVar8 = piVar4 + uVar9;" (assignment_expression "piVar8 = piVar4 + uVar9" (identifier "piVar8") (= "=") (binary_expression "piVar4 + uVar9" (identifier "piVar4") (+ "+") (identifier "uVar9"))) (; ";"))) (while_statement "while( true ) {\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                puVar14 = PTR_strlen_00033308;\n                uVar9 = uVar9 + 1;\n                if (*piVar8 == 0) break;\n                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);\n                if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }\n                piVar8 = piVar8 + 1;\n                if (uVar16 <= uVar9) goto LAB_0001789c;\n              }" ({ "{") (expression_statement "puVar14 = PTR_strlen_00033308;" (assignment_expression "puVar14 = PTR_strlen_00033308" (identifier "puVar14") (= "=") (identifier "PTR_strlen_00033308")) (; ";")) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*piVar8 == 0) break;" (if "if") (parenthesized_expression "(*piVar8 == 0)" (( "(") (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);" (assignment_expression "iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7)" (parenthesized_expression "(*(code *)PTR_strcmp_00033360)" (( "(") (pointer_expression "*(code *)PTR_strcmp_00033360" (* "*") (cast_expression "(code *)PTR_strcmp_00033360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_00033360"))) () ")")) (argument_list "(*piVar8,pcVar7)" (( "(") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (, ",") (identifier "pcVar7") () ")")))) (; ";")) (if_statement "if (iVar17 == 0) {\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  *(uint *)(iVar6 + 0x34) = uVar9;\n                  goto LAB_000175cc;\n                }" ({ "{") (expression_statement "*(uint *)(iVar6 + 0x34) = uVar9;" (assignment_expression "*(uint *)(iVar6 + 0x34) = uVar9" (pointer_expression "*(uint *)(iVar6 + 0x34)" (* "*") (cast_expression "(uint *)(iVar6 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x34)" (( "(") (binary_expression "iVar6 + 0x34" (identifier "iVar6") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (goto_statement "goto LAB_000175cc;" (goto "goto") (statement_identifier "LAB_000175cc") (; ";")) (} "}"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 <= uVar9) goto LAB_0001789c;" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_0001789c;" (goto "goto") (statement_identifier "LAB_0001789c") (; ";"))) (} "}"))) (expression_statement "*(uint *)(iVar6 + 0x34) = uVar9;" (assignment_expression "*(uint *)(iVar6 + 0x34) = uVar9" (pointer_expression "*(uint *)(iVar6 + 0x34)" (* "*") (cast_expression "(uint *)(iVar6 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x34)" (( "(") (binary_expression "iVar6 + 0x34" (identifier "iVar6") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "iVar17 = (*(code *)puVar14)(pcVar7);" (assignment_expression "iVar17 = (*(code *)puVar14)(pcVar7)" (identifier "iVar17") (= "=") (call_expression "(*(code *)puVar14)(pcVar7)" (parenthesized_expression "(*(code *)puVar14)" (( "(") (pointer_expression "*(code *)puVar14" (* "*") (cast_expression "(code *)puVar14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) () ")")) (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (expression_statement "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);" (assignment_expression "puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" (identifier "puVar10") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0003331c)(iVar17 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0003331c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0003331c" (* "*") (cast_expression "(code *)PTR_malloc_0003331c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0003331c"))) () ")")) (argument_list "(iVar17 + 1)" (( "(") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "*piVar8 = (int)puVar10;" (assignment_expression "*piVar8 = (int)puVar10" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "pcVar12 = pcVar7;" (assignment_expression "pcVar12 = pcVar7" (identifier "pcVar12") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if (puVar10 == (undefined1 *)0x0) break;" (if "if") (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 == (undefined1 *)0x0" (identifier "puVar10") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (while_statement "while( true ) {\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                *puVar10 = (char)local_34;\n                if (local_34 == 0) break;\n                local_34 = (int)pcVar12[1];\n                puVar10 = puVar10 + 1;\n                pcVar12 = pcVar12 + 1;\n              }" ({ "{") (expression_statement "*puVar10 = (char)local_34;" (assignment_expression "*puVar10 = (char)local_34" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (cast_expression "(char)local_34" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_34"))) (; ";")) (if_statement "if (local_34 == 0) break;" (if "if") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_34 = (int)pcVar12[1];" (assignment_expression "local_34 = (int)pcVar12[1]" (identifier "local_34") (= "=") (cast_expression "(int)pcVar12[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" (identifier "pcVar12") (= "=") (binary_expression "pcVar12 + 1" (identifier "pcVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (goto_statement "goto LAB_000175d0;" (goto "goto") (statement_identifier "LAB_000175d0") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(undefined4 *)(iVar6 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x34)" (( "(") (binary_expression "iVar6 + 0x34" (identifier "iVar6") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000175cc:\n          iVar17 = *(int *)(param_2 + 0x18);" (statement_identifier "LAB_000175cc") (: ":") (expression_statement "iVar17 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x18)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (labeled_statement "LAB_000175d0:\n          iVar5 = iVar5 + 1;" (statement_identifier "LAB_000175d0") (: ":") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (iVar17 <= iVar5) goto LAB_00017618;" (if "if") (parenthesized_expression "(iVar17 <= iVar5)" (( "(") (binary_expression "iVar17 <= iVar5" (identifier "iVar17") (<= "<=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_00017618;" (goto "goto") (statement_identifier "LAB_00017618") (; ";"))) (while_statement "while( true ) {\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            iVar17 = *(int *)(param_2 + 0x40);\n            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);\n            if (iVar17 != iVar6) break;\nLAB_000175fc:\n            iVar5 = iVar5 + 1;\n            *(uint *)(iVar17 + 0x34) = uVar16 + 1;\n            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;\n          }" ({ "{") (expression_statement "iVar17 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x40)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x40)" (* "*") (cast_expression "(int *)(param_2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);" (assignment_expression "iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x38) + iVar5 * 4)" (( "(") (binary_expression "*(int *)(param_2 + 0x38) + iVar5 * 4" (pointer_expression "*(int *)(param_2 + 0x38)" (* "*") (cast_expression "(int *)(param_2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "iVar5 * 4" (identifier "iVar5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar17 != iVar6) break;" (if "if") (parenthesized_expression "(iVar17 != iVar6)" (( "(") (binary_expression "iVar17 != iVar6" (identifier "iVar17") (!= "!=") (identifier "iVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000175fc:\n            iVar5 = iVar5 + 1;" (statement_identifier "LAB_000175fc") (: ":") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*(uint *)(iVar17 + 0x34) = uVar16 + 1;" (assignment_expression "*(uint *)(iVar17 + 0x34) = uVar16 + 1" (pointer_expression "*(uint *)(iVar17 + 0x34)" (* "*") (cast_expression "(uint *)(iVar17 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x34)" (( "(") (binary_expression "iVar17 + 0x34" (identifier "iVar17") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x18) <= iVar5)" (( "(") (binary_expression "*(int *)(param_2 + 0x18) <= iVar5" (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_00017618;" (goto "goto") (statement_identifier "LAB_00017618") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);" (call_expression "(*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" (parenthesized_expression "(*(code *)PTR_fwrite_0003332c)" (( "(") (pointer_expression "*(code *)PTR_fwrite_0003332c" (* "*") (cast_expression "(code *)PTR_fwrite_0003332c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_0003332c"))) () ")")) (argument_list "(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c)" (( "(") (binary_expression "PTR_LAB_00033198 + 0x9b0" (identifier "PTR_LAB_00033198") (+ "+") (number_literal "0x9b0")) (, ",") (number_literal "1") (, ",") (number_literal "0xf") (, ",") (pointer_expression "*(undefined4 *)PTR_stderr_0003334c" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0003334c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0003334c"))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_exit_00033310)(1);" (call_expression "(*(code *)PTR_exit_00033310)(1)" (parenthesized_expression "(*(code *)PTR_exit_00033310)" (( "(") (pointer_expression "*(code *)PTR_exit_00033310" (* "*") (cast_expression "(code *)PTR_exit_00033310" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_exit_00033310"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (labeled_statement "LAB_0001789c:\n  uVar9 = 0;" (statement_identifier "LAB_0001789c") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00017808;" (goto "goto") (statement_identifier "LAB_00017808") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (pointer_declarator 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)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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 (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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 (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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)))) (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: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (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: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) right: (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)) value: (pointer_expression argument: (identifier))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (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: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (number_literal))))) right: (identifier))) (goto_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: (identifier))) consequence: (goto_statement label: (statement_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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (break_statement)) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_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: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (identifier))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (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: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) condition: (parenthesized_expression (true)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))) (return_statement) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))))

void MASKED(undefined4 param_1,int param_2,int *param_3,int param_4)

{
  byte bVar1;
  ushort uVar2;
  uint uVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  char *pcVar7;
  int *piVar8;
  uint uVar9;
  undefined1 *puVar10;
  uint uVar11;
  char *pcVar12;
  int iVar13;
  undefined *puVar14;
  int *piVar15;
  uint uVar16;
  int iVar17;
  byte *pbVar18;
  int local_34;
  
  iVar17 = *(int *)(param_2 + 0x18);
  uVar16 = iVar17 * 2;
  piVar4 = (int *)(*(code *)PTR_calloc_000332b4)(uVar16,4);
  if (piVar4 != (int *)0x0) {
    if (0 < (int)uVar16) {
      piVar8 = piVar4;
      do {
        *piVar8 = 0;
        piVar8 = piVar8 + 1;
      } while (piVar4 + iVar17 * 2 != piVar8);
    }
    if (*(int *)(param_2 + 0x58) == 0) {
      iVar5 = 0;
    }
    else {
      iVar5 = (*(code *)PTR_strlen_00033308)();
    }
    if (iVar17 < 1) {
      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);
      if (pcVar7 != (char *)0x0) {
LAB_00017618:
        puVar14 = *(undefined **)(param_2 + 0x48);
        if (puVar14 == (undefined *)0x0) {
          puVar14 = PTR_LAB_00033198 + 0x8ec;
        }
        iVar5 = *param_3;
        iVar17 = iVar5 + 1;
        if (param_4 == 0) {
          if (*(int *)(param_2 + 0x54) == 0) {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);
          }
          else {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));
          }
        }
        else {
          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9c0,1,0xe,param_1);
          if (*(int *)(param_2 + 0x54) == 0) {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,PTR_LAB_00033198 + 0x9e8);
          }
          else {
            (*(code *)PTR___fprintf_chk_000332cc)
                      (param_1,1,PTR_LAB_00033198 + 0x9d0,puVar14,*(int *)(param_2 + 0x54));
          }
          iVar17 = iVar5 + 3;
          (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f0,1,7,param_1);
        }
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9f8,1,0x10,param_1);
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa0c,1,0xe,param_1);
        (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,PTR_LAB_00033198 + 0xa1c,puVar14);
        if ((int)uVar16 < 1) {
          iVar17 = iVar17 + 4;
        }
        else {
          uVar9 = 0;
          puVar14 = PTR_LAB_00033198 + 0xa30;
          piVar8 = piVar4;
          iVar5 = iVar17 + 3;
          do {
            while( true ) {
              iVar6 = *piVar8;
              uVar9 = uVar9 + 1;
              if (iVar6 != 0) break;
              piVar8 = piVar8 + 1;
              iVar17 = iVar5 + 1;
              if (uVar16 == uVar9) goto LAB_0001773c;
            }
            piVar8 = piVar8 + 1;
            (*(code *)PTR___fprintf_chk_000332cc)(param_1,1,puVar14,iVar6,uVar9);
            iVar17 = iVar5 + 2;
            (*(code *)PTR_free_00033348)(iVar6);
            iVar5 = iVar5 + 1;
          } while (uVar16 != uVar9);
        }
LAB_0001773c:
        iVar5 = *(int *)(param_2 + 0x40);
        if ((iVar5 != 0) && (*(int *)(iVar5 + 0x24) != 0)) {
          iVar17 = iVar17 + 1;
          (*(code *)PTR___fprintf_chk_000332cc)
                    (param_1,1,PTR_LAB_00033198 + 0xa3c,*(undefined4 *)(iVar5 + 0x34));
        }
        (*(code *)PTR_free_00033348)(pcVar7);
        (*(code *)PTR_free_00033348)(piVar4);
        (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0xa4c,1,0xf,param_1);
        *param_3 = iVar17;
        return;
      }
    }
    else {
      piVar15 = *(int **)(param_2 + 0x38);
      piVar8 = piVar15;
      do {
        if ((*(int *)(*piVar8 + 0x30) != 0) &&
           (iVar6 = (*(code *)PTR_strlen_00033308)(), iVar5 < iVar6)) {
          iVar5 = iVar6;
        }
        piVar8 = piVar8 + 1;
      } while (piVar15 + iVar17 != piVar8);
      pcVar7 = (char *)(*(code *)PTR_malloc_0003331c)(iVar5 * 2 + 1);
      if (pcVar7 != (char *)0x0) {
        iVar17 = *(int *)(param_2 + 0x40);
        iVar5 = 0;
        iVar6 = *piVar15;
        if (iVar17 == iVar6) goto LAB_000175fc;
        do {
          if ((*(int *)(iVar6 + 8) == 1) &&
             ((pbVar18 = *(byte **)(iVar6 + 0x30), pbVar18 != (byte *)0x0 ||
              (pbVar18 = *(byte **)(param_2 + 0x58), pbVar18 != (byte *)0x0)))) {
            piVar8 = (int *)(*(code *)PTR___ctype_b_loc_000332b8)();
            iVar17 = *piVar8;
            while( true ) {
              bVar1 = *pbVar18;
              uVar2 = *(ushort *)(iVar17 + (uint)bVar1 * 2);
              uVar9 = uVar2 & 0x20;
              if ((uVar2 & 0x20) == 0) break;
              pbVar18 = pbVar18 + 1;
            }
            uVar3 = (int)(char)bVar1;
            pcVar12 = pcVar7;
            if ((int)(char)bVar1 != 0) {
              do {
                uVar11 = uVar3;
                uVar9 = uVar9 + 1;
                pcVar12 = pcVar7 + uVar9;
                bVar1 = pbVar18[uVar9];
                pcVar12[-1] = (char)uVar11;
                uVar3 = (int)(char)bVar1;
              } while ((int)(char)bVar1 != 0);
              uVar11 = uVar11 & 0xff;
              while ((uVar9 = uVar9 - 1, (*(ushort *)(iVar17 + uVar11 * 2) & 0x20) != 0 &&
                     (pcVar12 = pcVar7, uVar9 != 0))) {
                pcVar12 = pcVar7 + uVar9;
                uVar11 = (uint)(byte)pcVar12[-1];
              }
            }
            iVar17 = *(int *)(param_2 + 0x54);
            *pcVar12 = '\0';
            if ((iVar17 == 0) || (iVar17 = (*(code *)PTR_strcmp_00033360)(pcVar7), iVar17 != 0)) {
              local_34 = (int)*pcVar7;
              if (local_34 == 0) goto LAB_0001789c;
              iVar13 = 0;
              iVar17 = local_34;
              pcVar12 = pcVar7;
              do {
                pcVar12 = pcVar12 + 1;
                uVar9 = iVar13 + iVar17;
                iVar17 = (int)*pcVar12;
                iVar13 = uVar9 * 0x35;
              } while (iVar17 != 0);
              if (uVar16 == 0) {
                trap(7);
              }
              uVar9 = (uVar9 & 0x7fffffff) % uVar16;
LAB_00017808:
              piVar8 = piVar4 + uVar9;
              while( true ) {
                puVar14 = PTR_strlen_00033308;
                uVar9 = uVar9 + 1;
                if (*piVar8 == 0) break;
                iVar17 = (*(code *)PTR_strcmp_00033360)(*piVar8,pcVar7);
                if (iVar17 == 0) {
                  *(uint *)(iVar6 + 0x34) = uVar9;
                  goto LAB_000175cc;
                }
                piVar8 = piVar8 + 1;
                if (uVar16 <= uVar9) goto LAB_0001789c;
              }
              *(uint *)(iVar6 + 0x34) = uVar9;
              iVar17 = (*(code *)puVar14)(pcVar7);
              puVar10 = (undefined1 *)(*(code *)PTR_malloc_0003331c)(iVar17 + 1);
              *piVar8 = (int)puVar10;
              pcVar12 = pcVar7;
              if (puVar10 == (undefined1 *)0x0) break;
              while( true ) {
                *puVar10 = (char)local_34;
                if (local_34 == 0) break;
                local_34 = (int)pcVar12[1];
                puVar10 = puVar10 + 1;
                pcVar12 = pcVar12 + 1;
              }
              iVar17 = *(int *)(param_2 + 0x18);
              goto LAB_000175d0;
            }
          }
          *(undefined4 *)(iVar6 + 0x34) = 0;
LAB_000175cc:
          iVar17 = *(int *)(param_2 + 0x18);
LAB_000175d0:
          iVar5 = iVar5 + 1;
          if (iVar17 <= iVar5) goto LAB_00017618;
          while( true ) {
            iVar17 = *(int *)(param_2 + 0x40);
            iVar6 = *(int *)(*(int *)(param_2 + 0x38) + iVar5 * 4);
            if (iVar17 != iVar6) break;
LAB_000175fc:
            iVar5 = iVar5 + 1;
            *(uint *)(iVar17 + 0x34) = uVar16 + 1;
            if (*(int *)(param_2 + 0x18) <= iVar5) goto LAB_00017618;
          }
        } while( true );
      }
    }
  }
  (*(code *)PTR_fwrite_0003332c)(PTR_LAB_00033198 + 0x9b0,1,0xf,*(undefined4 *)PTR_stderr_0003334c);
  (*(code *)PTR_exit_00033310)(1);
  return;
LAB_0001789c:
  uVar9 = 0;
  goto LAB_00017808;
}

