
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

void cpio_o(void)

{
}



undefined4 FUN_00078837(void)

{
  char cVar1;
  int *piVar2;
  char *pcVar3;
  undefined4 uVar4;
  size_t sVar5;
  undefined4 *puVar6;
  int iVar7;
  uint uVar8;
  undefined4 extraout_ECX;
  undefined4 uVar9;
  undefined4 extraout_EDX;
  undefined1 *puVar10;
  int unaff_EBP;
  undefined4 *puVar11;
  uint uVar12;
  int iVar13;
  undefined4 *puVar14;
  int in_GS_OFFSET;
  byte bVar15;
  int aiStack_120 [17];
  undefined1 auStack_dc [4];
  int local_d8 [11];
  uint *local_ac [3];
  int local_a0;
  undefined4 local_9c;
  int local_98;
  uint local_94 [5];
  uint local_80 [4];
  uint local_70 [4];
  uint local_60 [10];
  int local_38 [10];
  
  bVar15 = 0;
  puVar10 = auStack_dc;
  FUN_00027c59();
  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);
  local_d8[3] = 0;
  local_d8[4] = 0;
  local_d8[2] = 0;
  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);
  local_ac[0] = local_80;
  local_98 = unaff_EBP + 0x5d4a0;
  local_a0 = unaff_EBP + 0x63ab2;
LAB_00078899:
  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;
  *(undefined4 *)(puVar10 + -4) = 0x788b3;
  uVar4 = FUN_000b1878();
  *(undefined4 *)(puVar10 + 8) = uVar4;
  iVar7 = *(int *)(puVar10 + 8);
  if (iVar7 != 0) goto LAB_00078bcb;
LAB_000788c3:
  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;
  do {
    puVar6 = *(undefined4 **)(puVar10 + 0xc);
    if (puVar6 == (undefined4 *)0x0) {
      puVar6 = *(undefined4 **)(puVar10 + 0x30);
      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {
        *puVar6 = 0;
        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;
      }
      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;
      uVar4 = 0;
      *(undefined4 *)(puVar10 + 0x18) = 0;
      *(undefined4 *)(puVar10 + 0x1c) = 0;
      *(undefined4 *)(puVar10 + 0x20) = 0;
      *(undefined4 *)(puVar10 + 0x24) = 0;
      *(undefined4 *)(puVar10 + 0x34) = 0;
      *(undefined4 *)(puVar10 + 0x28) = 0;
      *(undefined4 *)(puVar10 + 0x2c) = 0;
      uVar12 = 0;
      uVar9 = 0;
      uVar8 = 0;
    }
    else {
      puVar11 = puVar6 + 2;
      puVar14 = *(undefined4 **)(puVar10 + 0x30);
      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {
        *puVar14 = *puVar11;
        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;
        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;
      }
      piVar2 = (int *)puVar6[1];
      *(int **)(puVar10 + 4) = piVar2 + 1;
      iVar7 = *piVar2;
      puVar6[1] = iVar7;
      if (iVar7 == 0) {
        *(undefined4 *)(puVar10 + 0xc) = *puVar6;
        uVar4 = *(undefined4 *)(puVar10 + 0x88);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) =
             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
      }
      else {
        *(undefined4 *)(puVar10 + 0x88) = 0;
        *(undefined4 *)(puVar10 + 0x8c) = 0;
        uVar8 = *(uint *)(puVar10 + 0x5c);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |
                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
        uVar4 = 0;
      }
    }
    while( true ) {
      *(undefined4 *)(puVar10 + 0x4c) = uVar9;
      *(uint *)(puVar10 + 0x48) = uVar8;
      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);
      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;
      sVar5 = strlen(*(char **)(puVar10 + -0x10));
      *(undefined4 *)(puVar10 + -4) = 0;
      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);
      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;
      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);
      *(uint *)(puVar10 + -0x14) = uVar12;
      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);
      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);
      *(undefined4 *)(puVar10 + -0x20) = uVar4;
      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);
      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);
      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);
      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);
      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);
      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);
      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);
      *(undefined4 *)(puVar10 + -0x40) = 1;
      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;
      uVar12 = __printf_chk();
      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);
      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +
               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));
      uVar12 = -uVar8 & 3;
      iVar7 = uVar12 - 1;
      if (iVar7 != -1) {
        *(uint *)(puVar10 + 0x10) = uVar8;
        *(int *)(puVar10 + 0x14) = iVar13;
        do {
          *(undefined4 *)(puVar10 + -4) = 0x78a56;
          FUN_0001a728();
          iVar7 = iVar7 + -1;
        } while (iVar7 != -1);
        uVar8 = *(uint *)(puVar10 + 0x10);
        iVar13 = *(int *)(puVar10 + 0x14);
      }
      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;
      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);
      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;
      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {
        *(undefined4 *)(puVar10 + -4) = 0x78b32;
        uVar4 = FUN_0001a413();
        *(undefined4 *)(puVar10 + -4) = 0x78b39;
        FUN_0001a70d();
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);
        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);
        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;
        FUN_0001b31a();
        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);
        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +
                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));
        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;
        *(undefined4 *)(puVar10 + -0x18) = uVar4;
        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;
        close(*(int *)(puVar10 + -0x18));
        puVar10 = puVar10 + -8;
        goto LAB_00078b78;
      }
      *(undefined4 *)(puVar10 + -4) = 0x78aa4;
      iVar7 = FUN_0001af4a();
      if (iVar7 != 0) break;
      do {
        while( true ) {
          *(undefined4 *)(puVar10 + -4) = 0x78ab5;
          FUN_00019026();
LAB_00078ab5:
          *(undefined4 *)(puVar10 + -4) = 0x78aba;
          uVar4 = FUN_000b19ee();
          *(undefined4 *)(puVar10 + 8) = uVar4;
          iVar7 = *(int *)(puVar10 + 8);
          if (iVar7 == 0) goto LAB_000788c3;
LAB_00078bcb:
          pcVar3 = *(char **)(puVar10 + 8);
          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);
          if (*pcVar3 != '.') break;
          if (pcVar3[1] != '/') {
            *(char **)(puVar10 + 4) = pcVar3;
            goto LAB_00078d36;
          }
          *(char **)(puVar10 + 4) = pcVar3;
          do {
            do {
              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;
              cVar1 = **(char **)(puVar10 + 4);
              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);
            } while (cVar1 == '/');
            if (cVar1 != '.') goto LAB_00078bdd;
          } while ((*(char **)(puVar10 + 4))[1] == '/');
          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;
LAB_00078d43:
          *(undefined4 *)(puVar10 + -4) = uVar4;
          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);
          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);
          *(undefined4 *)(puVar10 + -0x10) = 3;
          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;
          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),
                            *(stat64 **)(puVar10 + -8));
          if (iVar7 == 0) goto LAB_00078d65;
        }
        *(char **)(puVar10 + 4) = pcVar3;
LAB_00078bdd:
        if ((char)uVar4 == '\0') goto LAB_00078be5;
LAB_00078d36:
        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;
LAB_00078e50:
        *(char **)(puVar10 + -4) = pcVar3;
        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);
        *(undefined4 *)(puVar10 + -0x10) = 3;
        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;
        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),
                           *(stat64 **)(puVar10 + -8));
      } while (iVar7 != 0);
LAB_00078d65:
      if (**(int **)(puVar10 + 0x3c) != -1) {
        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);
      }
      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {
        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);
      }
      uVar8 = *(uint *)(puVar10 + 0x6c);
      *(uint *)(puVar10 + 0x34) = uVar8;
      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);
      if ((uVar8 & 0xd000) == 0x8000) {
LAB_00078dca:
        if (1 < *(uint *)(puVar10 + 0x1c)) {
          puVar6 = *(undefined4 **)(puVar10 + 0xc);
          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;
          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))
          goto LAB_00078f54;
          goto LAB_00078e05;
        }
        uVar8 = *(uint *)(puVar10 + 0x5c);
        uVar4 = *(undefined4 *)(puVar10 + 0x88);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = uVar8 & 0xff |
                (uint)(uint3)((uint3)(uVar8 >> 0x14) |
                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;
      }
      else {
        *(undefined4 *)(puVar10 + 0x88) = 0;
        *(undefined4 *)(puVar10 + 0x8c) = 0;
        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;
        uVar8 = *(uint *)(puVar10 + 0x5c);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |
                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
        uVar4 = 0;
        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;
      }
    }
    *(undefined4 *)(puVar10 + -4) = extraout_ECX;
    *(int *)(puVar10 + -8) = iVar7;
    *(int *)(puVar10 + 0x18) = iVar7;
    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;
    *(undefined4 *)(puVar10 + -0x10) = 1;
    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;
    uVar12 = __printf_chk();
    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);
    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +
            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));
    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);
    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;
    free(*(void **)(puVar10 + -0x10));
LAB_00078b78:
    uVar12 = -uVar8 & 3;
    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;
    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);
    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {
      *(undefined4 *)(puVar10 + -4) = 0x78d0c;
      FUN_0001a728();
      if (iVar7 == 0) break;
      *(undefined4 *)(puVar10 + -4) = 0x78d1d;
      FUN_0001a728();
    }
LAB_00078b98:
    if (*(int *)(puVar10 + 8) != 0) {
LAB_00078be5:
      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);
      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;
      free(*(void **)(puVar10 + -0x10));
      goto LAB_00078899;
    }
    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {
      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {
        return 0;
      }
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar10 + -4) = 0x78c00;
      FUN_00017e20();
    }
  } while( true );
  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {
LAB_00078f54:
    puVar6 = (undefined4 *)*puVar6;
    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;
  }
LAB_00078e05:
  *(undefined4 **)(puVar10 + 0x18) = puVar6;
  uVar4 = *(undefined4 *)(puVar10 + 4);
  *(undefined4 *)(puVar10 + -0x10) = uVar4;
  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;
  strlen(*(char **)(puVar10 + -0x10));
  *(undefined4 *)(puVar10 + -4) = 0x78e23;
  puVar6 = (undefined4 *)FUN_0001a288();
  *(undefined4 *)(puVar10 + -0xc) = uVar4;
  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;
  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;
  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));
  iVar7 = *(int *)(puVar10 + 0x18);
  *puVar6 = *(undefined4 *)(iVar7 + 4);
  *(undefined4 **)(iVar7 + 4) = puVar6;
  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);
  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;
  free(*(void **)(puVar10 + -0x10));
  goto LAB_00078899;
LAB_00078de1:
  *(undefined4 *)(puVar10 + -4) = 0x78deb;
  puVar6 = (undefined4 *)FUN_0001a2f5();
  puVar11 = *(undefined4 **)(puVar10 + 0x30);
  puVar14 = puVar6 + 2;
  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {
    *puVar14 = *puVar11;
    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;
    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;
  }
  *puVar6 = *(undefined4 *)(puVar10 + 0xc);
  *(undefined4 **)(puVar10 + 0xc) = puVar6;
  goto LAB_00078e05;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xcc
CALL 0x00027c59
ADD EBP,0x631da
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xbc],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV EAX,dword ptr [EBP + 0x58c]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[ESP + 0x5c]
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[EBP + 0xffffa2c6]
MOV dword ptr [ESP + 0x44],EAX
LEA EAX,[EBP + 0x8d8]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EBP + 0xcfc],0x4
JZ 0x00078ab5
XOR EDX,EDX
CALL 0x000b1878
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00078bcb
LEA EAX,[EBP + 0xfffea5d0]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00078acf
LEA ESI,[EAX + 0x8]
MOV ECX,0x18
MOV EDI,dword ptr [ESP + 0x30]
MOVSD.REP ES:EDI,ESI
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x4]
LEA EDI,[EAX + 0x4]
MOV dword ptr [ESP + 0x4],EDI
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI + 0x4],EAX
TEST EAX,EAX
JZ 0x00078c39
MOV dword ptr [ESP + 0x88],0x0
MOV dword ptr [ESP + 0x8c],0x0
MOV EAX,dword ptr [ESP + 0x5c]
MOV EDX,dword ptr [ESP + 0x60]
MOV EBX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x18],EBX
MOV EDI,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x1c],EDI
MOV EBX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x20],EBX
MOV EDI,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x24],EDI
MOV ECX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x34],ECX
MOV ESI,dword ptr [ESP + 0xb4]
MOV dword ptr [ESP + 0x28],ESI
MOV ECX,EAX
MOV EBX,EDX
SHRD ECX,EBX,0x8
SHR EBX,0x8
AND ECX,0xfff
MOV EBX,EDX
AND EBX,0xfffff000
OR ECX,EBX
MOV dword ptr [ESP + 0x2c],ECX
MOV ECX,EAX
MOV EBX,EDX
SHRD ECX,EBX,0xc
SHR EBX,0xc
XOR CL,CL
MOVZX EAX,AL
OR ECX,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0x8
SHR EDX,0x8
MOV EDX,EAX
AND EDX,0xfff
MOV EDI,dword ptr [ESP + 0x80]
MOV EAX,EDI
AND EAX,0xfffff000
MOV EDI,EDX
OR EDI,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0xc
SHR EDX,0xc
XOR AL,AL
MOVZX EDX,byte ptr [ESP + 0x7c]
OR EDX,EAX
XOR ESI,ESI
MOV dword ptr [ESP + 0x4c],EDX
MOV dword ptr [ESP + 0x48],ECX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
MOV EBX,EBP
CALL 0x00016b40
ADD ESP,0x10
PUSH 0x0
PUSH dword ptr [ESP + 0x8]
INC EAX
PUSH EAX
MOV EDX,dword ptr [ESP + 0x58]
PUSH EDX
PUSH EDI
MOV ECX,dword ptr [ESP + 0x5c]
PUSH ECX
PUSH dword ptr [ESP + 0x44]
PUSH ESI
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x50]
PUSH dword ptr [ESP + 0x64]
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x70]
PUSH 0x1
CALL 0x00016f40
MOV ESI,EAX
MOV EDI,EAX
SAR EDI,0x1f
ADD ESI,dword ptr [ESP + 0x50]
ADC EDI,dword ptr [ESP + 0x54]
MOV EAX,ESI
NEG EAX
AND EAX,0x3
MOV EBX,EAX
LEA EDX,[EAX + -0x1]
ADD ESP,0x40
CMP EDX,-0x1
JZ 0x00078a64
MOV dword ptr [ESP + 0x10],ESI
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,EDX
XOR EAX,EAX
CALL 0x0001a728
DEC EDI
CMP EDI,-0x1
JNZ 0x00078a4f
MOV ESI,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x14]
MOV EAX,EBX
CDQ
ADD EAX,ESI
ADC EDX,EDI
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
MOV EAX,dword ptr [ESP + 0x8c]
OR EAX,dword ptr [ESP + 0x88]
JZ 0x00078b98
MOV EAX,dword ptr [ESP + 0x6c]
AND EAX,0xf000
CMP EAX,0xa000
JNZ 0x00078b27
MOV EAX,dword ptr [ESP + 0x4]
CALL 0x0001af4a
TEST EAX,EAX
JNZ 0x00078c00
MOV EAX,dword ptr [ESP + 0x4]
CALL 0x00019026
CALL 0x000b19ee
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00078bcb
JMP 0x000788c3
MOV ECX,0x18
MOV EDI,dword ptr [ESP + 0x30]
STOSD.REP ES:EDI
LEA EAX,[EBP + 0xffffa2c6]
MOV dword ptr [ESP + 0x4],EAX
XOR ESI,ESI
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x2c],0x0
XOR EDI,EDI
XOR EDX,EDX
JMP 0x000789ce
XOR EDX,EDX
MOV EAX,dword ptr [ESP + 0x4]
CALL 0x0001a413
MOV EBX,EAX
CALL 0x0001a70d
SUB ESP,0x8
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x94]
MOV EDX,0x1
MOV EAX,EBX
CALL 0x0001b31a
MOV ESI,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x1c]
ADD ESI,dword ptr [ESP + 0x90]
ADC EDI,dword ptr [ESP + 0x94]
PUSH EDX
PUSH EBX
MOV EBX,EBP
CALL 0x000174d0
ADD ESP,0x10
MOV EBX,ESI
NEG EBX
AND EBX,0x3
MOV EAX,EBX
CDQ
ADD EAX,ESI
ADC EDX,EDI
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
DEC EBX
CMP EBX,-0x1
JNZ 0x00078d05
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00078be5
MOV EBX,dword ptr [ESP + 0x44]
CMP dword ptr [ESP + 0x4],EBX
JNZ 0x000788cd
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0xbc]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x00078bfb
ADD ESP,0xcc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x8]
MOV AL,byte ptr [EDI]
CMP AL,0x2e
JZ 0x00078d28
MOV dword ptr [ESP + 0x4],EDI
TEST AL,AL
JNZ 0x00078d36
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
MOV EBX,EBP
CALL 0x000175a0
ADD ESP,0x10
JMP 0x00078899
CALL 0x00017e20
PUSH ECX
PUSH EAX
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBP + 0xffffc2e7]
PUSH EAX
PUSH 0x1
MOV EBX,EBP
CALL 0x00016f40
MOV ESI,EAX
MOV EDI,EAX
SAR EDI,0x1f
ADD ESI,dword ptr [ESP + 0x20]
ADC EDI,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP],EDX
CALL 0x000175a0
ADD ESP,0x10
JMP 0x00078b78
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0xc],EAX
MOV ESI,dword ptr [ESP + 0x88]
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0xb4]
MOV dword ptr [ESP + 0x28],EAX
MOV ECX,dword ptr [ESP + 0x5c]
MOV EBX,dword ptr [ESP + 0x60]
SHRD ECX,EBX,0x8
SHR EBX,0x8
AND ECX,0xfff
MOV EDX,dword ptr [ESP + 0x60]
AND EDX,0xfffff000
OR ECX,EDX
MOV dword ptr [ESP + 0x2c],ECX
MOV ECX,dword ptr [ESP + 0x5c]
MOV EBX,dword ptr [ESP + 0x60]
SHRD ECX,EBX,0xc
SHR EBX,0xc
XOR CL,CL
MOVZX EAX,byte ptr [ESP + 0x5c]
OR ECX,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0x8
SHR EDX,0x8
MOV EDX,EAX
AND EDX,0xfff
MOV EDI,dword ptr [ESP + 0x80]
MOV EAX,EDI
AND EAX,0xfffff000
MOV EDI,EDX
OR EDI,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0xc
SHR EDX,0xc
XOR AL,AL
MOVZX EDX,byte ptr [ESP + 0x7c]
OR EDX,EAX
JMP 0x000789ce
XOR EAX,EAX
CALL 0x0001a728
DEC EBX
CMP EBX,-0x1
JZ 0x00078b98
XOR EAX,EAX
CALL 0x0001a728
DEC EBX
CMP EBX,-0x1
JNZ 0x00078d05
JMP 0x00078b98
CMP byte ptr [EDI + 0x1],0x2f
JZ 0x00078f72
MOV dword ptr [ESP + 0x4],EDI
TEST byte ptr [EBP + 0xcfc],0x80
JZ 0x00078e50
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0xc]
PUSH 0x3
MOV EBX,EBP
CALL 0x00017410
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
TEST AL,AL
JNZ 0x00078aac
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
JZ 0x00078d74
MOV dword ptr [ESP + 0x74],EAX
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,-0x1
JZ 0x00078d84
MOV dword ptr [ESP + 0x78],EAX
MOV EDI,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x34],EDI
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,EDI
AND EAX,0xd000
CMP EAX,0x8000
JZ 0x00078dca
MOV dword ptr [ESP + 0x88],0x0
MOV dword ptr [ESP + 0x8c],0x0
MOV EAX,EDI
AND EAX,0xf000
CMP EAX,0x4000
JZ 0x00078fa4
CMP dword ptr [ESP + 0x1c],0x1
JBE 0x00078e77
MOV EDI,dword ptr [ESP + 0xc]
TEST EDI,EDI
JNZ 0x00078f32
MOV EAX,0x68
CALL 0x0001a2f5
MOV EDX,EAX
LEA EDI,[EAX + 0x8]
MOV ECX,0x18
MOV ESI,dword ptr [ESP + 0x30]
MOVSD.REP ES:EDI,ESI
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EDX],EAX
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x10]
PUSH EDI
MOV EBX,EBP
CALL 0x00016b40
ADD ESP,0x10
ADD EAX,0x8
CALL 0x0001a288
MOV ESI,EAX
SUB ESP,0x8
PUSH EDI
LEA EAX,[EAX + 0x4]
PUSH EAX
CALL 0x000167f0
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [ESI],EAX
MOV dword ptr [EDX + 0x4],ESI
POP ESI
PUSH dword ptr [ESP + 0x14]
CALL 0x000175a0
ADD ESP,0x10
JMP 0x00078899
PUSH EDI
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0xc]
PUSH 0x3
MOV EBX,EBP
CALL 0x000174b0
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
TEST AL,AL
JZ 0x00078d65
JMP 0x00078aac
MOV ECX,dword ptr [ESP + 0x5c]
MOV EBX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0x88]
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0xb4]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,ECX
MOV EDX,EBX
SHRD EAX,EDX,0x8
SHR EDX,0x8
AND EAX,0xfff
MOV EDX,EBX
AND EDX,0xfffff000
OR EAX,EDX
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,ECX
MOV EDX,EBX
SHRD EAX,EDX,0xc
SHR EDX,0xc
XOR AL,AL
MOVZX ECX,CL
OR ECX,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0x8
SHR EDX,0x8
MOV EDX,EAX
AND EDX,0xfff
MOV EDI,dword ptr [ESP + 0x80]
MOV EAX,EDI
AND EAX,0xfffff000
MOV EDI,EDX
OR EDI,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0xc
SHR EDX,0xc
XOR AL,AL
MOVZX EDX,byte ptr [ESP + 0x7c]
OR EDX,EAX
LEA EAX,[EBP + 0xfffea5d0]
MOV dword ptr [ESP + 0x38],EAX
JMP 0x000789ce
MOV EAX,dword ptr [ESP + 0xb4]
MOV ECX,dword ptr [ESP + 0xb8]
MOV EBX,dword ptr [EDI + 0x60]
XOR EBX,EAX
MOV ESI,dword ptr [EDI + 0x64]
XOR ESI,ECX
MOV EDX,EDI
OR ESI,EBX
JZ 0x00078e05
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JZ 0x00078de1
MOV EBX,dword ptr [EDX + 0x60]
XOR EBX,EAX
MOV ESI,dword ptr [EDX + 0x64]
XOR ESI,ECX
OR ESI,EBX
JZ 0x00078e05
JMP 0x00078f54
MOV dword ptr [ESP + 0x4],EDI
INC dword ptr [ESP + 0x4]
MOV ESI,dword ptr [ESP + 0x4]
MOV AL,byte ptr [ESI]
CMP AL,0x2f
JZ 0x00078f76
CMP AL,0x2e
JNZ 0x00078bdd
CMP byte ptr [ESI + 0x1],0x2f
JZ 0x00078f76
TEST byte ptr [EBP + 0xcfc],0x80
JZ 0x00078e50
JMP 0x00078d43
MOV EAX,dword ptr [ESP + 0x5c]
MOV EDX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x18],ESI
MOV ESI,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x20],ESI
MOV ESI,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x24],ESI
MOV EBX,dword ptr [ESP + 0xb4]
MOV dword ptr [ESP + 0x28],EBX
MOV ECX,EAX
MOV EBX,EDX
SHRD ECX,EBX,0x8
SHR EBX,0x8
AND ECX,0xfff
MOV EBX,EDX
AND EBX,0xfffff000
OR ECX,EBX
MOV dword ptr [ESP + 0x2c],ECX
MOV ECX,EAX
MOV EBX,EDX
SHRD ECX,EBX,0xc
SHR EBX,0xc
XOR CL,CL
MOVZX EAX,AL
OR ECX,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0x8
SHR EDX,0x8
MOV EDX,EAX
AND EDX,0xfff
MOV EDI,dword ptr [ESP + 0x80]
MOV EAX,EDI
AND EAX,0xfffff000
MOV EDI,EDX
OR EDI,EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
SHRD EAX,EDX,0xc
SHR EDX,0xc
XOR AL,AL
MOVZX EDX,byte ptr [ESP + 0x7c]
OR EDX,EAX
XOR ESI,ESI
LEA EAX,[EBP + 0xfffea5d0]
MOV dword ptr [ESP + 0x38],EAX
JMP 0x000789ce
(translation_unit "undefined4 FUN_00078837(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}\n\n" (function_definition "undefined4 FUN_00078837(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}" type_identifier (function_declarator "FUN_00078837(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int aiStack_120 [17];" primitive_type (array_declarator "aiStack_120 [17]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_dc [4];" type_identifier (array_declarator "auStack_dc [4]" identifier [ number_literal ]) ;) (declaration "int local_d8 [11];" primitive_type (array_declarator "local_d8 [11]" identifier [ number_literal ]) ;) (declaration "uint *local_ac [3];" type_identifier (pointer_declarator "*local_ac [3]" * (array_declarator "local_ac [3]" identifier [ number_literal ])) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "undefined4 local_9c;" type_identifier identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "uint local_94 [5];" type_identifier (array_declarator "local_94 [5]" identifier [ number_literal ]) ;) (declaration "uint local_80 [4];" type_identifier (array_declarator "local_80 [4]" identifier [ number_literal ]) ;) (declaration "uint local_70 [4];" type_identifier (array_declarator "local_70 [4]" identifier [ number_literal ]) ;) (declaration "uint local_60 [10];" type_identifier (array_declarator "local_60 [10]" identifier [ number_literal ]) ;) (declaration "int local_38 [10];" primitive_type (array_declarator "local_38 [10]" identifier [ number_literal ]) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = auStack_dc;" (assignment_expression "puVar10 = auStack_dc" identifier = identifier) ;) (expression_statement "FUN_00027c59();" (call_expression "FUN_00027c59()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_38[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_d8[3] = 0;" (assignment_expression "local_d8[3] = 0" (subscript_expression "local_d8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_d8[4] = 0;" (assignment_expression "local_d8[4] = 0" (subscript_expression "local_d8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_d8[2] = 0;" (assignment_expression "local_d8[2] = 0" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_9c = *(undefined4 *)(unaff_EBP + 0x63766);" (assignment_expression "local_9c = *(undefined4 *)(unaff_EBP + 0x63766)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + 0x63766)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x63766)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63766)" ( (binary_expression "unaff_EBP + 0x63766" identifier + number_literal) ))))) ;) (expression_statement "local_ac[0] = local_80;" (assignment_expression "local_ac[0] = local_80" (subscript_expression "local_ac[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_98 = unaff_EBP + 0x5d4a0;" (assignment_expression "local_98 = unaff_EBP + 0x5d4a0" identifier = (binary_expression "unaff_EBP + 0x5d4a0" identifier + number_literal)) ;) (expression_statement "local_a0 = unaff_EBP + 0x63ab2;" (assignment_expression "local_a0 = unaff_EBP + 0x63ab2" identifier = (binary_expression "unaff_EBP + 0x63ab2" identifier + number_literal)) ;) (labeled_statement "LAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;" statement_identifier : (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 4)" ( (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" * (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63ed6)" ( (binary_expression "unaff_EBP + 0x63ed6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00078ab5;" goto statement_identifier ;))) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x788b3;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x788b3" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_000b1878();" (assignment_expression "uVar4 = FUN_000b1878()" identifier = (call_expression "FUN_000b1878()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 8);" (assignment_expression "iVar7 = *(int *)(puVar10 + 8)" identifier = (pointer_expression "*(int *)(puVar10 + 8)" * (cast_expression "(int *)(puVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) goto LAB_00078bcb;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00078bcb;" goto statement_identifier ;)) (labeled_statement "LAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" statement_identifier : (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" * (cast_expression "(int *)(puVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x4d7aa" identifier + number_literal)) ;)) (do_statement "do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );" do (compound_statement "{\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  }" { (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" * (cast_expression "(undefined4 **)(puVar10 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }" { (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }" for ( (assignment_expression "iVar7 = 0x18" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6 = puVar6 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar6 = puVar6 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar6 + (uint)bVar15 * -2 + 1" (binary_expression "puVar6 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;" (assignment_expression "*(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x5d4a0" identifier + number_literal)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x2c)" * (cast_expression "(undefined4 *)(puVar10 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" else (compound_statement "{\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" { (expression_statement "puVar11 = puVar6 + 2;" (assignment_expression "puVar11 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (expression_statement "puVar14 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar14 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }" for ( (assignment_expression "iVar7 = 0x18" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }" { (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar11 + (uint)bVar15 * -2 + 1" (binary_expression "puVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar15 * -2 + 1" (binary_expression "puVar14 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar2 = (int *)puVar6[1];" (assignment_expression "piVar2 = (int *)puVar6[1]" identifier = (cast_expression "(int *)puVar6[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[1]" identifier [ number_literal ]))) ;) (expression_statement "*(int **)(puVar10 + 4) = piVar2 + 1;" (assignment_expression "*(int **)(puVar10 + 4) = piVar2 + 1" (pointer_expression "*(int **)(puVar10 + 4)" * (cast_expression "(int **)(puVar10 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = (binary_expression "piVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = *piVar2;" (assignment_expression "iVar7 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "puVar6[1] = iVar7;" (assignment_expression "puVar6[1] = iVar7" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }" { (expression_statement "*(undefined4 *)(puVar10 + 0xc) = *puVar6;" (assignment_expression "*(undefined4 *)(puVar10 + 0xc) = *puVar6" (pointer_expression "*(undefined4 *)(puVar10 + 0xc)" * (cast_expression "(undefined4 *)(puVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 0x88)" identifier = (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" * (cast_expression "(undefined4 *)(puVar10 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x70)" ( (binary_expression "puVar10 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c)" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x6c)" * (cast_expression "(undefined4 *)(puVar10 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);" (assignment_expression "uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x5c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x60) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x60)" * (cast_expression "(int *)(puVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x5c]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" { (expression_statement "*(undefined4 *)(puVar10 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x88) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" * (cast_expression "(undefined4 *)(puVar10 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" * (cast_expression "(undefined4 *)(puVar10 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x70)" ( (binary_expression "puVar10 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c)" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x6c)" * (cast_expression "(undefined4 *)(puVar10 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;" (assignment_expression "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" identifier = (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar8 >> 0x14)" ( (binary_expression "uVar8 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) )) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar8 & 0xff" identifier & number_literal))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }))) }))) (while_statement "while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar10 + 0x4c) = uVar9;" (assignment_expression "*(undefined4 *)(puVar10 + 0x4c) = uVar9" (pointer_expression "*(undefined4 *)(puVar10 + 0x4c)" * (cast_expression "(undefined4 *)(puVar10 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x4c)" ( (binary_expression "puVar10 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar10 + 0x48) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x48) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x48)" * (cast_expression "(uint *)(puVar10 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x789e4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x789e4" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar5 = strlen(*(char **)(puVar10 + -0x10));" (assignment_expression "sVar5 = strlen(*(char **)(puVar10 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar10 + -0x10))" identifier (argument_list "(*(char **)(puVar10 + -0x10))" ( (pointer_expression "*(char **)(puVar10 + -0x10)" * (cast_expression "(char **)(puVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(size_t *)(puVar10 + -0xc) = sVar5 + 1;" (assignment_expression "*(size_t *)(puVar10 + -0xc) = sVar5 + 1" (pointer_expression "*(size_t *)(puVar10 + -0xc)" * (cast_expression "(size_t *)(puVar10 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "sVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x4c)" * (cast_expression "(undefined4 *)(puVar10 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x4c)" ( (binary_expression "puVar10 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + -0x14) = uVar12;" (assignment_expression "*(uint *)(puVar10 + -0x14) = uVar12" (pointer_expression "*(uint *)(puVar10 + -0x14)" * (cast_expression "(uint *)(puVar10 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48)" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" * (cast_expression "(undefined4 *)(puVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x48)" * (cast_expression "(undefined4 *)(puVar10 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x1c)" * (cast_expression "(undefined4 *)(puVar10 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x2c)" * (cast_expression "(undefined4 *)(puVar10 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x20) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x20) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x20)" * (cast_expression "(undefined4 *)(puVar10 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18)" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x28)" * (cast_expression "(undefined4 *)(puVar10 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x28)" ( (binary_expression "puVar10 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);" (assignment_expression "*(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20)" (pointer_expression "*(undefined4 *)(puVar10 + -0x2c)" * (cast_expression "(undefined4 *)(puVar10 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x2c)" ( (binary_expression "puVar10 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);" (assignment_expression "*(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24)" (pointer_expression "*(undefined4 *)(puVar10 + -0x30)" * (cast_expression "(undefined4 *)(puVar10 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x30)" ( (binary_expression "puVar10 + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);" (assignment_expression "*(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34)" (pointer_expression "*(undefined4 *)(puVar10 + -0x34)" * (cast_expression "(undefined4 *)(puVar10 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x34)" ( (binary_expression "puVar10 + -0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);" (assignment_expression "*(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28)" (pointer_expression "*(undefined4 *)(puVar10 + -0x38)" * (cast_expression "(undefined4 *)(puVar10 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x38)" ( (binary_expression "puVar10 + -0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);" (assignment_expression "*(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38)" (pointer_expression "*(undefined4 *)(puVar10 + -0x3c)" * (cast_expression "(undefined4 *)(puVar10 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x3c)" ( (binary_expression "puVar10 + -0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x38)" * (cast_expression "(undefined4 *)(puVar10 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x40) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x40) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x40)" * (cast_expression "(undefined4 *)(puVar10 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x40)" ( (binary_expression "puVar10 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x44) = 0x78a22;" (assignment_expression "*(undefined4 *)(puVar10 + -0x44) = 0x78a22" (pointer_expression "*(undefined4 *)(puVar10 + -0x44)" * (cast_expression "(undefined4 *)(puVar10 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x44)" ( (binary_expression "puVar10 + -0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = __printf_chk();" (assignment_expression "uVar12 = __printf_chk()" identifier = (call_expression "__printf_chk()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10)" identifier = (binary_expression "uVar12 + *(uint *)(puVar10 + 0x10)" identifier + (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));" (assignment_expression "iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier = (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14)" (parenthesized_expression "((int)uVar12 >> 0x1f)" ( (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier (argument_list "(uVar12,*(uint *)(puVar10 + 0x10))" ( identifier , (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar12 = -uVar8 & 3;" (assignment_expression "uVar12 = -uVar8 & 3" identifier = (binary_expression "-uVar8 & 3" (unary_expression "-uVar8" - identifier) & number_literal)) ;) (expression_statement "iVar7 = uVar12 - 1;" (assignment_expression "iVar7 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (if_statement "if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }" { (expression_statement "*(uint *)(puVar10 + 0x10) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + 0x14) = iVar13;" (assignment_expression "*(int *)(puVar10 + 0x14) = iVar13" (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78a56;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78a56" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + 0x14);" (assignment_expression "iVar13 = *(int *)(puVar10 + 0x14)" identifier = (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) ;) })) (expression_statement "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar12 + uVar8" identifier + identifier)) ;) (expression_statement "*(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);" (assignment_expression "*(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8)" (pointer_expression "*(uint *)(puVar10 + 0x14)" * (cast_expression "(uint *)(puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar13 + (uint)CARRY4(uVar12,uVar8)" identifier + (cast_expression "(uint)CARRY4(uVar12,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar8)" identifier (argument_list "(uVar12,uVar8)" ( identifier , identifier )))))) ;) (if_statement "if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;" if (parenthesized_expression "(*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0)" ( (binary_expression "*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0" (binary_expression "*(int *)(puVar10 + 0x8c) == 0" (pointer_expression "*(int *)(puVar10 + 0x8c)" * (cast_expression "(int *)(puVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(puVar10 + 0x88) == 0" (pointer_expression "*(int *)(puVar10 + 0x88)" * (cast_expression "(int *)(puVar10 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00078b98;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }" if (parenthesized_expression "((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000)" ( (binary_expression "(*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000" (parenthesized_expression "(*(uint *)(puVar10 + 0x6c) & 0xf000)" ( (binary_expression "*(uint *)(puVar10 + 0x6c) & 0xf000" (pointer_expression "*(uint *)(puVar10 + 0x6c)" * (cast_expression "(uint *)(puVar10 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78b32;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78b32" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0001a413();" (assignment_expression "uVar4 = FUN_0001a413()" identifier = (call_expression "FUN_0001a413()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78b39;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78b39" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a70d();" (call_expression "FUN_0001a70d()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" * (cast_expression "(undefined4 *)(puVar10 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78b56;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78b56" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001b31a();" (call_expression "FUN_0001b31a()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80)" identifier = (binary_expression "*(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80)" (pointer_expression "*(uint *)(puVar10 + 8)" * (cast_expression "(uint *)(puVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) + (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))))) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));" (assignment_expression "iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" identifier = (binary_expression "*(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (binary_expression "*(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84)" (pointer_expression "*(int *)(puVar10 + 0xc)" * (cast_expression "(int *)(puVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar10 + 0x84)" * (cast_expression "(int *)(puVar10 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x84)" ( (binary_expression "puVar10 + 0x84" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" identifier (argument_list "(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" ( (pointer_expression "*(uint *)(puVar10 + 8)" * (cast_expression "(uint *)(puVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) )))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = extraout_EDX;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = extraout_EDX" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" * (cast_expression "(undefined4 *)(puVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x1c) = 0x78b75;" (assignment_expression "*(undefined4 *)(puVar10 + -0x1c) = 0x78b75" (pointer_expression "*(undefined4 *)(puVar10 + -0x1c)" * (cast_expression "(undefined4 *)(puVar10 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "close(*(int *)(puVar10 + -0x18));" (call_expression "close(*(int *)(puVar10 + -0x18))" identifier (argument_list "(*(int *)(puVar10 + -0x18))" ( (pointer_expression "*(int *)(puVar10 + -0x18)" * (cast_expression "(int *)(puVar10 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) ))) ;) (expression_statement "puVar10 = puVar10 + -8;" (assignment_expression "puVar10 = puVar10 + -8" identifier = (binary_expression "puVar10 + -8" identifier + number_literal)) ;) (goto_statement "goto LAB_00078b78;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78aa4;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78aa4" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_0001af4a();" (assignment_expression "iVar7 = FUN_0001af4a()" identifier = (call_expression "FUN_0001af4a()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (do_statement "do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);" do (compound_statement "{\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      }" { (while_statement "while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78ab5;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78ab5" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00019026();" (call_expression "FUN_00019026()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78aba;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78aba" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "uVar4 = FUN_000b19ee();" (assignment_expression "uVar4 = FUN_000b19ee()" identifier = (call_expression "FUN_000b19ee()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 8);" (assignment_expression "iVar7 = *(int *)(puVar10 + 8)" identifier = (pointer_expression "*(int *)(puVar10 + 8)" * (cast_expression "(int *)(puVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_000788c3;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000788c3;" goto statement_identifier ;)) (labeled_statement "LAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);" statement_identifier : (expression_statement "pcVar3 = *(char **)(puVar10 + 8);" (assignment_expression "pcVar3 = *(char **)(puVar10 + 8)" identifier = (pointer_expression "*(char **)(puVar10 + 8)" * (cast_expression "(char **)(puVar10 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3)" identifier = (call_expression "CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3)" identifier (argument_list "((int3)((uint)iVar7 >> 8),*pcVar3)" ( (call_expression "(int3)((uint)iVar7 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar7 >> 8)" ( (binary_expression "(uint)iVar7 >> 8" (cast_expression "(uint)iVar7" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (pointer_expression "*pcVar3" * identifier) )))) ;) (if_statement "if (*pcVar3 != '.') break;" if (parenthesized_expression "(*pcVar3 != '.')" ( (binary_expression "*pcVar3 != '.'" (pointer_expression "*pcVar3" * identifier) != (char_literal "'.'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }" if (parenthesized_expression "(pcVar3[1] != '/')" ( (binary_expression "pcVar3[1] != '/'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }" { (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00078d36;" goto statement_identifier ;) })) (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');" do (compound_statement "{\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          }" { (do_statement "do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');" do (compound_statement "{\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            }" { (expression_statement "*(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;" (assignment_expression "*(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar10 + 4) + 1" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "cVar1 = **(char **)(puVar10 + 4);" (assignment_expression "cVar1 = **(char **)(puVar10 + 4)" identifier = (pointer_expression "**(char **)(puVar10 + 4)" * (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))))) ;) (expression_statement "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1)" identifier = (call_expression "CONCAT31((int3)((uint)uVar4 >> 8),cVar1)" identifier (argument_list "((int3)((uint)uVar4 >> 8),cVar1)" ( (call_expression "(int3)((uint)uVar4 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)uVar4 >> 8)" ( (binary_expression "(uint)uVar4 >> 8" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) }) while (parenthesized_expression "(cVar1 == '/')" ( (binary_expression "cVar1 == '/'" identifier == (char_literal "'/'" ' character ')) )) ;) (if_statement "if (cVar1 != '.') goto LAB_00078bdd;" if (parenthesized_expression "(cVar1 != '.')" ( (binary_expression "cVar1 != '.'" identifier != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_00078bdd;" goto statement_identifier ;)) }) while (parenthesized_expression "((*(char **)(puVar10 + 4))[1] == '/')" ( (binary_expression "(*(char **)(puVar10 + 4))[1] == '/'" (subscript_expression "(*(char **)(puVar10 + 4))[1]" (parenthesized_expression "(*(char **)(puVar10 + 4))" ( (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) )) [ number_literal ]) == (char_literal "'/'" ' character ')) )) ;) (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80)" ( (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 0x80" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" * (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63ed6)" ( (binary_expression "unaff_EBP + 0x63ed6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00078e50;" goto statement_identifier ;)) (labeled_statement "LAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x30)" * (cast_expression "(undefined4 *)(puVar10 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78d55;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78d55" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));" (assignment_expression "iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" identifier (argument_list "(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" ( (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar10 + -0xc)" * (cast_expression "(char **)(puVar10 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar10 + -8)" * (cast_expression "(stat64 **)(puVar10 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_00078d65;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00078d65;" goto statement_identifier ;)) })) (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;" statement_identifier : (if_statement "if ((char)uVar4 == '\0') goto LAB_00078be5;" if (parenthesized_expression "((char)uVar4 == '\0')" ( (binary_expression "(char)uVar4 == '\0'" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00078be5;" goto statement_identifier ;))) (labeled_statement "LAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;" statement_identifier : (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80)" ( (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 0x80" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" * (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63ed6)" ( (binary_expression "unaff_EBP + 0x63ed6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00078d43;" goto statement_identifier ;))) (labeled_statement "LAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;" statement_identifier : (expression_statement "*(char **)(puVar10 + -4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + -4) = pcVar3" (pointer_expression "*(char **)(puVar10 + -4)" * (cast_expression "(char **)(puVar10 + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x30)" * (cast_expression "(undefined4 *)(puVar10 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e62;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e62" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));" (assignment_expression "iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" identifier = (call_expression "__lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" identifier (argument_list "(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" ( (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar10 + -0xc)" * (cast_expression "(char **)(puVar10 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar10 + -8)" * (cast_expression "(stat64 **)(puVar10 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" statement_identifier : (if_statement "if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" if (parenthesized_expression "(**(int **)(puVar10 + 0x3c) != -1)" ( (binary_expression "**(int **)(puVar10 + 0x3c) != -1" (pointer_expression "**(int **)(puVar10 + 0x3c)" * (pointer_expression "*(int **)(puVar10 + 0x3c)" * (cast_expression "(int **)(puVar10 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" { (expression_statement "*(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);" (assignment_expression "*(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c)" (pointer_expression "*(int *)(puVar10 + 0x74)" * (cast_expression "(int *)(puVar10 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) )))) = (pointer_expression "**(int **)(puVar10 + 0x3c)" * (pointer_expression "*(int **)(puVar10 + 0x3c)" * (cast_expression "(int **)(puVar10 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) )))))) ;) }))) (if_statement "if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }" if (parenthesized_expression "(*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1)" ( (binary_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1" (pointer_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x3c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x3c) + 4)" ( (binary_expression "*(int *)(puVar10 + 0x3c) + 4" (pointer_expression "*(int *)(puVar10 + 0x3c)" * (cast_expression "(int *)(puVar10 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }" { (expression_statement "*(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);" (assignment_expression "*(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4)" (pointer_expression "*(int *)(puVar10 + 0x78)" * (cast_expression "(int *)(puVar10 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) )))) = (pointer_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x3c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x3c) + 4)" ( (binary_expression "*(int *)(puVar10 + 0x3c) + 4" (pointer_expression "*(int *)(puVar10 + 0x3c)" * (cast_expression "(int *)(puVar10 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x6c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x6c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x6c)" * (cast_expression "(uint *)(puVar10 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x34) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x34) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x34)" * (cast_expression "(uint *)(puVar10 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" * (cast_expression "(undefined4 *)(puVar10 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x70)" ( (binary_expression "puVar10 + 0x70" identifier + number_literal) ))))) ;) (if_statement "if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" if (parenthesized_expression "((uVar8 & 0xd000) == 0x8000)" ( (binary_expression "(uVar8 & 0xd000) == 0x8000" (parenthesized_expression "(uVar8 & 0xd000)" ( (binary_expression "uVar8 & 0xd000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" { (labeled_statement "LAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" statement_identifier : (if_statement "if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" if (parenthesized_expression "(1 < *(uint *)(puVar10 + 0x1c))" ( (binary_expression "1 < *(uint *)(puVar10 + 0x1c)" number_literal < (pointer_expression "*(uint *)(puVar10 + 0x1c)" * (cast_expression "(uint *)(puVar10 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" { (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" * (cast_expression "(undefined4 **)(puVar10 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00078de1;" goto statement_identifier ;)) (if_statement "if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;" if (parenthesized_expression "(puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))" ( (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8)" (subscript_expression "puVar6[0x19]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb8)" * (cast_expression "(int *)(puVar10 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb8)" ( (binary_expression "puVar10 + 0xb8" identifier + number_literal) ))))) || (binary_expression "puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (subscript_expression "puVar6[0x18]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb4)" * (cast_expression "(int *)(puVar10 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) )))))) )) (goto_statement "goto LAB_00078f54;" goto statement_identifier ;)) (goto_statement "goto LAB_00078e05;" goto statement_identifier ;) }))) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 0x88)" identifier = (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;" (assignment_expression "uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" identifier = (binary_expression "uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (binary_expression "uVar8 & 0xff" identifier & number_literal) | (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar8 >> 0x14)" ( (binary_expression "uVar8 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) )) >> number_literal) )))) ))) << number_literal))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" * (cast_expression "(int *)(puVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x4d7aa" identifier + number_literal)) ;) }) (else_clause "else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" { (expression_statement "*(undefined4 *)(puVar10 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x88) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" * (cast_expression "(undefined4 *)(puVar10 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;" if (parenthesized_expression "((uVar8 & 0xf000) != 0x4000)" ( (binary_expression "(uVar8 & 0xf000) != 0x4000" (parenthesized_expression "(uVar8 & 0xf000)" ( (binary_expression "uVar8 & 0xf000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00078dca;" goto statement_identifier ;)) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;" (assignment_expression "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" identifier = (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar8 >> 0x14)" ( (binary_expression "uVar8 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) )) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar8 & 0xff" identifier & number_literal))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" * (cast_expression "(int *)(puVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x4d7aa" identifier + number_literal)) ;) }))) })) (expression_statement "*(undefined4 *)(puVar10 + -4) = extraout_ECX;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = extraout_ECX" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" * (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + 0x18) = iVar7;" (assignment_expression "*(int *)(puVar10 + 0x18) = iVar7" (pointer_expression "*(int *)(puVar10 + 0x18)" * (cast_expression "(int *)(puVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;" (assignment_expression "*(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1" (pointer_expression "*(int *)(puVar10 + -0xc)" * (cast_expression "(int *)(puVar10 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x5f4c1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78c16;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78c16" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = __printf_chk();" (assignment_expression "uVar12 = __printf_chk()" identifier = (call_expression "__printf_chk()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10)" identifier = (binary_expression "uVar12 + *(uint *)(puVar10 + 0x10)" identifier + (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));" (assignment_expression "iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier = (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14)" (parenthesized_expression "((int)uVar12 >> 0x1f)" ( (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier (argument_list "(uVar12,*(uint *)(puVar10 + 0x10))" ( identifier , (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) )))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78c31;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78c31" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" identifier (argument_list "(*(void **)(puVar10 + -0x10))" ( (pointer_expression "*(void **)(puVar10 + -0x10)" * (cast_expression "(void **)(puVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_00078b78:\n    uVar12 = -uVar8 & 3;" statement_identifier : (expression_statement "uVar12 = -uVar8 & 3;" (assignment_expression "uVar12 = -uVar8 & 3" identifier = (binary_expression "-uVar8 & 3" (unary_expression "-uVar8" - identifier) & number_literal)) ;)) (expression_statement "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar12 + uVar8" identifier + identifier)) ;) (expression_statement "*(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);" (assignment_expression "*(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8)" (pointer_expression "*(uint *)(puVar10 + 0x14)" * (cast_expression "(uint *)(puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar7 + (uint)CARRY4(uVar12,uVar8)" identifier + (cast_expression "(uint)CARRY4(uVar12,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar8)" identifier (argument_list "(uVar12,uVar8)" ( identifier , identifier )))))) ;) (for_statement "for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }" for ( (assignment_expression "iVar7 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ; (binary_expression "iVar7 != -1" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -2" identifier = (binary_expression "iVar7 + -2" identifier + number_literal)) ) (compound_statement "{\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78d0c;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78d0c" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78d1d;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78d1d" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" statement_identifier : (if_statement "if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" if (parenthesized_expression "(*(int *)(puVar10 + 8) != 0)" ( (binary_expression "*(int *)(puVar10 + 8) != 0" (pointer_expression "*(int *)(puVar10 + 8)" * (cast_expression "(int *)(puVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" { (labeled_statement "LAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78bf3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78bf3" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" identifier (argument_list "(*(void **)(puVar10 + -0x10))" ( (pointer_expression "*(void **)(puVar10 + -0x10)" * (cast_expression "(void **)(puVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_00078899;" goto statement_identifier ;) }))) (if_statement "if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }" if (parenthesized_expression "(*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44))" ( (binary_expression "*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar10 + 0x44)" * (cast_expression "(int *)(puVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x44)" ( (binary_expression "puVar10 + 0x44" identifier + number_literal) ))))) )) (compound_statement "{\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }" { (if_statement "if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }" if (parenthesized_expression "(*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar10 + 0xbc)" * (cast_expression "(int *)(puVar10 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xbc)" ( (binary_expression "puVar10 + 0xbc" identifier + number_literal) )))) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78c00;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78c00" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (while_statement "while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }" while (parenthesized_expression "(puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))" ( (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8)" (subscript_expression "puVar6[0x19]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb8)" * (cast_expression "(int *)(puVar10 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb8)" ( (binary_expression "puVar10 + 0xb8" identifier + number_literal) ))))) || (binary_expression "puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (subscript_expression "puVar6[0x18]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb4)" * (cast_expression "(int *)(puVar10 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) )))))) )) (compound_statement "{\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }" { (labeled_statement "LAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;" statement_identifier : (expression_statement "puVar6 = (undefined4 *)*puVar6;" (assignment_expression "puVar6 = (undefined4 *)*puVar6" identifier = (cast_expression "(undefined4 *)*puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;)) (if_statement "if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00078de1;" goto statement_identifier ;)) })) (labeled_statement "LAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;" statement_identifier : (expression_statement "*(undefined4 **)(puVar10 + 0x18) = puVar6;" (assignment_expression "*(undefined4 **)(puVar10 + 0x18) = puVar6" (pointer_expression "*(undefined4 **)(puVar10 + 0x18)" * (cast_expression "(undefined4 **)(puVar10 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = identifier) ;)) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e18;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e18" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strlen(*(char **)(puVar10 + -0x10));" (call_expression "strlen(*(char **)(puVar10 + -0x10))" identifier (argument_list "(*(char **)(puVar10 + -0x10))" ( (pointer_expression "*(char **)(puVar10 + -0x10)" * (cast_expression "(char **)(puVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78e23;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78e23" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0001a288();" (assignment_expression "puVar6 = (undefined4 *)FUN_0001a288()" identifier = (cast_expression "(undefined4 *)FUN_0001a288()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a288()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;" (assignment_expression "*(undefined4 **)(puVar10 + -0x10) = puVar6 + 1" (pointer_expression "*(undefined4 **)(puVar10 + -0x10)" * (cast_expression "(undefined4 **)(puVar10 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e32;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e32" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));" (call_expression "strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc))" identifier (argument_list "(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc))" ( (pointer_expression "*(char **)(puVar10 + -0x10)" * (cast_expression "(char **)(puVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar10 + -0xc)" * (cast_expression "(char **)(puVar10 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 0x18);" (assignment_expression "iVar7 = *(int *)(puVar10 + 0x18)" identifier = (pointer_expression "*(int *)(puVar10 + 0x18)" * (cast_expression "(int *)(puVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "*puVar6 = *(undefined4 *)(iVar7 + 4)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(iVar7 + 4) = puVar6;" (assignment_expression "*(undefined4 **)(iVar7 + 4) = puVar6" (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e48;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e48" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" identifier (argument_list "(*(void **)(puVar10 + -0x10))" ( (pointer_expression "*(void **)(puVar10 + -0x10)" * (cast_expression "(void **)(puVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_00078899;" goto statement_identifier ;) (labeled_statement "LAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78deb;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78deb" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)FUN_0001a2f5();" (assignment_expression "puVar6 = (undefined4 *)FUN_0001a2f5()" identifier = (cast_expression "(undefined4 *)FUN_0001a2f5()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar11 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = puVar6 + 2;" (assignment_expression "puVar14 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }" for ( (assignment_expression "iVar7 = 0x18" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }" { (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar11 + (uint)bVar15 * -2 + 1" (binary_expression "puVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar15 * -2 + 1" (binary_expression "puVar14 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*puVar6 = *(undefined4 *)(puVar10 + 0xc);" (assignment_expression "*puVar6 = *(undefined4 *)(puVar10 + 0xc)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)(puVar10 + 0xc)" * (cast_expression "(undefined4 *)(puVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar10 + 0xc) = puVar6;" (assignment_expression "*(undefined4 **)(puVar10 + 0xc) = puVar6" (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" * (cast_expression "(undefined4 **)(puVar10 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00078e05;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\nvoid cpio_o(void)\n\n{\n}\n\n" comment (function_definition "void cpio_o(void)\n\n{\n}" primitive_type (function_declarator "cpio_o(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n}" { })))
(translation_unit "undefined4 FUN_00078837(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}\n\n" (function_definition "undefined4 FUN_00078837(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}" type_identifier (function_declarator "FUN_00078837(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int aiStack_120 [17];" primitive_type (array_declarator "aiStack_120 [17]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_dc [4];" type_identifier (array_declarator "auStack_dc [4]" identifier [ number_literal ]) ;) (declaration "int local_d8 [11];" primitive_type (array_declarator "local_d8 [11]" identifier [ number_literal ]) ;) (declaration "uint *local_ac [3];" type_identifier (pointer_declarator "*local_ac [3]" * (array_declarator "local_ac [3]" identifier [ number_literal ])) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "undefined4 local_9c;" type_identifier identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "uint local_94 [5];" type_identifier (array_declarator "local_94 [5]" identifier [ number_literal ]) ;) (declaration "uint local_80 [4];" type_identifier (array_declarator "local_80 [4]" identifier [ number_literal ]) ;) (declaration "uint local_70 [4];" type_identifier (array_declarator "local_70 [4]" identifier [ number_literal ]) ;) (declaration "uint local_60 [10];" type_identifier (array_declarator "local_60 [10]" identifier [ number_literal ]) ;) (declaration "int local_38 [10];" primitive_type (array_declarator "local_38 [10]" identifier [ number_literal ]) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = auStack_dc;" (assignment_expression "puVar10 = auStack_dc" identifier = identifier) ;) (expression_statement "FUN_00027c59();" (call_expression "FUN_00027c59()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_38[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_d8[3] = 0;" (assignment_expression "local_d8[3] = 0" (subscript_expression "local_d8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_d8[4] = 0;" (assignment_expression "local_d8[4] = 0" (subscript_expression "local_d8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_d8[2] = 0;" (assignment_expression "local_d8[2] = 0" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_9c = *(undefined4 *)(unaff_EBP + 0x63766);" (assignment_expression "local_9c = *(undefined4 *)(unaff_EBP + 0x63766)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + 0x63766)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x63766)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63766)" ( (binary_expression "unaff_EBP + 0x63766" identifier + number_literal) ))))) ;) (expression_statement "local_ac[0] = local_80;" (assignment_expression "local_ac[0] = local_80" (subscript_expression "local_ac[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_98 = unaff_EBP + 0x5d4a0;" (assignment_expression "local_98 = unaff_EBP + 0x5d4a0" identifier = (binary_expression "unaff_EBP + 0x5d4a0" identifier + number_literal)) ;) (expression_statement "local_a0 = unaff_EBP + 0x63ab2;" (assignment_expression "local_a0 = unaff_EBP + 0x63ab2" identifier = (binary_expression "unaff_EBP + 0x63ab2" identifier + number_literal)) ;) (labeled_statement "LAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;" statement_identifier : (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 4)" ( (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" * (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63ed6)" ( (binary_expression "unaff_EBP + 0x63ed6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00078ab5;" goto statement_identifier ;))) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x788b3;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x788b3" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_000b1878();" (assignment_expression "uVar4 = FUN_000b1878()" identifier = (call_expression "FUN_000b1878()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 8);" (assignment_expression "iVar7 = *(int *)(puVar10 + 8)" identifier = (pointer_expression "*(int *)(puVar10 + 8)" * (cast_expression "(int *)(puVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) goto LAB_00078bcb;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00078bcb;" goto statement_identifier ;)) (labeled_statement "LAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" statement_identifier : (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" * (cast_expression "(int *)(puVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x4d7aa" identifier + number_literal)) ;)) (do_statement "do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );" do (compound_statement "{\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  }" { (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" * (cast_expression "(undefined4 **)(puVar10 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }" { (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }" for ( (assignment_expression "iVar7 = 0x18" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6 = puVar6 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar6 = puVar6 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar6 + (uint)bVar15 * -2 + 1" (binary_expression "puVar6 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;" (assignment_expression "*(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x5d4a0" identifier + number_literal)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x2c)" * (cast_expression "(undefined4 *)(puVar10 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" else (compound_statement "{\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" { (expression_statement "puVar11 = puVar6 + 2;" (assignment_expression "puVar11 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (expression_statement "puVar14 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar14 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }" for ( (assignment_expression "iVar7 = 0x18" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }" { (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar11 + (uint)bVar15 * -2 + 1" (binary_expression "puVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar15 * -2 + 1" (binary_expression "puVar14 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar2 = (int *)puVar6[1];" (assignment_expression "piVar2 = (int *)puVar6[1]" identifier = (cast_expression "(int *)puVar6[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[1]" identifier [ number_literal ]))) ;) (expression_statement "*(int **)(puVar10 + 4) = piVar2 + 1;" (assignment_expression "*(int **)(puVar10 + 4) = piVar2 + 1" (pointer_expression "*(int **)(puVar10 + 4)" * (cast_expression "(int **)(puVar10 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = (binary_expression "piVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = *piVar2;" (assignment_expression "iVar7 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "puVar6[1] = iVar7;" (assignment_expression "puVar6[1] = iVar7" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }" { (expression_statement "*(undefined4 *)(puVar10 + 0xc) = *puVar6;" (assignment_expression "*(undefined4 *)(puVar10 + 0xc) = *puVar6" (pointer_expression "*(undefined4 *)(puVar10 + 0xc)" * (cast_expression "(undefined4 *)(puVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 0x88)" identifier = (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" * (cast_expression "(undefined4 *)(puVar10 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x70)" ( (binary_expression "puVar10 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c)" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x6c)" * (cast_expression "(undefined4 *)(puVar10 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);" (assignment_expression "uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x5c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x60) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x60)" * (cast_expression "(int *)(puVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x5c]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" { (expression_statement "*(undefined4 *)(puVar10 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x88) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" * (cast_expression "(undefined4 *)(puVar10 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" * (cast_expression "(undefined4 *)(puVar10 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x70)" ( (binary_expression "puVar10 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c)" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x6c)" * (cast_expression "(undefined4 *)(puVar10 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;" (assignment_expression "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" identifier = (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar8 >> 0x14)" ( (binary_expression "uVar8 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) )) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar8 & 0xff" identifier & number_literal))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }))) }))) (while_statement "while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar10 + 0x4c) = uVar9;" (assignment_expression "*(undefined4 *)(puVar10 + 0x4c) = uVar9" (pointer_expression "*(undefined4 *)(puVar10 + 0x4c)" * (cast_expression "(undefined4 *)(puVar10 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x4c)" ( (binary_expression "puVar10 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar10 + 0x48) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x48) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x48)" * (cast_expression "(uint *)(puVar10 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x789e4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x789e4" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar5 = strlen(*(char **)(puVar10 + -0x10));" (assignment_expression "sVar5 = strlen(*(char **)(puVar10 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar10 + -0x10))" identifier (argument_list "(*(char **)(puVar10 + -0x10))" ( (pointer_expression "*(char **)(puVar10 + -0x10)" * (cast_expression "(char **)(puVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(size_t *)(puVar10 + -0xc) = sVar5 + 1;" (assignment_expression "*(size_t *)(puVar10 + -0xc) = sVar5 + 1" (pointer_expression "*(size_t *)(puVar10 + -0xc)" * (cast_expression "(size_t *)(puVar10 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "sVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x4c)" * (cast_expression "(undefined4 *)(puVar10 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x4c)" ( (binary_expression "puVar10 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + -0x14) = uVar12;" (assignment_expression "*(uint *)(puVar10 + -0x14) = uVar12" (pointer_expression "*(uint *)(puVar10 + -0x14)" * (cast_expression "(uint *)(puVar10 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48)" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" * (cast_expression "(undefined4 *)(puVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x48)" * (cast_expression "(undefined4 *)(puVar10 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x1c)" * (cast_expression "(undefined4 *)(puVar10 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x2c)" * (cast_expression "(undefined4 *)(puVar10 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x20) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x20) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x20)" * (cast_expression "(undefined4 *)(puVar10 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18)" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x28)" * (cast_expression "(undefined4 *)(puVar10 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x28)" ( (binary_expression "puVar10 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);" (assignment_expression "*(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20)" (pointer_expression "*(undefined4 *)(puVar10 + -0x2c)" * (cast_expression "(undefined4 *)(puVar10 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x2c)" ( (binary_expression "puVar10 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);" (assignment_expression "*(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24)" (pointer_expression "*(undefined4 *)(puVar10 + -0x30)" * (cast_expression "(undefined4 *)(puVar10 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x30)" ( (binary_expression "puVar10 + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);" (assignment_expression "*(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34)" (pointer_expression "*(undefined4 *)(puVar10 + -0x34)" * (cast_expression "(undefined4 *)(puVar10 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x34)" ( (binary_expression "puVar10 + -0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" * (cast_expression "(undefined4 *)(puVar10 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);" (assignment_expression "*(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28)" (pointer_expression "*(undefined4 *)(puVar10 + -0x38)" * (cast_expression "(undefined4 *)(puVar10 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x38)" ( (binary_expression "puVar10 + -0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);" (assignment_expression "*(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38)" (pointer_expression "*(undefined4 *)(puVar10 + -0x3c)" * (cast_expression "(undefined4 *)(puVar10 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x3c)" ( (binary_expression "puVar10 + -0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x38)" * (cast_expression "(undefined4 *)(puVar10 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x40) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x40) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x40)" * (cast_expression "(undefined4 *)(puVar10 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x40)" ( (binary_expression "puVar10 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x44) = 0x78a22;" (assignment_expression "*(undefined4 *)(puVar10 + -0x44) = 0x78a22" (pointer_expression "*(undefined4 *)(puVar10 + -0x44)" * (cast_expression "(undefined4 *)(puVar10 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x44)" ( (binary_expression "puVar10 + -0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = __printf_chk();" (assignment_expression "uVar12 = __printf_chk()" identifier = (call_expression "__printf_chk()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10)" identifier = (binary_expression "uVar12 + *(uint *)(puVar10 + 0x10)" identifier + (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));" (assignment_expression "iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier = (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14)" (parenthesized_expression "((int)uVar12 >> 0x1f)" ( (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier (argument_list "(uVar12,*(uint *)(puVar10 + 0x10))" ( identifier , (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar12 = -uVar8 & 3;" (assignment_expression "uVar12 = -uVar8 & 3" identifier = (binary_expression "-uVar8 & 3" (unary_expression "-uVar8" - identifier) & number_literal)) ;) (expression_statement "iVar7 = uVar12 - 1;" (assignment_expression "iVar7 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (if_statement "if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }" { (expression_statement "*(uint *)(puVar10 + 0x10) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + 0x14) = iVar13;" (assignment_expression "*(int *)(puVar10 + 0x14) = iVar13" (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78a56;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78a56" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + 0x14);" (assignment_expression "iVar13 = *(int *)(puVar10 + 0x14)" identifier = (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) ;) })) (expression_statement "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar12 + uVar8" identifier + identifier)) ;) (expression_statement "*(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);" (assignment_expression "*(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8)" (pointer_expression "*(uint *)(puVar10 + 0x14)" * (cast_expression "(uint *)(puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar13 + (uint)CARRY4(uVar12,uVar8)" identifier + (cast_expression "(uint)CARRY4(uVar12,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar8)" identifier (argument_list "(uVar12,uVar8)" ( identifier , identifier )))))) ;) (if_statement "if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;" if (parenthesized_expression "(*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0)" ( (binary_expression "*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0" (binary_expression "*(int *)(puVar10 + 0x8c) == 0" (pointer_expression "*(int *)(puVar10 + 0x8c)" * (cast_expression "(int *)(puVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(puVar10 + 0x88) == 0" (pointer_expression "*(int *)(puVar10 + 0x88)" * (cast_expression "(int *)(puVar10 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00078b98;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }" if (parenthesized_expression "((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000)" ( (binary_expression "(*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000" (parenthesized_expression "(*(uint *)(puVar10 + 0x6c) & 0xf000)" ( (binary_expression "*(uint *)(puVar10 + 0x6c) & 0xf000" (pointer_expression "*(uint *)(puVar10 + 0x6c)" * (cast_expression "(uint *)(puVar10 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78b32;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78b32" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0001a413();" (assignment_expression "uVar4 = FUN_0001a413()" identifier = (call_expression "FUN_0001a413()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78b39;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78b39" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a70d();" (call_expression "FUN_0001a70d()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" * (cast_expression "(undefined4 *)(puVar10 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78b56;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78b56" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001b31a();" (call_expression "FUN_0001b31a()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80)" identifier = (binary_expression "*(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80)" (pointer_expression "*(uint *)(puVar10 + 8)" * (cast_expression "(uint *)(puVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) + (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))))) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));" (assignment_expression "iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" identifier = (binary_expression "*(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (binary_expression "*(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84)" (pointer_expression "*(int *)(puVar10 + 0xc)" * (cast_expression "(int *)(puVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar10 + 0x84)" * (cast_expression "(int *)(puVar10 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x84)" ( (binary_expression "puVar10 + 0x84" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" identifier (argument_list "(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" ( (pointer_expression "*(uint *)(puVar10 + 8)" * (cast_expression "(uint *)(puVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) )))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = extraout_EDX;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = extraout_EDX" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" * (cast_expression "(undefined4 *)(puVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x1c) = 0x78b75;" (assignment_expression "*(undefined4 *)(puVar10 + -0x1c) = 0x78b75" (pointer_expression "*(undefined4 *)(puVar10 + -0x1c)" * (cast_expression "(undefined4 *)(puVar10 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "close(*(int *)(puVar10 + -0x18));" (call_expression "close(*(int *)(puVar10 + -0x18))" identifier (argument_list "(*(int *)(puVar10 + -0x18))" ( (pointer_expression "*(int *)(puVar10 + -0x18)" * (cast_expression "(int *)(puVar10 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) ))) ;) (expression_statement "puVar10 = puVar10 + -8;" (assignment_expression "puVar10 = puVar10 + -8" identifier = (binary_expression "puVar10 + -8" identifier + number_literal)) ;) (goto_statement "goto LAB_00078b78;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78aa4;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78aa4" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_0001af4a();" (assignment_expression "iVar7 = FUN_0001af4a()" identifier = (call_expression "FUN_0001af4a()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (do_statement "do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);" do (compound_statement "{\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      }" { (while_statement "while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78ab5;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78ab5" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00019026();" (call_expression "FUN_00019026()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78aba;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78aba" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "uVar4 = FUN_000b19ee();" (assignment_expression "uVar4 = FUN_000b19ee()" identifier = (call_expression "FUN_000b19ee()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 8);" (assignment_expression "iVar7 = *(int *)(puVar10 + 8)" identifier = (pointer_expression "*(int *)(puVar10 + 8)" * (cast_expression "(int *)(puVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_000788c3;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000788c3;" goto statement_identifier ;)) (labeled_statement "LAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);" statement_identifier : (expression_statement "pcVar3 = *(char **)(puVar10 + 8);" (assignment_expression "pcVar3 = *(char **)(puVar10 + 8)" identifier = (pointer_expression "*(char **)(puVar10 + 8)" * (cast_expression "(char **)(puVar10 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3)" identifier = (call_expression "CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3)" identifier (argument_list "((int3)((uint)iVar7 >> 8),*pcVar3)" ( (call_expression "(int3)((uint)iVar7 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar7 >> 8)" ( (binary_expression "(uint)iVar7 >> 8" (cast_expression "(uint)iVar7" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (pointer_expression "*pcVar3" * identifier) )))) ;) (if_statement "if (*pcVar3 != '.') break;" if (parenthesized_expression "(*pcVar3 != '.')" ( (binary_expression "*pcVar3 != '.'" (pointer_expression "*pcVar3" * identifier) != (char_literal "'.'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }" if (parenthesized_expression "(pcVar3[1] != '/')" ( (binary_expression "pcVar3[1] != '/'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }" { (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00078d36;" goto statement_identifier ;) })) (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');" do (compound_statement "{\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          }" { (do_statement "do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');" do (compound_statement "{\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            }" { (expression_statement "*(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;" (assignment_expression "*(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar10 + 4) + 1" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "cVar1 = **(char **)(puVar10 + 4);" (assignment_expression "cVar1 = **(char **)(puVar10 + 4)" identifier = (pointer_expression "**(char **)(puVar10 + 4)" * (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))))) ;) (expression_statement "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1)" identifier = (call_expression "CONCAT31((int3)((uint)uVar4 >> 8),cVar1)" identifier (argument_list "((int3)((uint)uVar4 >> 8),cVar1)" ( (call_expression "(int3)((uint)uVar4 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)uVar4 >> 8)" ( (binary_expression "(uint)uVar4 >> 8" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) }) while (parenthesized_expression "(cVar1 == '/')" ( (binary_expression "cVar1 == '/'" identifier == (char_literal "'/'" ' character ')) )) ;) (if_statement "if (cVar1 != '.') goto LAB_00078bdd;" if (parenthesized_expression "(cVar1 != '.')" ( (binary_expression "cVar1 != '.'" identifier != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_00078bdd;" goto statement_identifier ;)) }) while (parenthesized_expression "((*(char **)(puVar10 + 4))[1] == '/')" ( (binary_expression "(*(char **)(puVar10 + 4))[1] == '/'" (subscript_expression "(*(char **)(puVar10 + 4))[1]" (parenthesized_expression "(*(char **)(puVar10 + 4))" ( (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) )) [ number_literal ]) == (char_literal "'/'" ' character ')) )) ;) (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80)" ( (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 0x80" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" * (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63ed6)" ( (binary_expression "unaff_EBP + 0x63ed6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00078e50;" goto statement_identifier ;)) (labeled_statement "LAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x30)" * (cast_expression "(undefined4 *)(puVar10 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78d55;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78d55" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));" (assignment_expression "iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" identifier (argument_list "(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" ( (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar10 + -0xc)" * (cast_expression "(char **)(puVar10 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar10 + -8)" * (cast_expression "(stat64 **)(puVar10 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_00078d65;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00078d65;" goto statement_identifier ;)) })) (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" * (cast_expression "(char **)(puVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;" statement_identifier : (if_statement "if ((char)uVar4 == '\0') goto LAB_00078be5;" if (parenthesized_expression "((char)uVar4 == '\0')" ( (binary_expression "(char)uVar4 == '\0'" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00078be5;" goto statement_identifier ;))) (labeled_statement "LAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;" statement_identifier : (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80)" ( (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 0x80" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" * (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x63ed6)" ( (binary_expression "unaff_EBP + 0x63ed6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00078d43;" goto statement_identifier ;))) (labeled_statement "LAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;" statement_identifier : (expression_statement "*(char **)(puVar10 + -4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + -4) = pcVar3" (pointer_expression "*(char **)(puVar10 + -4)" * (cast_expression "(char **)(puVar10 + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x30)" * (cast_expression "(undefined4 *)(puVar10 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e62;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e62" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));" (assignment_expression "iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" identifier = (call_expression "__lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" identifier (argument_list "(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" ( (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar10 + -0xc)" * (cast_expression "(char **)(puVar10 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar10 + -8)" * (cast_expression "(stat64 **)(puVar10 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" statement_identifier : (if_statement "if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" if (parenthesized_expression "(**(int **)(puVar10 + 0x3c) != -1)" ( (binary_expression "**(int **)(puVar10 + 0x3c) != -1" (pointer_expression "**(int **)(puVar10 + 0x3c)" * (pointer_expression "*(int **)(puVar10 + 0x3c)" * (cast_expression "(int **)(puVar10 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" { (expression_statement "*(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);" (assignment_expression "*(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c)" (pointer_expression "*(int *)(puVar10 + 0x74)" * (cast_expression "(int *)(puVar10 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) )))) = (pointer_expression "**(int **)(puVar10 + 0x3c)" * (pointer_expression "*(int **)(puVar10 + 0x3c)" * (cast_expression "(int **)(puVar10 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) )))))) ;) }))) (if_statement "if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }" if (parenthesized_expression "(*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1)" ( (binary_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1" (pointer_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x3c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x3c) + 4)" ( (binary_expression "*(int *)(puVar10 + 0x3c) + 4" (pointer_expression "*(int *)(puVar10 + 0x3c)" * (cast_expression "(int *)(puVar10 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }" { (expression_statement "*(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);" (assignment_expression "*(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4)" (pointer_expression "*(int *)(puVar10 + 0x78)" * (cast_expression "(int *)(puVar10 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) )))) = (pointer_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x3c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x3c) + 4)" ( (binary_expression "*(int *)(puVar10 + 0x3c) + 4" (pointer_expression "*(int *)(puVar10 + 0x3c)" * (cast_expression "(int *)(puVar10 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x3c)" ( (binary_expression "puVar10 + 0x3c" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x6c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x6c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x6c)" * (cast_expression "(uint *)(puVar10 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x6c)" ( (binary_expression "puVar10 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x34) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x34) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x34)" * (cast_expression "(uint *)(puVar10 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x34)" ( (binary_expression "puVar10 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" * (cast_expression "(undefined4 *)(puVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" * (cast_expression "(undefined4 *)(puVar10 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x70)" ( (binary_expression "puVar10 + 0x70" identifier + number_literal) ))))) ;) (if_statement "if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" if (parenthesized_expression "((uVar8 & 0xd000) == 0x8000)" ( (binary_expression "(uVar8 & 0xd000) == 0x8000" (parenthesized_expression "(uVar8 & 0xd000)" ( (binary_expression "uVar8 & 0xd000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" { (labeled_statement "LAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" statement_identifier : (if_statement "if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" if (parenthesized_expression "(1 < *(uint *)(puVar10 + 0x1c))" ( (binary_expression "1 < *(uint *)(puVar10 + 0x1c)" number_literal < (pointer_expression "*(uint *)(puVar10 + 0x1c)" * (cast_expression "(uint *)(puVar10 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" { (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" * (cast_expression "(undefined4 **)(puVar10 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00078de1;" goto statement_identifier ;)) (if_statement "if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;" if (parenthesized_expression "(puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))" ( (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8)" (subscript_expression "puVar6[0x19]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb8)" * (cast_expression "(int *)(puVar10 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb8)" ( (binary_expression "puVar10 + 0xb8" identifier + number_literal) ))))) || (binary_expression "puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (subscript_expression "puVar6[0x18]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb4)" * (cast_expression "(int *)(puVar10 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) )))))) )) (goto_statement "goto LAB_00078f54;" goto statement_identifier ;)) (goto_statement "goto LAB_00078e05;" goto statement_identifier ;) }))) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 0x88)" identifier = (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;" (assignment_expression "uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" identifier = (binary_expression "uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (binary_expression "uVar8 & 0xff" identifier & number_literal) | (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar8 >> 0x14)" ( (binary_expression "uVar8 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) )) >> number_literal) )))) ))) << number_literal))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" * (cast_expression "(int *)(puVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x4d7aa" identifier + number_literal)) ;) }) (else_clause "else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" { (expression_statement "*(undefined4 *)(puVar10 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x88) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" * (cast_expression "(undefined4 *)(puVar10 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x88)" ( (binary_expression "puVar10 + 0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" * (cast_expression "(undefined4 *)(puVar10 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x8c)" ( (binary_expression "puVar10 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;" if (parenthesized_expression "((uVar8 & 0xf000) != 0x4000)" ( (binary_expression "(uVar8 & 0xf000) != 0x4000" (parenthesized_expression "(uVar8 & 0xf000)" ( (binary_expression "uVar8 & 0xf000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00078dca;" goto statement_identifier ;)) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x5c)" * (cast_expression "(uint *)(puVar10 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5c)" ( (binary_expression "puVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" * (cast_expression "(undefined4 *)(puVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xa4)" ( (binary_expression "puVar10 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" * (cast_expression "(undefined4 *)(puVar10 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x20)" ( (binary_expression "puVar10 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" * (cast_expression "(undefined4 *)(puVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x78)" ( (binary_expression "puVar10 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" * (cast_expression "(undefined4 *)(puVar10 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x24)" ( (binary_expression "puVar10 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" * (cast_expression "(undefined4 *)(puVar10 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x74)" ( (binary_expression "puVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" * (cast_expression "(undefined4 *)(puVar10 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" * (cast_expression "(undefined4 *)(puVar10 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;" (assignment_expression "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" identifier = (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar8 >> 0x14)" ( (binary_expression "uVar8 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" ( (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" ( (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" * (cast_expression "(uint *)(puVar10 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x60)" ( (binary_expression "puVar10 + 0x60" identifier + number_literal) )))) << number_literal) )) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar8 & 0xff" identifier & number_literal))) ;) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" identifier = (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" * (cast_expression "(uint *)(puVar10 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) & number_literal) | (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" * (cast_expression "(uint *)(puVar10 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier = (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" identifier (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" ( (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" ( (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(puVar10 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x7c)" ( (binary_expression "puVar10 + 0x7c" identifier + number_literal) )))) >> number_literal) ))) | (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" ( (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" ( (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" * (cast_expression "(int *)(puVar10 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x80)" ( (binary_expression "puVar10 + 0x80" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) , (subscript_expression "puVar10[0x7c]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" * (cast_expression "(int *)(puVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x4d7aa" identifier + number_literal)) ;) }))) })) (expression_statement "*(undefined4 *)(puVar10 + -4) = extraout_ECX;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = extraout_ECX" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" * (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + 0x18) = iVar7;" (assignment_expression "*(int *)(puVar10 + 0x18) = iVar7" (pointer_expression "*(int *)(puVar10 + 0x18)" * (cast_expression "(int *)(puVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;" (assignment_expression "*(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1" (pointer_expression "*(int *)(puVar10 + -0xc)" * (cast_expression "(int *)(puVar10 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "unaff_EBP + 0x5f4c1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78c16;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78c16" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = __printf_chk();" (assignment_expression "uVar12 = __printf_chk()" identifier = (call_expression "__printf_chk()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10)" identifier = (binary_expression "uVar12 + *(uint *)(puVar10 + 0x10)" identifier + (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));" (assignment_expression "iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier = (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14)" (parenthesized_expression "((int)uVar12 >> 0x1f)" ( (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (pointer_expression "*(int *)(puVar10 + 0x14)" * (cast_expression "(int *)(puVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" identifier (argument_list "(uVar12,*(uint *)(puVar10 + 0x10))" ( identifier , (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) )))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" * (cast_expression "(undefined4 *)(puVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78c31;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78c31" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" identifier (argument_list "(*(void **)(puVar10 + -0x10))" ( (pointer_expression "*(void **)(puVar10 + -0x10)" * (cast_expression "(void **)(puVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_00078b78:\n    uVar12 = -uVar8 & 3;" statement_identifier : (expression_statement "uVar12 = -uVar8 & 3;" (assignment_expression "uVar12 = -uVar8 & 3" identifier = (binary_expression "-uVar8 & 3" (unary_expression "-uVar8" - identifier) & number_literal)) ;)) (expression_statement "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar12 + uVar8" identifier + identifier)) ;) (expression_statement "*(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);" (assignment_expression "*(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8)" (pointer_expression "*(uint *)(puVar10 + 0x14)" * (cast_expression "(uint *)(puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar7 + (uint)CARRY4(uVar12,uVar8)" identifier + (cast_expression "(uint)CARRY4(uVar12,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar8)" identifier (argument_list "(uVar12,uVar8)" ( identifier , identifier )))))) ;) (for_statement "for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }" for ( (assignment_expression "iVar7 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ; (binary_expression "iVar7 != -1" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -2" identifier = (binary_expression "iVar7 + -2" identifier + number_literal)) ) (compound_statement "{\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }" { (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78d0c;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78d0c" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78d1d;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78d1d" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" statement_identifier : (if_statement "if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" if (parenthesized_expression "(*(int *)(puVar10 + 8) != 0)" ( (binary_expression "*(int *)(puVar10 + 8) != 0" (pointer_expression "*(int *)(puVar10 + 8)" * (cast_expression "(int *)(puVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" { (labeled_statement "LAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78bf3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78bf3" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" identifier (argument_list "(*(void **)(puVar10 + -0x10))" ( (pointer_expression "*(void **)(puVar10 + -0x10)" * (cast_expression "(void **)(puVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_00078899;" goto statement_identifier ;) }))) (if_statement "if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }" if (parenthesized_expression "(*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44))" ( (binary_expression "*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)" (pointer_expression "*(int *)(puVar10 + 4)" * (cast_expression "(int *)(puVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar10 + 0x44)" * (cast_expression "(int *)(puVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x44)" ( (binary_expression "puVar10 + 0x44" identifier + number_literal) ))))) )) (compound_statement "{\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }" { (if_statement "if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }" if (parenthesized_expression "(*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar10 + 0xbc)" * (cast_expression "(int *)(puVar10 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xbc)" ( (binary_expression "puVar10 + 0xbc" identifier + number_literal) )))) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78c00;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78c00" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (while_statement "while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }" while (parenthesized_expression "(puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))" ( (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8)" (subscript_expression "puVar6[0x19]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb8)" * (cast_expression "(int *)(puVar10 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb8)" ( (binary_expression "puVar10 + 0xb8" identifier + number_literal) ))))) || (binary_expression "puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (subscript_expression "puVar6[0x18]" identifier [ number_literal ]) != (pointer_expression "*(int *)(puVar10 + 0xb4)" * (cast_expression "(int *)(puVar10 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb4)" ( (binary_expression "puVar10 + 0xb4" identifier + number_literal) )))))) )) (compound_statement "{\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }" { (labeled_statement "LAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;" statement_identifier : (expression_statement "puVar6 = (undefined4 *)*puVar6;" (assignment_expression "puVar6 = (undefined4 *)*puVar6" identifier = (cast_expression "(undefined4 *)*puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;)) (if_statement "if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00078de1;" goto statement_identifier ;)) })) (labeled_statement "LAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;" statement_identifier : (expression_statement "*(undefined4 **)(puVar10 + 0x18) = puVar6;" (assignment_expression "*(undefined4 **)(puVar10 + 0x18) = puVar6" (pointer_expression "*(undefined4 **)(puVar10 + 0x18)" * (cast_expression "(undefined4 **)(puVar10 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) )))) = identifier) ;)) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar10 + 4)" * (cast_expression "(undefined4 *)(puVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e18;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e18" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strlen(*(char **)(puVar10 + -0x10));" (call_expression "strlen(*(char **)(puVar10 + -0x10))" identifier (argument_list "(*(char **)(puVar10 + -0x10))" ( (pointer_expression "*(char **)(puVar10 + -0x10)" * (cast_expression "(char **)(puVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78e23;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78e23" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0001a288();" (assignment_expression "puVar6 = (undefined4 *)FUN_0001a288()" identifier = (cast_expression "(undefined4 *)FUN_0001a288()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a288()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;" (assignment_expression "*(undefined4 **)(puVar10 + -0x10) = puVar6 + 1" (pointer_expression "*(undefined4 **)(puVar10 + -0x10)" * (cast_expression "(undefined4 **)(puVar10 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e32;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e32" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));" (call_expression "strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc))" identifier (argument_list "(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc))" ( (pointer_expression "*(char **)(puVar10 + -0x10)" * (cast_expression "(char **)(puVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar10 + -0xc)" * (cast_expression "(char **)(puVar10 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = *(int *)(puVar10 + 0x18);" (assignment_expression "iVar7 = *(int *)(puVar10 + 0x18)" identifier = (pointer_expression "*(int *)(puVar10 + 0x18)" * (cast_expression "(int *)(puVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "*puVar6 = *(undefined4 *)(iVar7 + 4)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(iVar7 + 4) = puVar6;" (assignment_expression "*(undefined4 **)(iVar7 + 4) = puVar6" (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar10 + 8)" * (cast_expression "(undefined4 *)(puVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e48;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e48" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" identifier (argument_list "(*(void **)(puVar10 + -0x10))" ( (pointer_expression "*(void **)(puVar10 + -0x10)" * (cast_expression "(void **)(puVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_00078899;" goto statement_identifier ;) (labeled_statement "LAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;" statement_identifier : (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78deb;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78deb" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)FUN_0001a2f5();" (assignment_expression "puVar6 = (undefined4 *)FUN_0001a2f5()" identifier = (cast_expression "(undefined4 *)FUN_0001a2f5()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar11 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = puVar6 + 2;" (assignment_expression "puVar14 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }" for ( (assignment_expression "iVar7 = 0x18" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }" { (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar11 + (uint)bVar15 * -2 + 1" (binary_expression "puVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar15 * -2 + 1" (binary_expression "puVar14 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*puVar6 = *(undefined4 *)(puVar10 + 0xc);" (assignment_expression "*puVar6 = *(undefined4 *)(puVar10 + 0xc)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)(puVar10 + 0xc)" * (cast_expression "(undefined4 *)(puVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar10 + 0xc) = puVar6;" (assignment_expression "*(undefined4 **)(puVar10 + 0xc) = puVar6" (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" * (cast_expression "(undefined4 **)(puVar10 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00078e05;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (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) )) == 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) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (do_statement do (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) ))))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) )))) = (pointer_expression * 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) )))) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) )))) , (subscript_expression IDENT [ LIT ]) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (binary_expression (binary_expression IDENT >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) )))) ))) << LIT) | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) )))) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_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 (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (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) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (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 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (goto_statement goto statement_identifier ;)) (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) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (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)) ;) (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) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ]) == (char_literal ' character ')) )) ;) (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) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (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 == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (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) )) != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 (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) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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) )))) + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) }))) (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (binary_expression (binary_expression IDENT >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) )))) ))) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) )))) , (subscript_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)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (binary_expression (binary_expression IDENT >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) )))) ))) << LIT) | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) )))) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_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)) ;) }))) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_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 (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (unary_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 + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT - LIT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) while (parenthesized_expression ( BOOL )) ;) (while_statement while (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 FUN_00078837(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}" (type_identifier "undefined4") (function_declarator "FUN_00078837(void)" (identifier "FUN_00078837") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 extraout_ECX;\n  undefined4 uVar9;\n  undefined4 extraout_EDX;\n  undefined1 *puVar10;\n  int unaff_EBP;\n  undefined4 *puVar11;\n  uint uVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int aiStack_120 [17];\n  undefined1 auStack_dc [4];\n  int local_d8 [11];\n  uint *local_ac [3];\n  int local_a0;\n  undefined4 local_9c;\n  int local_98;\n  uint local_94 [5];\n  uint local_80 [4];\n  uint local_70 [4];\n  uint local_60 [10];\n  int local_38 [10];\n  \n  bVar15 = 0;\n  puVar10 = auStack_dc;\n  FUN_00027c59();\n  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  local_d8[3] = 0;\n  local_d8[4] = 0;\n  local_d8[2] = 0;\n  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);\n  local_ac[0] = local_80;\n  local_98 = unaff_EBP + 0x5d4a0;\n  local_a0 = unaff_EBP + 0x63ab2;\nLAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;\n  *(undefined4 *)(puVar10 + -4) = 0x788b3;\n  uVar4 = FUN_000b1878();\n  *(undefined4 *)(puVar10 + 8) = uVar4;\n  iVar7 = *(int *)(puVar10 + 8);\n  if (iVar7 != 0) goto LAB_00078bcb;\nLAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n  do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );\n  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }\nLAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;\n  uVar4 = *(undefined4 *)(puVar10 + 4);\n  *(undefined4 *)(puVar10 + -0x10) = uVar4;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;\n  strlen(*(char **)(puVar10 + -0x10));\n  *(undefined4 *)(puVar10 + -4) = 0x78e23;\n  puVar6 = (undefined4 *)FUN_0001a288();\n  *(undefined4 *)(puVar10 + -0xc) = uVar4;\n  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;\n  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));\n  iVar7 = *(int *)(puVar10 + 0x18);\n  *puVar6 = *(undefined4 *)(iVar7 + 4);\n  *(undefined4 **)(iVar7 + 4) = puVar6;\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;\n  free(*(void **)(puVar10 + -0x10));\n  goto LAB_00078899;\nLAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;\n  puVar6 = (undefined4 *)FUN_0001a2f5();\n  puVar11 = *(undefined4 **)(puVar10 + 0x30);\n  puVar14 = puVar6 + 2;\n  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }\n  *puVar6 = *(undefined4 *)(puVar10 + 0xc);\n  *(undefined4 **)(puVar10 + 0xc) = puVar6;\n  goto LAB_00078e05;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "int aiStack_120 [17];" (primitive_type "int") (array_declarator "aiStack_120 [17]" (identifier "aiStack_120") ([ "[") (number_literal "17") (] "]")) (; ";")) (declaration "undefined1 auStack_dc [4];" (type_identifier "undefined1") (array_declarator "auStack_dc [4]" (identifier "auStack_dc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_d8 [11];" (primitive_type "int") (array_declarator "local_d8 [11]" (identifier "local_d8") ([ "[") (number_literal "11") (] "]")) (; ";")) (declaration "uint *local_ac [3];" (type_identifier "uint") (pointer_declarator "*local_ac [3]" (* "*") (array_declarator "local_ac [3]" (identifier "local_ac") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "undefined4 local_9c;" (type_identifier "undefined4") (identifier "local_9c") (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "uint local_94 [5];" (type_identifier "uint") (array_declarator "local_94 [5]" (identifier "local_94") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "uint local_80 [4];" (type_identifier "uint") (array_declarator "local_80 [4]" (identifier "local_80") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_70 [4];" (type_identifier "uint") (array_declarator "local_70 [4]" (identifier "local_70") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_60 [10];" (type_identifier "uint") (array_declarator "local_60 [10]" (identifier "local_60") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "int local_38 [10];" (primitive_type "int") (array_declarator "local_38 [10]" (identifier "local_38") ([ "[") (number_literal "10") (] "]")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = auStack_dc;" (assignment_expression "puVar10 = auStack_dc" (identifier "puVar10") (= "=") (identifier "auStack_dc")) (; ";")) (expression_statement "FUN_00027c59();" (call_expression "FUN_00027c59()" (identifier "FUN_00027c59") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_38[6]" (identifier "local_38") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_d8[3] = 0;" (assignment_expression "local_d8[3] = 0" (subscript_expression "local_d8[3]" (identifier "local_d8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8[4] = 0;" (assignment_expression "local_d8[4] = 0" (subscript_expression "local_d8[4]" (identifier "local_d8") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8[2] = 0;" (assignment_expression "local_d8[2] = 0" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c = *(undefined4 *)(unaff_EBP + 0x63766);" (assignment_expression "local_9c = *(undefined4 *)(unaff_EBP + 0x63766)" (identifier "local_9c") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + 0x63766)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x63766)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x63766)" (( "(") (binary_expression "unaff_EBP + 0x63766" (identifier "unaff_EBP") (+ "+") (number_literal "0x63766")) () ")"))))) (; ";")) (expression_statement "local_ac[0] = local_80;" (assignment_expression "local_ac[0] = local_80" (subscript_expression "local_ac[0]" (identifier "local_ac") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_80")) (; ";")) (expression_statement "local_98 = unaff_EBP + 0x5d4a0;" (assignment_expression "local_98 = unaff_EBP + 0x5d4a0" (identifier "local_98") (= "=") (binary_expression "unaff_EBP + 0x5d4a0" (identifier "unaff_EBP") (+ "+") (number_literal "0x5d4a0"))) (; ";")) (expression_statement "local_a0 = unaff_EBP + 0x63ab2;" (assignment_expression "local_a0 = unaff_EBP + 0x63ab2" (identifier "local_a0") (= "=") (binary_expression "unaff_EBP + 0x63ab2" (identifier "unaff_EBP") (+ "+") (number_literal "0x63ab2"))) (; ";")) (labeled_statement "LAB_00078899:\n  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;" (statement_identifier "LAB_00078899") (: ":") (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;" (if "if") (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 4)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x63ed6)" (( "(") (binary_expression "unaff_EBP + 0x63ed6" (identifier "unaff_EBP") (+ "+") (number_literal "0x63ed6")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078ab5;" (goto "goto") (statement_identifier "LAB_00078ab5") (; ";")))) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x788b3;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x788b3" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x788b3")) (; ";")) (expression_statement "uVar4 = FUN_000b1878();" (assignment_expression "uVar4 = FUN_000b1878()" (identifier "uVar4") (= "=") (call_expression "FUN_000b1878()" (identifier "FUN_000b1878") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar7 = *(int *)(puVar10 + 8);" (assignment_expression "iVar7 = *(int *)(puVar10 + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar10 + 8)" (* "*") (cast_expression "(int *)(puVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_00078bcb;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078bcb;" (goto "goto") (statement_identifier "LAB_00078bcb") (; ";"))) (labeled_statement "LAB_000788c3:\n  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (statement_identifier "LAB_000788c3") (: ":") (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" (* "*") (cast_expression "(int *)(puVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x38)" (( "(") (binary_expression "puVar10 + 0x38" (identifier "puVar10") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "unaff_EBP + 0x4d7aa" (identifier "unaff_EBP") (+ "+") (number_literal "0x4d7aa"))) (; ";"))) (do_statement "do {\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  } while( true );" (do "do") (compound_statement "{\n    puVar6 = *(undefined4 **)(puVar10 + 0xc);\n    if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }\n    while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }\n    *(undefined4 *)(puVar10 + -4) = extraout_ECX;\n    *(int *)(puVar10 + -8) = iVar7;\n    *(int *)(puVar10 + 0x18) = iVar7;\n    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;\n    *(undefined4 *)(puVar10 + -0x10) = 1;\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;\n    uVar12 = __printf_chk();\n    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);\n    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;\n    free(*(void **)(puVar10 + -0x10));\nLAB_00078b78:\n    uVar12 = -uVar8 & 3;\n    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);\n    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }\nLAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }\n    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }\n  }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xc)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (puVar6 == (undefined4 *)0x0) {\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }\n    else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar6 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }\n      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;\n      uVar4 = 0;\n      *(undefined4 *)(puVar10 + 0x18) = 0;\n      *(undefined4 *)(puVar10 + 0x1c) = 0;\n      *(undefined4 *)(puVar10 + 0x20) = 0;\n      *(undefined4 *)(puVar10 + 0x24) = 0;\n      *(undefined4 *)(puVar10 + 0x34) = 0;\n      *(undefined4 *)(puVar10 + 0x28) = 0;\n      *(undefined4 *)(puVar10 + 0x2c) = 0;\n      uVar12 = 0;\n      uVar9 = 0;\n      uVar8 = 0;\n    }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0x30)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x30)" (( "(") (binary_expression "puVar10 + 0x30" (identifier "puVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }" (for "for") (( "(") (assignment_expression "iVar7 = 0x18" (identifier "iVar7") (= "=") (number_literal "0x18")) (; ";") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        *puVar6 = 0;\n        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;\n      }" ({ "{") (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = puVar6 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar6 = puVar6 + (uint)bVar15 * -2 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + (uint)bVar15 * -2 + 1" (binary_expression "puVar6 + (uint)bVar15 * -2" (identifier "puVar6") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;" (assignment_expression "*(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0" (pointer_expression "*(int *)(puVar10 + 4)" (* "*") (cast_expression "(int *)(puVar10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "unaff_EBP + 0x5d4a0" (identifier "unaff_EBP") (+ "+") (number_literal "0x5d4a0"))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x20)" (( "(") (binary_expression "puVar10 + 0x20" (identifier "puVar10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x24)" (( "(") (binary_expression "puVar10 + 0x24" (identifier "puVar10") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x34)" (( "(") (binary_expression "puVar10 + 0x34" (identifier "puVar10") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x28)" (( "(") (binary_expression "puVar10 + 0x28" (identifier "puVar10") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2c)" (( "(") (binary_expression "puVar10 + 0x2c" (identifier "puVar10") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" (else "else") (compound_statement "{\n      puVar11 = puVar6 + 2;\n      puVar14 = *(undefined4 **)(puVar10 + 0x30);\n      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }\n      piVar2 = (int *)puVar6[1];\n      *(int **)(puVar10 + 4) = piVar2 + 1;\n      iVar7 = *piVar2;\n      puVar6[1] = iVar7;\n      if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }\n    }" ({ "{") (expression_statement "puVar11 = puVar6 + 2;" (assignment_expression "puVar11 = puVar6 + 2" (identifier "puVar11") (= "=") (binary_expression "puVar6 + 2" (identifier "puVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar14 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar14 = *(undefined4 **)(puVar10 + 0x30)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x30)" (( "(") (binary_expression "puVar10 + 0x30" (identifier "puVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }" (for "for") (( "(") (assignment_expression "iVar7 = 0x18" (identifier "iVar7") (= "=") (number_literal "0x18")) (; ";") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        *puVar14 = *puVar11;\n        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n      }" ({ "{") (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "puVar11 = puVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar15 * -2 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + (uint)bVar15 * -2 + 1" (binary_expression "puVar11 + (uint)bVar15 * -2" (identifier "puVar11") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = puVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar15 * -2 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + (uint)bVar15 * -2 + 1" (binary_expression "puVar14 + (uint)bVar15 * -2" (identifier "puVar14") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)puVar6[1];" (assignment_expression "piVar2 = (int *)puVar6[1]" (identifier "piVar2") (= "=") (cast_expression "(int *)puVar6[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*(int **)(puVar10 + 4) = piVar2 + 1;" (assignment_expression "*(int **)(puVar10 + 4) = piVar2 + 1" (pointer_expression "*(int **)(puVar10 + 4)" (* "*") (cast_expression "(int **)(puVar10 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "piVar2 + 1" (identifier "piVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = *piVar2;" (assignment_expression "iVar7 = *piVar2" (identifier "iVar7") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "puVar6[1] = iVar7;" (assignment_expression "puVar6[1] = iVar7" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar10 + 0xc) = *puVar6;\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + 0xc) = *puVar6;" (assignment_expression "*(undefined4 *)(puVar10 + 0xc) = *puVar6" (pointer_expression "*(undefined4 *)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 0x88)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x88)" (( "(") (binary_expression "puVar10 + 0x88" (identifier "puVar10") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xa4)" (( "(") (binary_expression "puVar10 + 0xa4" (identifier "puVar10") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x70)" (( "(") (binary_expression "puVar10 + 0x70" (identifier "puVar10") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x20)" (( "(") (binary_expression "puVar10 + 0x20" (identifier "puVar10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x78)" (( "(") (binary_expression "puVar10 + 0x78" (identifier "puVar10") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x24)" (( "(") (binary_expression "puVar10 + 0x24" (identifier "puVar10") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x74)" (( "(") (binary_expression "puVar10 + 0x74" (identifier "puVar10") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c)" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x34)" (( "(") (binary_expression "puVar10 + 0x34" (identifier "puVar10") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x6c)" (( "(") (binary_expression "puVar10 + 0x6c" (identifier "puVar10") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x28)" (( "(") (binary_expression "puVar10 + 0x28" (identifier "puVar10") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xb4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb4)" (( "(") (binary_expression "puVar10 + 0xb4" (identifier "puVar10") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) =\n             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2c)" (( "(") (binary_expression "puVar10 + 0x2c" (identifier "puVar10") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x5c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x5c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5c)" (( "(") (binary_expression "puVar10 + 0x5c" (identifier "puVar10") (+ "+") (number_literal "0x5c")) () ")")))) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);" (assignment_expression "uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" (identifier "uVar8") (= "=") (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" (identifier "CONCAT31") (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c])" (( "(") (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14)" (( "(") (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x5c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5c)" (( "(") (binary_expression "puVar10 + 0x5c" (identifier "puVar10") (+ "+") (number_literal "0x5c")) () ")")))) (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8)" (( "(") (binary_expression "(uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x60) << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar10 + 0x60) << 0x14)" (( "(") (binary_expression "*(int *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x60)" (* "*") (cast_expression "(int *)(puVar10 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (<< "<<") (number_literal "0x14")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (, ",") (subscript_expression "puVar10[0x5c]" (identifier "puVar10") ([ "[") (number_literal "0x5c") (] "]")) () ")")))) (; ";")) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" (* "*") (cast_expression "(uint *)(puVar10 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "uVar9") (= "=") (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "CONCAT31") (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (( "(") (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (( "(") (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (( "(") (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" (( "(") (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" (* "*") (cast_expression "(int *)(puVar10 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (<< "<<") (number_literal "0x14")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (, ",") (subscript_expression "puVar10[0x7c]" (identifier "puVar10") ([ "[") (number_literal "0x7c") (] "]")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x88) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x88)" (( "(") (binary_expression "puVar10 + 0x88" (identifier "puVar10") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x8c)" (( "(") (binary_expression "puVar10 + 0x8c" (identifier "puVar10") (+ "+") (number_literal "0x8c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar10 + 0x5c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5c)" (( "(") (binary_expression "puVar10 + 0x5c" (identifier "puVar10") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xa4)" (( "(") (binary_expression "puVar10 + 0xa4" (identifier "puVar10") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x70)" (( "(") (binary_expression "puVar10 + 0x70" (identifier "puVar10") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x20)" (( "(") (binary_expression "puVar10 + 0x20" (identifier "puVar10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x78)" (( "(") (binary_expression "puVar10 + 0x78" (identifier "puVar10") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x24)" (( "(") (binary_expression "puVar10 + 0x24" (identifier "puVar10") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x74)" (( "(") (binary_expression "puVar10 + 0x74" (identifier "puVar10") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);" (assignment_expression "*(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c)" (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x34)" (( "(") (binary_expression "puVar10 + 0x34" (identifier "puVar10") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x6c)" (( "(") (binary_expression "puVar10 + 0x6c" (identifier "puVar10") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x28)" (( "(") (binary_expression "puVar10 + 0x28" (identifier "puVar10") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xb4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb4)" (( "(") (binary_expression "puVar10 + 0xb4" (identifier "puVar10") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2c)" (( "(") (binary_expression "puVar10 + 0x2c" (identifier "puVar10") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" (identifier "uVar8") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;" (assignment_expression "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (identifier "uVar8") (= "=") (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uint3)" (( "(") (identifier "uint3") () ")"))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (( "(") (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "(uVar8 >> 0x14)" (( "(") (binary_expression "uVar8 >> 0x14" (identifier "uVar8") (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (( "(") (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" (( "(") (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (<< "<<") (number_literal "0x14")) () ")")) (>> ">>") (number_literal "8")) () ")")))) () ")"))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" (* "*") (cast_expression "(uint *)(puVar10 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "uVar9") (= "=") (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "CONCAT31") (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (( "(") (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (( "(") (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (( "(") (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" (( "(") (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" (* "*") (cast_expression "(int *)(puVar10 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (<< "<<") (number_literal "0x14")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (, ",") (subscript_expression "puVar10[0x7c]" (identifier "puVar10") ([ "[") (number_literal "0x7c") (] "]")) () ")")))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (while_statement "while( true ) {\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      *(undefined4 *)(puVar10 + 0x4c) = uVar9;\n      *(uint *)(puVar10 + 0x48) = uVar8;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);\n      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;\n      sVar5 = strlen(*(char **)(puVar10 + -0x10));\n      *(undefined4 *)(puVar10 + -4) = 0;\n      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);\n      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);\n      *(uint *)(puVar10 + -0x14) = uVar12;\n      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);\n      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);\n      *(undefined4 *)(puVar10 + -0x20) = uVar4;\n      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);\n      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);\n      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);\n      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);\n      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);\n      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);\n      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);\n      *(undefined4 *)(puVar10 + -0x40) = 1;\n      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;\n      uVar12 = __printf_chk();\n      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);\n      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));\n      uVar12 = -uVar8 & 3;\n      iVar7 = uVar12 - 1;\n      if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }\n      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;\n      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);\n      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;\n      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }\n      *(undefined4 *)(puVar10 + -4) = 0x78aa4;\n      iVar7 = FUN_0001af4a();\n      if (iVar7 != 0) break;\n      do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);\nLAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }\n      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }\n      uVar8 = *(uint *)(puVar10 + 0x6c);\n      *(uint *)(puVar10 + 0x34) = uVar8;\n      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);\n      if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + 0x4c) = uVar9;" (assignment_expression "*(undefined4 *)(puVar10 + 0x4c) = uVar9" (pointer_expression "*(undefined4 *)(puVar10 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x4c)" (( "(") (binary_expression "puVar10 + 0x4c" (identifier "puVar10") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x48) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x48) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x48)" (* "*") (cast_expression "(uint *)(puVar10 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x48)" (( "(") (binary_expression "puVar10 + 0x48" (identifier "puVar10") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x789e4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x789e4" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x789e4")) (; ";")) (expression_statement "sVar5 = strlen(*(char **)(puVar10 + -0x10));" (assignment_expression "sVar5 = strlen(*(char **)(puVar10 + -0x10))" (identifier "sVar5") (= "=") (call_expression "strlen(*(char **)(puVar10 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar10 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar10 + -0x10)" (* "*") (cast_expression "(char **)(puVar10 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(size_t *)(puVar10 + -0xc) = sVar5 + 1;" (assignment_expression "*(size_t *)(puVar10 + -0xc) = sVar5 + 1" (pointer_expression "*(size_t *)(puVar10 + -0xc)" (* "*") (cast_expression "(size_t *)(puVar10 + -0xc)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "sVar5 + 1" (identifier "sVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x4c)" (( "(") (binary_expression "puVar10 + 0x4c" (identifier "puVar10") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar10 + -0x14) = uVar12;" (assignment_expression "*(uint *)(puVar10 + -0x14) = uVar12" (pointer_expression "*(uint *)(puVar10 + -0x14)" (* "*") (cast_expression "(uint *)(puVar10 + -0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48)" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x48)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x48)" (( "(") (binary_expression "puVar10 + 0x48" (identifier "puVar10") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x1c)" (( "(") (binary_expression "puVar10 + -0x1c" (identifier "puVar10") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2c)" (( "(") (binary_expression "puVar10 + 0x2c" (identifier "puVar10") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x20) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x20) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x20)" (( "(") (binary_expression "puVar10 + -0x20" (identifier "puVar10") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18)" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x24)" (( "(") (binary_expression "puVar10 + -0x24" (identifier "puVar10") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar10 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x28)" (( "(") (binary_expression "puVar10 + -0x28" (identifier "puVar10") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);" (assignment_expression "*(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20)" (pointer_expression "*(undefined4 *)(puVar10 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x2c)" (( "(") (binary_expression "puVar10 + -0x2c" (identifier "puVar10") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x20)" (( "(") (binary_expression "puVar10 + 0x20" (identifier "puVar10") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);" (assignment_expression "*(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24)" (pointer_expression "*(undefined4 *)(puVar10 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x30)" (( "(") (binary_expression "puVar10 + -0x30" (identifier "puVar10") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x24)" (( "(") (binary_expression "puVar10 + 0x24" (identifier "puVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);" (assignment_expression "*(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34)" (pointer_expression "*(undefined4 *)(puVar10 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x34)" (( "(") (binary_expression "puVar10 + -0x34" (identifier "puVar10") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x34)" (( "(") (binary_expression "puVar10 + 0x34" (identifier "puVar10") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);" (assignment_expression "*(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28)" (pointer_expression "*(undefined4 *)(puVar10 + -0x38)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x38)" (( "(") (binary_expression "puVar10 + -0x38" (identifier "puVar10") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x28)" (( "(") (binary_expression "puVar10 + 0x28" (identifier "puVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);" (assignment_expression "*(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38)" (pointer_expression "*(undefined4 *)(puVar10 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x3c)" (( "(") (binary_expression "puVar10 + -0x3c" (identifier "puVar10") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x38)" (( "(") (binary_expression "puVar10 + 0x38" (identifier "puVar10") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x40) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x40) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x40)" (( "(") (binary_expression "puVar10 + -0x40" (identifier "puVar10") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x44) = 0x78a22;" (assignment_expression "*(undefined4 *)(puVar10 + -0x44) = 0x78a22" (pointer_expression "*(undefined4 *)(puVar10 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x44)" (( "(") (binary_expression "puVar10 + -0x44" (identifier "puVar10") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (number_literal "0x78a22")) (; ";")) (expression_statement "uVar12 = __printf_chk();" (assignment_expression "uVar12 = __printf_chk()" (identifier "uVar12") (= "=") (call_expression "__printf_chk()" (identifier "__printf_chk") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10)" (identifier "uVar8") (= "=") (binary_expression "uVar12 + *(uint *)(puVar10 + 0x10)" (identifier "uVar12") (+ "+") (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));" (assignment_expression "iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (identifier "iVar13") (= "=") (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14)" (parenthesized_expression "((int)uVar12 >> 0x1f)" (( "(") (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (pointer_expression "*(int *)(puVar10 + 0x14)" (* "*") (cast_expression "(int *)(puVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x14)" (( "(") (binary_expression "puVar10 + 0x14" (identifier "puVar10") (+ "+") (number_literal "0x14")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (identifier "CARRY4") (argument_list "(uVar12,*(uint *)(puVar10 + 0x10))" (( "(") (identifier "uVar12") (, ",") (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))) () ")")))))) (; ";")) (expression_statement "uVar12 = -uVar8 & 3;" (assignment_expression "uVar12 = -uVar8 & 3" (identifier "uVar12") (= "=") (binary_expression "-uVar8 & 3" (unary_expression "-uVar8" (- "-") (identifier "uVar8")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar7 = uVar12 - 1;" (assignment_expression "iVar7 = uVar12 - 1" (identifier "iVar7") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 != -1) {\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }" (if "if") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        *(uint *)(puVar10 + 0x10) = uVar8;\n        *(int *)(puVar10 + 0x14) = iVar13;\n        do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);\n        uVar8 = *(uint *)(puVar10 + 0x10);\n        iVar13 = *(int *)(puVar10 + 0x14);\n      }" ({ "{") (expression_statement "*(uint *)(puVar10 + 0x10) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(int *)(puVar10 + 0x14) = iVar13;" (assignment_expression "*(int *)(puVar10 + 0x14) = iVar13" (pointer_expression "*(int *)(puVar10 + 0x14)" (* "*") (cast_expression "(int *)(puVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x14)" (( "(") (binary_expression "puVar10 + 0x14" (identifier "puVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (do_statement "do {\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        } while (iVar7 != -1);" (do "do") (compound_statement "{\n          *(undefined4 *)(puVar10 + -4) = 0x78a56;\n          FUN_0001a728();\n          iVar7 = iVar7 + -1;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78a56;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78a56" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78a56")) (; ";")) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" (identifier "FUN_0001a728") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x10)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + 0x14);" (assignment_expression "iVar13 = *(int *)(puVar10 + 0x14)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + 0x14)" (* "*") (cast_expression "(int *)(puVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x14)" (( "(") (binary_expression "puVar10 + 0x14" (identifier "puVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "uVar12 + uVar8" (identifier "uVar12") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);" (assignment_expression "*(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8)" (pointer_expression "*(uint *)(puVar10 + 0x14)" (* "*") (cast_expression "(uint *)(puVar10 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x14)" (( "(") (binary_expression "puVar10 + 0x14" (identifier "puVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar13 + (uint)CARRY4(uVar12,uVar8)" (identifier "iVar13") (+ "+") (cast_expression "(uint)CARRY4(uVar12,uVar8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,uVar8)" (identifier "CARRY4") (argument_list "(uVar12,uVar8)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar8") () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;" (if "if") (parenthesized_expression "(*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0)" (( "(") (binary_expression "*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0" (binary_expression "*(int *)(puVar10 + 0x8c) == 0" (pointer_expression "*(int *)(puVar10 + 0x8c)" (* "*") (cast_expression "(int *)(puVar10 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x8c)" (( "(") (binary_expression "puVar10 + 0x8c" (identifier "puVar10") (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(puVar10 + 0x88) == 0" (pointer_expression "*(int *)(puVar10 + 0x88)" (* "*") (cast_expression "(int *)(puVar10 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x88)" (( "(") (binary_expression "puVar10 + 0x88" (identifier "puVar10") (+ "+") (number_literal "0x88")) () ")")))) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00078b98;" (goto "goto") (statement_identifier "LAB_00078b98") (; ";"))) (if_statement "if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }" (if "if") (parenthesized_expression "((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000)" (( "(") (binary_expression "(*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000" (parenthesized_expression "(*(uint *)(puVar10 + 0x6c) & 0xf000)" (( "(") (binary_expression "*(uint *)(puVar10 + 0x6c) & 0xf000" (pointer_expression "*(uint *)(puVar10 + 0x6c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x6c)" (( "(") (binary_expression "puVar10 + 0x6c" (identifier "puVar10") (+ "+") (number_literal "0x6c")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0xa000")) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar10 + -4) = 0x78b32;\n        uVar4 = FUN_0001a413();\n        *(undefined4 *)(puVar10 + -4) = 0x78b39;\n        FUN_0001a70d();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;\n        FUN_0001b31a();\n        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);\n        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));\n        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;\n        *(undefined4 *)(puVar10 + -0x18) = uVar4;\n        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;\n        close(*(int *)(puVar10 + -0x18));\n        puVar10 = puVar10 + -8;\n        goto LAB_00078b78;\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78b32;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78b32" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78b32")) (; ";")) (expression_statement "uVar4 = FUN_0001a413();" (assignment_expression "uVar4 = FUN_0001a413()" (identifier "uVar4") (= "=") (call_expression "FUN_0001a413()" (identifier "FUN_0001a413") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78b39;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78b39" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78b39")) (; ";")) (expression_statement "FUN_0001a70d();" (call_expression "FUN_0001a70d()" (identifier "FUN_0001a70d") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x8c)" (( "(") (binary_expression "puVar10 + 0x8c" (identifier "puVar10") (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x88)" (( "(") (binary_expression "puVar10 + 0x88" (identifier "puVar10") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78b56;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78b56" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78b56")) (; ";")) (expression_statement "FUN_0001b31a();" (call_expression "FUN_0001b31a()" (identifier "FUN_0001b31a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80)" (identifier "uVar8") (= "=") (binary_expression "*(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80)" (pointer_expression "*(uint *)(puVar10 + 8)" (* "*") (cast_expression "(uint *)(puVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(uint *)(puVar10 + 0x80)" (* "*") (cast_expression "(uint *)(puVar10 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));" (assignment_expression "iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (identifier "iVar7") (= "=") (binary_expression "*(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +\n                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (binary_expression "*(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84)" (pointer_expression "*(int *)(puVar10 + 0xc)" (* "*") (cast_expression "(int *)(puVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar10 + 0x84)" (* "*") (cast_expression "(int *)(puVar10 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x84)" (( "(") (binary_expression "puVar10 + 0x84" (identifier "puVar10") (+ "+") (number_literal "0x84")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (identifier "CARRY4") (argument_list "(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80))" (( "(") (pointer_expression "*(uint *)(puVar10 + 8)" (* "*") (cast_expression "(uint *)(puVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(uint *)(puVar10 + 0x80)" (* "*") (cast_expression "(uint *)(puVar10 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = extraout_EDX;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = extraout_EDX" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "extraout_EDX")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x1c) = 0x78b75;" (assignment_expression "*(undefined4 *)(puVar10 + -0x1c) = 0x78b75" (pointer_expression "*(undefined4 *)(puVar10 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x1c)" (( "(") (binary_expression "puVar10 + -0x1c" (identifier "puVar10") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x78b75")) (; ";")) (expression_statement "close(*(int *)(puVar10 + -0x18));" (call_expression "close(*(int *)(puVar10 + -0x18))" (identifier "close") (argument_list "(*(int *)(puVar10 + -0x18))" (( "(") (pointer_expression "*(int *)(puVar10 + -0x18)" (* "*") (cast_expression "(int *)(puVar10 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar10 = puVar10 + -8;" (assignment_expression "puVar10 = puVar10 + -8" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8"))) (; ";")) (goto_statement "goto LAB_00078b78;" (goto "goto") (statement_identifier "LAB_00078b78") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78aa4;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78aa4" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78aa4")) (; ";")) (expression_statement "iVar7 = FUN_0001af4a();" (assignment_expression "iVar7 = FUN_0001af4a()" (identifier "iVar7") (= "=") (call_expression "FUN_0001af4a()" (identifier "FUN_0001af4a") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) break;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (do_statement "do {\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      } while (iVar7 != 0);" (do "do") (compound_statement "{\n        while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }\n        *(char **)(puVar10 + 4) = pcVar3;\nLAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;\nLAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;\nLAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n        *(undefined4 *)(puVar10 + -0x10) = 3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;\n        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));\n      }" ({ "{") (while_statement "while( true ) {\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          *(undefined4 *)(puVar10 + -4) = 0x78ab5;\n          FUN_00019026();\nLAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;\n          uVar4 = FUN_000b19ee();\n          *(undefined4 *)(puVar10 + 8) = uVar4;\n          iVar7 = *(int *)(puVar10 + 8);\n          if (iVar7 == 0) goto LAB_000788c3;\nLAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);\n          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);\n          if (*pcVar3 != '.') break;\n          if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }\n          *(char **)(puVar10 + 4) = pcVar3;\n          do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');\n          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;\nLAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;\n          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);\n          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);\n          *(undefined4 *)(puVar10 + -0x10) = 3;\n          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;\n          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));\n          if (iVar7 == 0) goto LAB_00078d65;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78ab5;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78ab5" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78ab5")) (; ";")) (expression_statement "FUN_00019026();" (call_expression "FUN_00019026()" (identifier "FUN_00019026") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00078ab5:\n          *(undefined4 *)(puVar10 + -4) = 0x78aba;" (statement_identifier "LAB_00078ab5") (: ":") (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78aba;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78aba" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78aba")) (; ";"))) (expression_statement "uVar4 = FUN_000b19ee();" (assignment_expression "uVar4 = FUN_000b19ee()" (identifier "uVar4") (= "=") (call_expression "FUN_000b19ee()" (identifier "FUN_000b19ee") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar7 = *(int *)(puVar10 + 8);" (assignment_expression "iVar7 = *(int *)(puVar10 + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar10 + 8)" (* "*") (cast_expression "(int *)(puVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_000788c3;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000788c3;" (goto "goto") (statement_identifier "LAB_000788c3") (; ";"))) (labeled_statement "LAB_00078bcb:\n          pcVar3 = *(char **)(puVar10 + 8);" (statement_identifier "LAB_00078bcb") (: ":") (expression_statement "pcVar3 = *(char **)(puVar10 + 8);" (assignment_expression "pcVar3 = *(char **)(puVar10 + 8)" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)(puVar10 + 8)" (* "*") (cast_expression "(char **)(puVar10 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3)" (identifier "uVar4") (= "=") (call_expression "CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3)" (identifier "CONCAT31") (argument_list "((int3)((uint)iVar7 >> 8),*pcVar3)" (( "(") (call_expression "(int3)((uint)iVar7 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)iVar7 >> 8)" (( "(") (binary_expression "(uint)iVar7 >> 8" (cast_expression "(uint)iVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar7")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")))) (; ";")) (if_statement "if (*pcVar3 != '.') break;" (if "if") (parenthesized_expression "(*pcVar3 != '.')" (( "(") (binary_expression "*pcVar3 != '.'" (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (pcVar3[1] != '/') {\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }" (if "if") (parenthesized_expression "(pcVar3[1] != '/')" (( "(") (binary_expression "pcVar3[1] != '/'" (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n            *(char **)(puVar10 + 4) = pcVar3;\n            goto LAB_00078d36;\n          }" ({ "{") (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" (* "*") (cast_expression "(char **)(puVar10 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar3")) (; ";")) (goto_statement "goto LAB_00078d36;" (goto "goto") (statement_identifier "LAB_00078d36") (; ";")) (} "}"))) (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" (* "*") (cast_expression "(char **)(puVar10 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar3")) (; ";")) (do_statement "do {\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          } while ((*(char **)(puVar10 + 4))[1] == '/');" (do "do") (compound_statement "{\n            do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');\n            if (cVar1 != '.') goto LAB_00078bdd;\n          }" ({ "{") (do_statement "do {\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            } while (cVar1 == '/');" (do "do") (compound_statement "{\n              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;\n              cVar1 = **(char **)(puVar10 + 4);\n              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);\n            }" ({ "{") (expression_statement "*(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;" (assignment_expression "*(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1" (pointer_expression "*(int *)(puVar10 + 4)" (* "*") (cast_expression "(int *)(puVar10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(puVar10 + 4) + 1" (pointer_expression "*(int *)(puVar10 + 4)" (* "*") (cast_expression "(int *)(puVar10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = **(char **)(puVar10 + 4);" (assignment_expression "cVar1 = **(char **)(puVar10 + 4)" (identifier "cVar1") (= "=") (pointer_expression "**(char **)(puVar10 + 4)" (* "*") (pointer_expression "*(char **)(puVar10 + 4)" (* "*") (cast_expression "(char **)(puVar10 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1)" (identifier "uVar4") (= "=") (call_expression "CONCAT31((int3)((uint)uVar4 >> 8),cVar1)" (identifier "CONCAT31") (argument_list "((int3)((uint)uVar4 >> 8),cVar1)" (( "(") (call_expression "(int3)((uint)uVar4 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)uVar4 >> 8)" (( "(") (binary_expression "(uint)uVar4 >> 8" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (identifier "cVar1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 == '/')" (( "(") (binary_expression "cVar1 == '/'" (identifier "cVar1") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (; ";")) (if_statement "if (cVar1 != '.') goto LAB_00078bdd;" (if "if") (parenthesized_expression "(cVar1 != '.')" (( "(") (binary_expression "cVar1 != '.'" (identifier "cVar1") (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_00078bdd;" (goto "goto") (statement_identifier "LAB_00078bdd") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((*(char **)(puVar10 + 4))[1] == '/')" (( "(") (binary_expression "(*(char **)(puVar10 + 4))[1] == '/'" (subscript_expression "(*(char **)(puVar10 + 4))[1]" (parenthesized_expression "(*(char **)(puVar10 + 4))" (( "(") (pointer_expression "*(char **)(puVar10 + 4)" (* "*") (cast_expression "(char **)(puVar10 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (; ";")) (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;" (if "if") (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 0x80" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x63ed6)" (( "(") (binary_expression "unaff_EBP + 0x63ed6" (identifier "unaff_EBP") (+ "+") (number_literal "0x63ed6")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078e50;" (goto "goto") (statement_identifier "LAB_00078e50") (; ";"))) (labeled_statement "LAB_00078d43:\n          *(undefined4 *)(puVar10 + -4) = uVar4;" (statement_identifier "LAB_00078d43") (: ":") (expression_statement "*(undefined4 *)(puVar10 + -4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar4")) (; ";"))) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x30)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x30)" (( "(") (binary_expression "puVar10 + 0x30" (identifier "puVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78d55;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78d55" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78d55")) (; ";")) (expression_statement "iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8));" (assignment_expression "iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" (identifier "iVar7") (= "=") (call_expression "__xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" (identifier "__xstat64") (argument_list "(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                            *(stat64 **)(puVar10 + -8))" (( "(") (pointer_expression "*(int *)(puVar10 + -0x10)" (* "*") (cast_expression "(int *)(puVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar10 + -0xc)" (* "*") (cast_expression "(char **)(puVar10 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(stat64 **)(puVar10 + -8)" (* "*") (cast_expression "(stat64 **)(puVar10 + -8)" (( "(") (type_descriptor "stat64 **" (type_identifier "stat64") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00078d65;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078d65;" (goto "goto") (statement_identifier "LAB_00078d65") (; ";"))) (} "}"))) (expression_statement "*(char **)(puVar10 + 4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + 4) = pcVar3" (pointer_expression "*(char **)(puVar10 + 4)" (* "*") (cast_expression "(char **)(puVar10 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar3")) (; ";")) (labeled_statement "LAB_00078bdd:\n        if ((char)uVar4 == '\0') goto LAB_00078be5;" (statement_identifier "LAB_00078bdd") (: ":") (if_statement "if ((char)uVar4 == '\0') goto LAB_00078be5;" (if "if") (parenthesized_expression "((char)uVar4 == '\0')" (( "(") (binary_expression "(char)uVar4 == '\0'" (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00078be5;" (goto "goto") (statement_identifier "LAB_00078be5") (; ";")))) (labeled_statement "LAB_00078d36:\n        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;" (statement_identifier "LAB_00078d36") (: ":") (if_statement "if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;" (if "if") (parenthesized_expression "((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0x63ed6) & 0x80)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0x63ed6) & 0x80" (pointer_expression "*(byte *)(unaff_EBP + 0x63ed6)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0x63ed6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x63ed6)" (( "(") (binary_expression "unaff_EBP + 0x63ed6" (identifier "unaff_EBP") (+ "+") (number_literal "0x63ed6")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078d43;" (goto "goto") (statement_identifier "LAB_00078d43") (; ";")))) (labeled_statement "LAB_00078e50:\n        *(char **)(puVar10 + -4) = pcVar3;" (statement_identifier "LAB_00078e50") (: ":") (expression_statement "*(char **)(puVar10 + -4) = pcVar3;" (assignment_expression "*(char **)(puVar10 + -4) = pcVar3" (pointer_expression "*(char **)(puVar10 + -4)" (* "*") (cast_expression "(char **)(puVar10 + -4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar3")) (; ";"))) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x30)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x30)" (( "(") (binary_expression "puVar10 + 0x30" (identifier "puVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e62;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e62" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78e62")) (; ";")) (expression_statement "iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8));" (assignment_expression "iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" (identifier "iVar7") (= "=") (call_expression "__lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" (identifier "__lxstat64") (argument_list "(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),\n                           *(stat64 **)(puVar10 + -8))" (( "(") (pointer_expression "*(int *)(puVar10 + -0x10)" (* "*") (cast_expression "(int *)(puVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar10 + -0xc)" (* "*") (cast_expression "(char **)(puVar10 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(stat64 **)(puVar10 + -8)" (* "*") (cast_expression "(stat64 **)(puVar10 + -8)" (( "(") (type_descriptor "stat64 **" (type_identifier "stat64") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00078d65:\n      if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" (statement_identifier "LAB_00078d65") (: ":") (if_statement "if (**(int **)(puVar10 + 0x3c) != -1) {\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" (if "if") (parenthesized_expression "(**(int **)(puVar10 + 0x3c) != -1)" (( "(") (binary_expression "**(int **)(puVar10 + 0x3c) != -1" (pointer_expression "**(int **)(puVar10 + 0x3c)" (* "*") (pointer_expression "*(int **)(puVar10 + 0x3c)" (* "*") (cast_expression "(int **)(puVar10 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x3c)" (( "(") (binary_expression "puVar10 + 0x3c" (identifier "puVar10") (+ "+") (number_literal "0x3c")) () ")"))))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);\n      }" ({ "{") (expression_statement "*(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);" (assignment_expression "*(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c)" (pointer_expression "*(int *)(puVar10 + 0x74)" (* "*") (cast_expression "(int *)(puVar10 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x74)" (( "(") (binary_expression "puVar10 + 0x74" (identifier "puVar10") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (pointer_expression "**(int **)(puVar10 + 0x3c)" (* "*") (pointer_expression "*(int **)(puVar10 + 0x3c)" (* "*") (cast_expression "(int **)(puVar10 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x3c)" (( "(") (binary_expression "puVar10 + 0x3c" (identifier "puVar10") (+ "+") (number_literal "0x3c")) () ")")))))) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1)" (( "(") (binary_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1" (pointer_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar10 + 0x3c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar10 + 0x3c) + 4)" (( "(") (binary_expression "*(int *)(puVar10 + 0x3c) + 4" (pointer_expression "*(int *)(puVar10 + 0x3c)" (* "*") (cast_expression "(int *)(puVar10 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x3c)" (( "(") (binary_expression "puVar10 + 0x3c" (identifier "puVar10") (+ "+") (number_literal "0x3c")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);\n      }" ({ "{") (expression_statement "*(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);" (assignment_expression "*(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4)" (pointer_expression "*(int *)(puVar10 + 0x78)" (* "*") (cast_expression "(int *)(puVar10 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x78)" (( "(") (binary_expression "puVar10 + 0x78" (identifier "puVar10") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (pointer_expression "*(int *)(*(int *)(puVar10 + 0x3c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar10 + 0x3c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar10 + 0x3c) + 4)" (( "(") (binary_expression "*(int *)(puVar10 + 0x3c) + 4" (pointer_expression "*(int *)(puVar10 + 0x3c)" (* "*") (cast_expression "(int *)(puVar10 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x3c)" (( "(") (binary_expression "puVar10 + 0x3c" (identifier "puVar10") (+ "+") (number_literal "0x3c")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x6c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x6c)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar10 + 0x6c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x6c)" (( "(") (binary_expression "puVar10 + 0x6c" (identifier "puVar10") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x34) = uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x34) = uVar8" (pointer_expression "*(uint *)(puVar10 + 0x34)" (* "*") (cast_expression "(uint *)(puVar10 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x34)" (( "(") (binary_expression "puVar10 + 0x34" (identifier "puVar10") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);" (assignment_expression "*(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70)" (pointer_expression "*(undefined4 *)(puVar10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x70)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x70)" (( "(") (binary_expression "puVar10 + 0x70" (identifier "puVar10") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (if_statement "if ((uVar8 & 0xd000) == 0x8000) {\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }\n      else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" (if "if") (parenthesized_expression "((uVar8 & 0xd000) == 0x8000)" (( "(") (binary_expression "(uVar8 & 0xd000) == 0x8000" (parenthesized_expression "(uVar8 & 0xd000)" (( "(") (binary_expression "uVar8 & 0xd000" (identifier "uVar8") (& "&") (number_literal "0xd000")) () ")")) (== "==") (number_literal "0x8000")) () ")")) (compound_statement "{\nLAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        uVar4 = *(undefined4 *)(puVar10 + 0x88);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" ({ "{") (labeled_statement "LAB_00078dca:\n        if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" (statement_identifier "LAB_00078dca") (: ":") (if_statement "if (1 < *(uint *)(puVar10 + 0x1c)) {\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" (if "if") (parenthesized_expression "(1 < *(uint *)(puVar10 + 0x1c))" (( "(") (binary_expression "1 < *(uint *)(puVar10 + 0x1c)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(puVar10 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n          puVar6 = *(undefined4 **)(puVar10 + 0xc);\n          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;\n          goto LAB_00078e05;\n        }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xc)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00078de1;" (goto "goto") (statement_identifier "LAB_00078de1") (; ";"))) (if_statement "if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))\n          goto LAB_00078f54;" (if "if") (parenthesized_expression "(puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))" (( "(") (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8)" (subscript_expression "puVar6[0x19]" (identifier "puVar6") ([ "[") (number_literal "0x19") (] "]")) (!= "!=") (pointer_expression "*(int *)(puVar10 + 0xb8)" (* "*") (cast_expression "(int *)(puVar10 + 0xb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb8)" (( "(") (binary_expression "puVar10 + 0xb8" (identifier "puVar10") (+ "+") (number_literal "0xb8")) () ")"))))) (|| "||") (binary_expression "puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (subscript_expression "puVar6[0x18]" (identifier "puVar6") ([ "[") (number_literal "0x18") (] "]")) (!= "!=") (pointer_expression "*(int *)(puVar10 + 0xb4)" (* "*") (cast_expression "(int *)(puVar10 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb4)" (( "(") (binary_expression "puVar10 + 0xb4" (identifier "puVar10") (+ "+") (number_literal "0xb4")) () ")")))))) () ")")) (goto_statement "goto LAB_00078f54;" (goto "goto") (statement_identifier "LAB_00078f54") (; ";"))) (goto_statement "goto LAB_00078e05;" (goto "goto") (statement_identifier "LAB_00078e05") (; ";")) (} "}")))) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar10 + 0x5c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5c)" (( "(") (binary_expression "puVar10 + 0x5c" (identifier "puVar10") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 0x88);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 0x88)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x88)" (( "(") (binary_expression "puVar10 + 0x88" (identifier "puVar10") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xa4)" (( "(") (binary_expression "puVar10 + 0xa4" (identifier "puVar10") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x20)" (( "(") (binary_expression "puVar10 + 0x20" (identifier "puVar10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x78)" (( "(") (binary_expression "puVar10 + 0x78" (identifier "puVar10") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x24)" (( "(") (binary_expression "puVar10 + 0x24" (identifier "puVar10") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x74)" (( "(") (binary_expression "puVar10 + 0x74" (identifier "puVar10") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x28)" (( "(") (binary_expression "puVar10 + 0x28" (identifier "puVar10") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xb4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb4)" (( "(") (binary_expression "puVar10 + 0xb4" (identifier "puVar10") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2c)" (( "(") (binary_expression "puVar10 + 0x2c" (identifier "puVar10") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" (identifier "uVar8") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;" (assignment_expression "uVar8 = uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (identifier "uVar8") (= "=") (binary_expression "uVar8 & 0xff |\n                (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff")) (| "|") (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uint3)" (( "(") (identifier "uint3") () ")"))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (( "(") (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "(uVar8 >> 0x14)" (( "(") (binary_expression "uVar8 >> 0x14" (identifier "uVar8") (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (( "(") (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" (( "(") (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (<< "<<") (number_literal "0x14")) () ")")) (>> ">>") (number_literal "8")) () ")")))) () ")"))) (<< "<<") (number_literal "8")))) (; ";")) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" (* "*") (cast_expression "(uint *)(puVar10 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "uVar9") (= "=") (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "CONCAT31") (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (( "(") (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (( "(") (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (( "(") (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" (( "(") (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" (* "*") (cast_expression "(int *)(puVar10 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (<< "<<") (number_literal "0x14")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (, ",") (subscript_expression "puVar10[0x7c]" (identifier "puVar10") ([ "[") (number_literal "0x7c") (] "]")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" (* "*") (cast_expression "(int *)(puVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x38)" (( "(") (binary_expression "puVar10 + 0x38" (identifier "puVar10") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "unaff_EBP + 0x4d7aa" (identifier "unaff_EBP") (+ "+") (number_literal "0x4d7aa"))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(puVar10 + 0x88) = 0;\n        *(undefined4 *)(puVar10 + 0x8c) = 0;\n        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;\n        uVar8 = *(uint *)(puVar10 + 0x5c);\n        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);\n        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);\n        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);\n        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);\n        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;\n        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;\n        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;\n        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);\n        uVar4 = 0;\n        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x88) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x88)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x88)" (( "(") (binary_expression "puVar10 + 0x88" (identifier "puVar10") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(puVar10 + 0x8c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x8c)" (( "(") (binary_expression "puVar10 + 0x8c" (identifier "puVar10") (+ "+") (number_literal "0x8c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;" (if "if") (parenthesized_expression "((uVar8 & 0xf000) != 0x4000)" (( "(") (binary_expression "(uVar8 & 0xf000) != 0x4000" (parenthesized_expression "(uVar8 & 0xf000)" (( "(") (binary_expression "uVar8 & 0xf000" (identifier "uVar8") (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")")) (goto_statement "goto LAB_00078dca;" (goto "goto") (statement_identifier "LAB_00078dca") (; ";"))) (expression_statement "uVar8 = *(uint *)(puVar10 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(puVar10 + 0x5c)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar10 + 0x5c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5c)" (( "(") (binary_expression "puVar10 + 0x5c" (identifier "puVar10") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xa4)" (( "(") (binary_expression "puVar10 + 0xa4" (identifier "puVar10") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);" (assignment_expression "*(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78)" (pointer_expression "*(undefined4 *)(puVar10 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x20)" (( "(") (binary_expression "puVar10 + 0x20" (identifier "puVar10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x78)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x78)" (( "(") (binary_expression "puVar10 + 0x78" (identifier "puVar10") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);" (assignment_expression "*(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74)" (pointer_expression "*(undefined4 *)(puVar10 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x24)" (( "(") (binary_expression "puVar10 + 0x24" (identifier "puVar10") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x74)" (( "(") (binary_expression "puVar10 + 0x74" (identifier "puVar10") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);" (assignment_expression "*(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4)" (pointer_expression "*(undefined4 *)(puVar10 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x28)" (( "(") (binary_expression "puVar10 + 0x28" (identifier "puVar10") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xb4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xb4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb4)" (( "(") (binary_expression "puVar10 + 0xb4" (identifier "puVar10") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;" (assignment_expression "*(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x2c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2c)" (( "(") (binary_expression "puVar10 + 0x2c" (identifier "puVar10") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000" (binary_expression "uVar8 >> 8 & 0xfff" (binary_expression "uVar8 >> 8" (identifier "uVar8") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x60) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;" (assignment_expression "uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (identifier "uVar8") (= "=") (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uint3)" (( "(") (identifier "uint3") () ")"))) (argument_list "((uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8))" (( "(") (binary_expression "(uint3)(uVar8 >> 0x14) |\n                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (call_expression "(uint3)(uVar8 >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "(uVar8 >> 0x14)" (( "(") (binary_expression "uVar8 >> 0x14" (identifier "uVar8") (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)" (( "(") (binary_expression "(*(uint *)(puVar10 + 0x60) << 0x14) >> 8" (parenthesized_expression "(*(uint *)(puVar10 + 0x60) << 0x14)" (( "(") (binary_expression "*(uint *)(puVar10 + 0x60) << 0x14" (pointer_expression "*(uint *)(puVar10 + 0x60)" (* "*") (cast_expression "(uint *)(puVar10 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x60)" (( "(") (binary_expression "puVar10 + 0x60" (identifier "puVar10") (+ "+") (number_literal "0x60")) () ")")))) (<< "<<") (number_literal "0x14")) () ")")) (>> ">>") (number_literal "8")) () ")")))) () ")"))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;" (assignment_expression "uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8 & 0xfff" (binary_expression "*(uint *)(puVar10 + 0x7c) >> 8" (pointer_expression "*(uint *)(puVar10 + 0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "*(uint *)(puVar10 + 0x80) & 0xfffff000" (pointer_expression "*(uint *)(puVar10 + 0x80)" (* "*") (cast_expression "(uint *)(puVar10 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);" (assignment_expression "uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "uVar9") (= "=") (call_expression "CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (identifier "CONCAT31") (argument_list "((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c])" (( "(") (binary_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |\n                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (call_expression "(uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14)" (( "(") (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14" (binary_expression "(uint)*(undefined4 *)(puVar10 + 0x7c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x7c)" (( "(") (binary_expression "puVar10 + 0x7c" (identifier "puVar10") (+ "+") (number_literal "0x7c")) () ")")))) (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8)" (( "(") (binary_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8" (call_expression "(uint)(*(int *)(puVar10 + 0x80) << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar10 + 0x80) << 0x14)" (( "(") (binary_expression "*(int *)(puVar10 + 0x80) << 0x14" (pointer_expression "*(int *)(puVar10 + 0x80)" (* "*") (cast_expression "(int *)(puVar10 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x80)" (( "(") (binary_expression "puVar10 + 0x80" (identifier "puVar10") (+ "+") (number_literal "0x80")) () ")")))) (<< "<<") (number_literal "0x14")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (, ",") (subscript_expression "puVar10[0x7c]" (identifier "puVar10") ([ "[") (number_literal "0x7c") (] "]")) () ")")))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;" (assignment_expression "*(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa" (pointer_expression "*(int *)(puVar10 + 0x38)" (* "*") (cast_expression "(int *)(puVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x38)" (( "(") (binary_expression "puVar10 + 0x38" (identifier "puVar10") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "unaff_EBP + 0x4d7aa" (identifier "unaff_EBP") (+ "+") (number_literal "0x4d7aa"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(undefined4 *)(puVar10 + -4) = extraout_ECX;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = extraout_ECX" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" (* "*") (cast_expression "(int *)(puVar10 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(puVar10 + 0x18) = iVar7;" (assignment_expression "*(int *)(puVar10 + 0x18) = iVar7" (pointer_expression "*(int *)(puVar10 + 0x18)" (* "*") (cast_expression "(int *)(puVar10 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;" (assignment_expression "*(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1" (pointer_expression "*(int *)(puVar10 + -0xc)" (* "*") (cast_expression "(int *)(puVar10 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "unaff_EBP + 0x5f4c1" (identifier "unaff_EBP") (+ "+") (number_literal "0x5f4c1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78c16;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78c16" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78c16")) (; ";")) (expression_statement "uVar12 = __printf_chk();" (assignment_expression "uVar12 = __printf_chk()" (identifier "uVar12") (= "=") (call_expression "__printf_chk()" (identifier "__printf_chk") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar8 = uVar12 + *(uint *)(puVar10 + 0x10)" (identifier "uVar8") (= "=") (binary_expression "uVar12 + *(uint *)(puVar10 + 0x10)" (identifier "uVar12") (+ "+") (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));" (assignment_expression "iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (identifier "iVar7") (= "=") (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +\n            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (binary_expression "((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14)" (parenthesized_expression "((int)uVar12 >> 0x1f)" (( "(") (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (pointer_expression "*(int *)(puVar10 + 0x14)" (* "*") (cast_expression "(int *)(puVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x14)" (( "(") (binary_expression "puVar10 + 0x14" (identifier "puVar10") (+ "+") (number_literal "0x14")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,*(uint *)(puVar10 + 0x10))" (identifier "CARRY4") (argument_list "(uVar12,*(uint *)(puVar10 + 0x10))" (( "(") (identifier "uVar12") (, ",") (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78c31;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78c31" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78c31")) (; ";")) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" (identifier "free") (argument_list "(*(void **)(puVar10 + -0x10))" (( "(") (pointer_expression "*(void **)(puVar10 + -0x10)" (* "*") (cast_expression "(void **)(puVar10 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_00078b78:\n    uVar12 = -uVar8 & 3;" (statement_identifier "LAB_00078b78") (: ":") (expression_statement "uVar12 = -uVar8 & 3;" (assignment_expression "uVar12 = -uVar8 & 3" (identifier "uVar12") (= "=") (binary_expression "-uVar8 & 3" (unary_expression "-uVar8" (- "-") (identifier "uVar8")) (& "&") (number_literal "3"))) (; ";"))) (expression_statement "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8;" (assignment_expression "*(uint *)(puVar10 + 0x10) = uVar12 + uVar8" (pointer_expression "*(uint *)(puVar10 + 0x10)" (* "*") (cast_expression "(uint *)(puVar10 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "uVar12 + uVar8" (identifier "uVar12") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "*(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);" (assignment_expression "*(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8)" (pointer_expression "*(uint *)(puVar10 + 0x14)" (* "*") (cast_expression "(uint *)(puVar10 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x14)" (( "(") (binary_expression "puVar10 + 0x14" (identifier "puVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar7 + (uint)CARRY4(uVar12,uVar8)" (identifier "iVar7") (+ "+") (cast_expression "(uint)CARRY4(uVar12,uVar8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,uVar8)" (identifier "CARRY4") (argument_list "(uVar12,uVar8)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar8") () ")")))))) (; ";")) (for_statement "for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }" (for "for") (( "(") (assignment_expression "iVar7 = uVar12 - 1" (identifier "iVar7") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) (; ";") (assignment_expression "iVar7 = iVar7 + -2" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -2" (identifier "iVar7") (+ "+") (number_literal "-2"))) () ")") (compound_statement "{\n      *(undefined4 *)(puVar10 + -4) = 0x78d0c;\n      FUN_0001a728();\n      if (iVar7 == 0) break;\n      *(undefined4 *)(puVar10 + -4) = 0x78d1d;\n      FUN_0001a728();\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78d0c;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78d0c" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78d0c")) (; ";")) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" (identifier "FUN_0001a728") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78d1d;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78d1d" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78d1d")) (; ";")) (expression_statement "FUN_0001a728();" (call_expression "FUN_0001a728()" (identifier "FUN_0001a728") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00078b98:\n    if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" (statement_identifier "LAB_00078b98") (: ":") (if_statement "if (*(int *)(puVar10 + 8) != 0) {\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar10 + 8) != 0)" (( "(") (binary_expression "*(int *)(puVar10 + 8) != 0" (pointer_expression "*(int *)(puVar10 + 8)" (* "*") (cast_expression "(int *)(puVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);\n      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;\n      free(*(void **)(puVar10 + -0x10));\n      goto LAB_00078899;\n    }" ({ "{") (labeled_statement "LAB_00078be5:\n      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (statement_identifier "LAB_00078be5") (: ":") (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78bf3;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78bf3" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78bf3")) (; ";")) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" (identifier "free") (argument_list "(*(void **)(puVar10 + -0x10))" (( "(") (pointer_expression "*(void **)(puVar10 + -0x10)" (* "*") (cast_expression "(void **)(puVar10 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (goto_statement "goto LAB_00078899;" (goto "goto") (statement_identifier "LAB_00078899") (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44))" (( "(") (binary_expression "*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)" (pointer_expression "*(int *)(puVar10 + 4)" (* "*") (cast_expression "(int *)(puVar10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar10 + 0x44)" (* "*") (cast_expression "(int *)(puVar10 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x44)" (( "(") (binary_expression "puVar10 + 0x44" (identifier "puVar10") (+ "+") (number_literal "0x44")) () ")"))))) () ")")) (compound_statement "{\n      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }\n                    \n      *(undefined4 *)(puVar10 + -4) = 0x78c00;\n      FUN_00017e20();\n    }" ({ "{") (if_statement "if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar10 + 0xbc)" (* "*") (cast_expression "(int *)(puVar10 + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xbc)" (( "(") (binary_expression "puVar10 + 0xbc" (identifier "puVar10") (+ "+") (number_literal "0xbc")) () ")")))) (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78c00;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78c00" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78c00")) (; ";")) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" (identifier "FUN_00017e20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (while_statement "while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }" (while "while") (parenthesized_expression "(puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))" (( "(") (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (binary_expression "puVar6[0x19] != *(int *)(puVar10 + 0xb8)" (subscript_expression "puVar6[0x19]" (identifier "puVar6") ([ "[") (number_literal "0x19") (] "]")) (!= "!=") (pointer_expression "*(int *)(puVar10 + 0xb8)" (* "*") (cast_expression "(int *)(puVar10 + 0xb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb8)" (( "(") (binary_expression "puVar10 + 0xb8" (identifier "puVar10") (+ "+") (number_literal "0xb8")) () ")"))))) (|| "||") (binary_expression "puVar6[0x18] != *(int *)(puVar10 + 0xb4)" (subscript_expression "puVar6[0x18]" (identifier "puVar6") ([ "[") (number_literal "0x18") (] "]")) (!= "!=") (pointer_expression "*(int *)(puVar10 + 0xb4)" (* "*") (cast_expression "(int *)(puVar10 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xb4)" (( "(") (binary_expression "puVar10 + 0xb4" (identifier "puVar10") (+ "+") (number_literal "0xb4")) () ")")))))) () ")")) (compound_statement "{\nLAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;\n    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;\n  }" ({ "{") (labeled_statement "LAB_00078f54:\n    puVar6 = (undefined4 *)*puVar6;" (statement_identifier "LAB_00078f54") (: ":") (expression_statement "puVar6 = (undefined4 *)*puVar6;" (assignment_expression "puVar6 = (undefined4 *)*puVar6" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*puVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";"))) (if_statement "if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00078de1;" (goto "goto") (statement_identifier "LAB_00078de1") (; ";"))) (} "}"))) (labeled_statement "LAB_00078e05:\n  *(undefined4 **)(puVar10 + 0x18) = puVar6;" (statement_identifier "LAB_00078e05") (: ":") (expression_statement "*(undefined4 **)(puVar10 + 0x18) = puVar6;" (assignment_expression "*(undefined4 **)(puVar10 + 0x18) = puVar6" (pointer_expression "*(undefined4 **)(puVar10 + 0x18)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "puVar6")) (; ";"))) (expression_statement "uVar4 = *(undefined4 *)(puVar10 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(puVar10 + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e18;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e18" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78e18")) (; ";")) (expression_statement "strlen(*(char **)(puVar10 + -0x10));" (call_expression "strlen(*(char **)(puVar10 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar10 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar10 + -0x10)" (* "*") (cast_expression "(char **)(puVar10 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78e23;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78e23" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78e23")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0001a288();" (assignment_expression "puVar6 = (undefined4 *)FUN_0001a288()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0001a288()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a288()" (identifier "FUN_0001a288") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = uVar4;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = uVar4" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;" (assignment_expression "*(undefined4 **)(puVar10 + -0x10) = puVar6 + 1" (pointer_expression "*(undefined4 **)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e32;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e32" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78e32")) (; ";")) (expression_statement "strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));" (call_expression "strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc))" (identifier "strcpy") (argument_list "(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc))" (( "(") (pointer_expression "*(char **)(puVar10 + -0x10)" (* "*") (cast_expression "(char **)(puVar10 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar10 + -0xc)" (* "*") (cast_expression "(char **)(puVar10 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar10 + 0x18);" (assignment_expression "iVar7 = *(int *)(puVar10 + 0x18)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar10 + 0x18)" (* "*") (cast_expression "(int *)(puVar10 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*puVar6 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "*puVar6 = *(undefined4 *)(iVar7 + 4)" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(iVar7 + 4) = puVar6;" (assignment_expression "*(undefined4 **)(iVar7 + 4) = puVar6" (pointer_expression "*(undefined4 **)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x78e48;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x78e48" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78e48")) (; ";")) (expression_statement "free(*(void **)(puVar10 + -0x10));" (call_expression "free(*(void **)(puVar10 + -0x10))" (identifier "free") (argument_list "(*(void **)(puVar10 + -0x10))" (( "(") (pointer_expression "*(void **)(puVar10 + -0x10)" (* "*") (cast_expression "(void **)(puVar10 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (goto_statement "goto LAB_00078899;" (goto "goto") (statement_identifier "LAB_00078899") (; ";")) (labeled_statement "LAB_00078de1:\n  *(undefined4 *)(puVar10 + -4) = 0x78deb;" (statement_identifier "LAB_00078de1") (: ":") (expression_statement "*(undefined4 *)(puVar10 + -4) = 0x78deb;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x78deb" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x78deb")) (; ";"))) (expression_statement "puVar6 = (undefined4 *)FUN_0001a2f5();" (assignment_expression "puVar6 = (undefined4 *)FUN_0001a2f5()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0001a2f5()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a2f5()" (identifier "FUN_0001a2f5") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(puVar10 + 0x30);" (assignment_expression "puVar11 = *(undefined4 **)(puVar10 + 0x30)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x30)" (( "(") (binary_expression "puVar10 + 0x30" (identifier "puVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar14 = puVar6 + 2;" (assignment_expression "puVar14 = puVar6 + 2" (identifier "puVar14") (= "=") (binary_expression "puVar6 + 2" (identifier "puVar6") (+ "+") (number_literal "2"))) (; ";")) (for_statement "for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar7 = 0x18" (identifier "iVar7") (= "=") (number_literal "0x18")) (; ";") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar14 = *puVar11;\n    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;\n    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "puVar11 = puVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar15 * -2 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + (uint)bVar15 * -2 + 1" (binary_expression "puVar11 + (uint)bVar15 * -2" (identifier "puVar11") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = puVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar15 * -2 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + (uint)bVar15 * -2 + 1" (binary_expression "puVar14 + (uint)bVar15 * -2" (identifier "puVar14") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*puVar6 = *(undefined4 *)(puVar10 + 0xc);" (assignment_expression "*puVar6 = *(undefined4 *)(puVar10 + 0xc)" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*(undefined4 *)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar10 + 0xc) = puVar6;" (assignment_expression "*(undefined4 **)(puVar10 + 0xc) = puVar6" (pointer_expression "*(undefined4 **)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (goto_statement "goto LAB_00078e05;" (goto "goto") (statement_identifier "LAB_00078e05") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

void function_1(void)

{
}


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

undefined4 MASKED(void)

{
  char cVar1;
  int *piVar2;
  char *pcVar3;
  undefined4 uVar4;
  size_t sVar5;
  undefined4 *puVar6;
  int iVar7;
  uint uVar8;
  undefined4 extraout_ECX;
  undefined4 uVar9;
  undefined4 extraout_EDX;
  undefined1 *puVar10;
  int unaff_EBP;
  undefined4 *puVar11;
  uint uVar12;
  int iVar13;
  undefined4 *puVar14;
  int in_GS_OFFSET;
  byte bVar15;
  int aiStack_120 [17];
  undefined1 auStack_dc [4];
  int local_d8 [11];
  uint *local_ac [3];
  int local_a0;
  undefined4 local_9c;
  int local_98;
  uint local_94 [5];
  uint local_80 [4];
  uint local_70 [4];
  uint local_60 [10];
  int local_38 [10];
  
  bVar15 = 0;
  puVar10 = auStack_dc;
  FUN_00027c59();
  local_38[6] = *(undefined4 *)(in_GS_OFFSET + 0x14);
  local_d8[3] = 0;
  local_d8[4] = 0;
  local_d8[2] = 0;
  local_9c = *(undefined4 *)(unaff_EBP + 0x63766);
  local_ac[0] = local_80;
  local_98 = unaff_EBP + 0x5d4a0;
  local_a0 = unaff_EBP + 0x63ab2;
LAB_00078899:
  if ((*(byte *)(unaff_EBP + 0x63ed6) & 4) == 0) goto LAB_00078ab5;
  *(undefined4 *)(puVar10 + -4) = 0x788b3;
  uVar4 = FUN_000b1878();
  *(undefined4 *)(puVar10 + 8) = uVar4;
  iVar7 = *(int *)(puVar10 + 8);
  if (iVar7 != 0) goto LAB_00078bcb;
LAB_000788c3:
  *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;
  do {
    puVar6 = *(undefined4 **)(puVar10 + 0xc);
    if (puVar6 == (undefined4 *)0x0) {
      puVar6 = *(undefined4 **)(puVar10 + 0x30);
      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {
        *puVar6 = 0;
        puVar6 = puVar6 + (uint)bVar15 * -2 + 1;
      }
      *(int *)(puVar10 + 4) = unaff_EBP + 0x5d4a0;
      uVar4 = 0;
      *(undefined4 *)(puVar10 + 0x18) = 0;
      *(undefined4 *)(puVar10 + 0x1c) = 0;
      *(undefined4 *)(puVar10 + 0x20) = 0;
      *(undefined4 *)(puVar10 + 0x24) = 0;
      *(undefined4 *)(puVar10 + 0x34) = 0;
      *(undefined4 *)(puVar10 + 0x28) = 0;
      *(undefined4 *)(puVar10 + 0x2c) = 0;
      uVar12 = 0;
      uVar9 = 0;
      uVar8 = 0;
    }
    else {
      puVar11 = puVar6 + 2;
      puVar14 = *(undefined4 **)(puVar10 + 0x30);
      for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {
        *puVar14 = *puVar11;
        puVar11 = puVar11 + (uint)bVar15 * -2 + 1;
        puVar14 = puVar14 + (uint)bVar15 * -2 + 1;
      }
      piVar2 = (int *)puVar6[1];
      *(int **)(puVar10 + 4) = piVar2 + 1;
      iVar7 = *piVar2;
      puVar6[1] = iVar7;
      if (iVar7 == 0) {
        *(undefined4 *)(puVar10 + 0xc) = *puVar6;
        uVar4 = *(undefined4 *)(puVar10 + 0x88);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) =
             *(uint *)(puVar10 + 0x5c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x5c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x60) << 0x14) >> 8),puVar10[0x5c]);
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
      }
      else {
        *(undefined4 *)(puVar10 + 0x88) = 0;
        *(undefined4 *)(puVar10 + 0x8c) = 0;
        uVar8 = *(uint *)(puVar10 + 0x5c);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x34) = *(undefined4 *)(puVar10 + 0x6c);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |
                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
        uVar4 = 0;
      }
    }
    while( true ) {
      *(undefined4 *)(puVar10 + 0x4c) = uVar9;
      *(uint *)(puVar10 + 0x48) = uVar8;
      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 4);
      *(undefined4 *)(puVar10 + -0x14) = 0x789e4;
      sVar5 = strlen(*(char **)(puVar10 + -0x10));
      *(undefined4 *)(puVar10 + -4) = 0;
      *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 4);
      *(size_t *)(puVar10 + -0xc) = sVar5 + 1;
      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x4c);
      *(uint *)(puVar10 + -0x14) = uVar12;
      *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar10 + 0x48);
      *(undefined4 *)(puVar10 + -0x1c) = *(undefined4 *)(puVar10 + 0x2c);
      *(undefined4 *)(puVar10 + -0x20) = uVar4;
      *(undefined4 *)(puVar10 + -0x24) = *(undefined4 *)(puVar10 + 0x18);
      *(undefined4 *)(puVar10 + -0x28) = *(undefined4 *)(puVar10 + 0x1c);
      *(undefined4 *)(puVar10 + -0x2c) = *(undefined4 *)(puVar10 + 0x20);
      *(undefined4 *)(puVar10 + -0x30) = *(undefined4 *)(puVar10 + 0x24);
      *(undefined4 *)(puVar10 + -0x34) = *(undefined4 *)(puVar10 + 0x34);
      *(undefined4 *)(puVar10 + -0x38) = *(undefined4 *)(puVar10 + 0x28);
      *(undefined4 *)(puVar10 + -0x3c) = *(undefined4 *)(puVar10 + 0x38);
      *(undefined4 *)(puVar10 + -0x40) = 1;
      *(undefined4 *)(puVar10 + -0x44) = 0x78a22;
      uVar12 = __printf_chk();
      uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);
      iVar13 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +
               (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));
      uVar12 = -uVar8 & 3;
      iVar7 = uVar12 - 1;
      if (iVar7 != -1) {
        *(uint *)(puVar10 + 0x10) = uVar8;
        *(int *)(puVar10 + 0x14) = iVar13;
        do {
          *(undefined4 *)(puVar10 + -4) = 0x78a56;
          FUN_0001a728();
          iVar7 = iVar7 + -1;
        } while (iVar7 != -1);
        uVar8 = *(uint *)(puVar10 + 0x10);
        iVar13 = *(int *)(puVar10 + 0x14);
      }
      *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;
      *(uint *)(puVar10 + 0x14) = iVar13 + (uint)CARRY4(uVar12,uVar8);
      if (*(int *)(puVar10 + 0x8c) == 0 && *(int *)(puVar10 + 0x88) == 0) goto LAB_00078b98;
      if ((*(uint *)(puVar10 + 0x6c) & 0xf000) != 0xa000) {
        *(undefined4 *)(puVar10 + -4) = 0x78b32;
        uVar4 = FUN_0001a413();
        *(undefined4 *)(puVar10 + -4) = 0x78b39;
        FUN_0001a70d();
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 0x8c);
        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x88);
        *(undefined4 *)(puVar10 + -0x14) = 0x78b56;
        FUN_0001b31a();
        uVar8 = *(uint *)(puVar10 + 8) + *(uint *)(puVar10 + 0x80);
        iVar7 = *(int *)(puVar10 + 0xc) + *(int *)(puVar10 + 0x84) +
                (uint)CARRY4(*(uint *)(puVar10 + 8),*(uint *)(puVar10 + 0x80));
        *(undefined4 *)(puVar10 + -0x14) = extraout_EDX;
        *(undefined4 *)(puVar10 + -0x18) = uVar4;
        *(undefined4 *)(puVar10 + -0x1c) = 0x78b75;
        close(*(int *)(puVar10 + -0x18));
        puVar10 = puVar10 + -8;
        goto LAB_00078b78;
      }
      *(undefined4 *)(puVar10 + -4) = 0x78aa4;
      iVar7 = FUN_0001af4a();
      if (iVar7 != 0) break;
      do {
        while( true ) {
          *(undefined4 *)(puVar10 + -4) = 0x78ab5;
          FUN_00019026();
LAB_00078ab5:
          *(undefined4 *)(puVar10 + -4) = 0x78aba;
          uVar4 = FUN_000b19ee();
          *(undefined4 *)(puVar10 + 8) = uVar4;
          iVar7 = *(int *)(puVar10 + 8);
          if (iVar7 == 0) goto LAB_000788c3;
LAB_00078bcb:
          pcVar3 = *(char **)(puVar10 + 8);
          uVar4 = CONCAT31((int3)((uint)iVar7 >> 8),*pcVar3);
          if (*pcVar3 != '.') break;
          if (pcVar3[1] != '/') {
            *(char **)(puVar10 + 4) = pcVar3;
            goto LAB_00078d36;
          }
          *(char **)(puVar10 + 4) = pcVar3;
          do {
            do {
              *(int *)(puVar10 + 4) = *(int *)(puVar10 + 4) + 1;
              cVar1 = **(char **)(puVar10 + 4);
              uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),cVar1);
            } while (cVar1 == '/');
            if (cVar1 != '.') goto LAB_00078bdd;
          } while ((*(char **)(puVar10 + 4))[1] == '/');
          if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) == 0) goto LAB_00078e50;
LAB_00078d43:
          *(undefined4 *)(puVar10 + -4) = uVar4;
          *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);
          *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);
          *(undefined4 *)(puVar10 + -0x10) = 3;
          *(undefined4 *)(puVar10 + -0x14) = 0x78d55;
          iVar7 = __xstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),
                            *(stat64 **)(puVar10 + -8));
          if (iVar7 == 0) goto LAB_00078d65;
        }
        *(char **)(puVar10 + 4) = pcVar3;
LAB_00078bdd:
        if ((char)uVar4 == '\0') goto LAB_00078be5;
LAB_00078d36:
        if ((*(byte *)(unaff_EBP + 0x63ed6) & 0x80) != 0) goto LAB_00078d43;
LAB_00078e50:
        *(char **)(puVar10 + -4) = pcVar3;
        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar10 + 0x30);
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar10 + 4);
        *(undefined4 *)(puVar10 + -0x10) = 3;
        *(undefined4 *)(puVar10 + -0x14) = 0x78e62;
        iVar7 = __lxstat64(*(int *)(puVar10 + -0x10),*(char **)(puVar10 + -0xc),
                           *(stat64 **)(puVar10 + -8));
      } while (iVar7 != 0);
LAB_00078d65:
      if (**(int **)(puVar10 + 0x3c) != -1) {
        *(int *)(puVar10 + 0x74) = **(int **)(puVar10 + 0x3c);
      }
      if (*(int *)(*(int *)(puVar10 + 0x3c) + 4) != -1) {
        *(int *)(puVar10 + 0x78) = *(int *)(*(int *)(puVar10 + 0x3c) + 4);
      }
      uVar8 = *(uint *)(puVar10 + 0x6c);
      *(uint *)(puVar10 + 0x34) = uVar8;
      *(undefined4 *)(puVar10 + 0x1c) = *(undefined4 *)(puVar10 + 0x70);
      if ((uVar8 & 0xd000) == 0x8000) {
LAB_00078dca:
        if (1 < *(uint *)(puVar10 + 0x1c)) {
          puVar6 = *(undefined4 **)(puVar10 + 0xc);
          if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;
          if (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4))
          goto LAB_00078f54;
          goto LAB_00078e05;
        }
        uVar8 = *(uint *)(puVar10 + 0x5c);
        uVar4 = *(undefined4 *)(puVar10 + 0x88);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = uVar8 & 0xff |
                (uint)(uint3)((uint3)(uVar8 >> 0x14) |
                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8;
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;
      }
      else {
        *(undefined4 *)(puVar10 + 0x88) = 0;
        *(undefined4 *)(puVar10 + 0x8c) = 0;
        if ((uVar8 & 0xf000) != 0x4000) goto LAB_00078dca;
        uVar8 = *(uint *)(puVar10 + 0x5c);
        *(undefined4 *)(puVar10 + 0x18) = *(undefined4 *)(puVar10 + 0xa4);
        *(undefined4 *)(puVar10 + 0x20) = *(undefined4 *)(puVar10 + 0x78);
        *(undefined4 *)(puVar10 + 0x24) = *(undefined4 *)(puVar10 + 0x74);
        *(undefined4 *)(puVar10 + 0x28) = *(undefined4 *)(puVar10 + 0xb4);
        *(uint *)(puVar10 + 0x2c) = uVar8 >> 8 & 0xfff | *(uint *)(puVar10 + 0x60) & 0xfffff000;
        uVar8 = (uint)(uint3)((uint3)(uVar8 >> 0x14) |
                             (uint3)((*(uint *)(puVar10 + 0x60) << 0x14) >> 8)) << 8 | uVar8 & 0xff;
        uVar12 = *(uint *)(puVar10 + 0x7c) >> 8 & 0xfff | *(uint *)(puVar10 + 0x80) & 0xfffff000;
        uVar9 = CONCAT31((uint3)((uint)*(undefined4 *)(puVar10 + 0x7c) >> 0x14) |
                         (uint3)((uint)(*(int *)(puVar10 + 0x80) << 0x14) >> 8),puVar10[0x7c]);
        uVar4 = 0;
        *(int *)(puVar10 + 0x38) = unaff_EBP + 0x4d7aa;
      }
    }
    *(undefined4 *)(puVar10 + -4) = extraout_ECX;
    *(int *)(puVar10 + -8) = iVar7;
    *(int *)(puVar10 + 0x18) = iVar7;
    *(int *)(puVar10 + -0xc) = unaff_EBP + 0x5f4c1;
    *(undefined4 *)(puVar10 + -0x10) = 1;
    *(undefined4 *)(puVar10 + -0x14) = 0x78c16;
    uVar12 = __printf_chk();
    uVar8 = uVar12 + *(uint *)(puVar10 + 0x10);
    iVar7 = ((int)uVar12 >> 0x1f) + *(int *)(puVar10 + 0x14) +
            (uint)CARRY4(uVar12,*(uint *)(puVar10 + 0x10));
    *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 0x18);
    *(undefined4 *)(puVar10 + -0x14) = 0x78c31;
    free(*(void **)(puVar10 + -0x10));
LAB_00078b78:
    uVar12 = -uVar8 & 3;
    *(uint *)(puVar10 + 0x10) = uVar12 + uVar8;
    *(uint *)(puVar10 + 0x14) = iVar7 + (uint)CARRY4(uVar12,uVar8);
    for (iVar7 = uVar12 - 1; iVar7 != -1; iVar7 = iVar7 + -2) {
      *(undefined4 *)(puVar10 + -4) = 0x78d0c;
      FUN_0001a728();
      if (iVar7 == 0) break;
      *(undefined4 *)(puVar10 + -4) = 0x78d1d;
      FUN_0001a728();
    }
LAB_00078b98:
    if (*(int *)(puVar10 + 8) != 0) {
LAB_00078be5:
      *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);
      *(undefined4 *)(puVar10 + -0x14) = 0x78bf3;
      free(*(void **)(puVar10 + -0x10));
      goto LAB_00078899;
    }
    if (*(int *)(puVar10 + 4) == *(int *)(puVar10 + 0x44)) {
      if (*(int *)(puVar10 + 0xbc) == *(int *)(in_GS_OFFSET + 0x14)) {
        return 0;
      }
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar10 + -4) = 0x78c00;
      FUN_00017e20();
    }
  } while( true );
  while (puVar6[0x19] != *(int *)(puVar10 + 0xb8) || puVar6[0x18] != *(int *)(puVar10 + 0xb4)) {
LAB_00078f54:
    puVar6 = (undefined4 *)*puVar6;
    if (puVar6 == (undefined4 *)0x0) goto LAB_00078de1;
  }
LAB_00078e05:
  *(undefined4 **)(puVar10 + 0x18) = puVar6;
  uVar4 = *(undefined4 *)(puVar10 + 4);
  *(undefined4 *)(puVar10 + -0x10) = uVar4;
  *(undefined4 *)(puVar10 + -0x14) = 0x78e18;
  strlen(*(char **)(puVar10 + -0x10));
  *(undefined4 *)(puVar10 + -4) = 0x78e23;
  puVar6 = (undefined4 *)FUN_0001a288();
  *(undefined4 *)(puVar10 + -0xc) = uVar4;
  *(undefined4 **)(puVar10 + -0x10) = puVar6 + 1;
  *(undefined4 *)(puVar10 + -0x14) = 0x78e32;
  strcpy(*(char **)(puVar10 + -0x10),*(char **)(puVar10 + -0xc));
  iVar7 = *(int *)(puVar10 + 0x18);
  *puVar6 = *(undefined4 *)(iVar7 + 4);
  *(undefined4 **)(iVar7 + 4) = puVar6;
  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar10 + 8);
  *(undefined4 *)(puVar10 + -0x14) = 0x78e48;
  free(*(void **)(puVar10 + -0x10));
  goto LAB_00078899;
LAB_00078de1:
  *(undefined4 *)(puVar10 + -4) = 0x78deb;
  puVar6 = (undefined4 *)FUN_0001a2f5();
  puVar11 = *(undefined4 **)(puVar10 + 0x30);
  puVar14 = puVar6 + 2;
  for (iVar7 = 0x18; iVar7 != 0; iVar7 = iVar7 + -1) {
    *puVar14 = *puVar11;
    puVar11 = puVar11 + (uint)bVar15 * -2 + 1;
    puVar14 = puVar14 + (uint)bVar15 * -2 + 1;
  }
  *puVar6 = *(undefined4 *)(puVar10 + 0xc);
  *(undefined4 **)(puVar10 + 0xc) = puVar6;
  goto LAB_00078e05;
}

