
void calculate_nonce(uint32_t nonce_time,char *method,char *rnd,size_t rnd_size,char *uri,
                    char *realm,DigestAlgorithm *da,char *nonce)

{
  int iVar1;
  undefined *puVar2;
  undefined *puVar3;
  size_t sVar4;
  undefined4 uVar5;
  char *pcVar6;
  int iVar7;
  uint uVar8;
  char cVar10;
  uint uVar9;
  uchar *puVar11;
  int iVar12;
  size_t *hex;
  uchar *bin;
  char *hex_00;
  char *str2;
  int *piVar13;
  char *pcVar14;
  undefined4 uVar15;
  size_t len;
  uchar *bin_00;
  undefined *puVar16;
  code *pcVar17;
  int iVar18;
  int iVar19;
  code *pcVar20;
  code *pcVar21;
  int aiStack_e0 [10];
  undefined1 auStack_b8 [4];
  undefined4 uStack_b4;
  int aiStack_b0 [4];
  int aiStack_a0 [12];
  undefined1 auStack_70 [4];
  undefined4 uStack_6c;
  undefined1 auStack_68 [16];
  uchar timestamp [4];
  char timestamphex [9];
  
  puVar3 = PTR___stack_chk_guard_0003f2ec;
  puVar2 = PTR_DAT_0003f05c;
  len = da->digest_size;
  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;
  iVar1 = -(len + 7 & 0xfffffff8);
  (*da->init)(da->ctx);
  puVar11 = (uchar *)(timestamphex + iVar1 + -0x20);
  timestamp = (uchar  [4])nonce_time;
  (*da->update)(da->ctx,timestamp,4);
  (*da->update)(da->ctx,puVar2 + -0x26d0,1);
  sVar4 = (*(code *)PTR_strlen_0003f228)(method);
  (*da->update)(da->ctx,(uint8_t *)method,sVar4);
  (*da->update)(da->ctx,puVar2 + -0x26d0,1);
  if (rnd_size != 0) {
    (*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);
  }
  (*da->update)(da->ctx,puVar2 + -0x26d0,1);
  sVar4 = (*(code *)PTR_strlen_0003f228)(uri);
  (*da->update)(da->ctx,(uint8_t *)uri,sVar4);
  (*da->update)(da->ctx,puVar2 + -0x26d0,1);
  sVar4 = (*(code *)PTR_strlen_0003f228)(realm);
  (*da->update)(da->ctx,(uint8_t *)realm,sVar4);
  (*da->digest)(da->ctx,puVar11);
  cvthex(puVar11,len,nonce);
  hex = (size_t *)timestamphex;
  cvthex(timestamp,4,(char *)hex);
  bin = (uchar *)0x8;
  (*(code *)PTR_strncat_0003f140)();
  if (iVar12 == *(int *)puVar3) {
    return;
  }
  pcVar20 = digest_calc_ha1_from_digest;
  puVar16 = PTR___stack_chk_fail_0003f2b8;
  (*(code *)PTR___stack_chk_fail_0003f2b8)();
  *(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14) = da;
  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;
  *(char **)((int)aiStack_a0 + iVar1 + 0x24) = realm;
  *(size_t *)((int)aiStack_a0 + iVar1 + 0x20) = len;
  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;
  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;
  *(undefined **)((int)aiStack_a0 + iVar1) = puVar16 + 0x2168c;
  *(code **)((int)&uStack_6c + iVar1) = pcVar20;
  *(char **)((int)aiStack_a0 + iVar1 + 0x2c) = method;
  *(char **)((int)aiStack_a0 + iVar1 + 0x28) = uri;
  *(uchar **)((int)aiStack_a0 + iVar1 + 0x1c) = puVar11;
  piVar13 = *(int **)(puVar16 + 0x19948);
  iVar12 = *(int *)(puVar16 + 0x196b8);
  uVar15 = *(undefined4 *)(timestamphex + iVar1 + -0x20);
  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar13;
  str2 = (char *)rnd_size;
  iVar12 = MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc));
  iVar18 = *(int *)((int)aiStack_a0 + iVar1);
  if (iVar12 == 0) {
    iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));
    iVar18 = *(int *)((int)aiStack_a0 + iVar1);
    if (iVar12 == 0) {
      hex_00 = (char *)hex[3];
      pcVar6 = (char *)*hex;
      puVar11 = bin;
      cvthex(bin,(size_t)pcVar6,hex_00);
      iVar12 = *(int *)((int)aiStack_a0 + iVar1);
      goto LAB_00025b04;
    }
  }
  uri = (char *)*hex;
  nonce = *(char **)(iVar18 + -0x7fd4);
  (*(code *)hex[4])(hex[1]);
  bin_00 = (uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)));
  (*(code *)hex[5])(hex[1],bin,0x10);
  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);
  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size);
  (*(code *)hex[5])(hex[1],rnd_size,uVar5);
  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);
  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15);
  (*(code *)hex[5])(hex[1],uVar15,uVar5);
  (*(code *)hex[6])(hex[1],bin_00);
  hex_00 = (char *)hex[3];
  puVar11 = bin_00;
  pcVar6 = uri;
  cvthex(bin_00,(size_t)uri,hex_00);
  iVar12 = *(int *)((int)aiStack_a0 + iVar1);
  bin = bin_00;
  method = (char *)((int)aiStack_b0 + iVar1);
LAB_00025b04:
  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13) {
    return;
  }
  pcVar20 = *(code **)(iVar12 + -0x7d78);
  pcVar21 = lookup_sub_value;
  (*pcVar20)();
  pcVar17 = *(code **)(pcVar20 + 0x1969c);
  *(size_t **)((int)aiStack_e0 + iVar1 + 8) = hex;
  *(code **)((int)aiStack_e0 + iVar1) = pcVar20 + 0x214a4;
  *(char **)((int)aiStack_e0 + iVar1 + 0x24) = method;
  *(char **)((int)aiStack_e0 + iVar1 + 0x18) = nonce;
  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar15;
  *(size_t *)((int)aiStack_e0 + iVar1 + 0x10) = rnd_size;
  *(uchar **)((int)aiStack_b0 + iVar1) = puVar11;
  *(code **)((int)&uStack_b4 + iVar1) = pcVar21;
  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;
  *(char **)((int)aiStack_e0 + iVar1 + 0x20) = uri;
  *(uchar **)((int)aiStack_e0 + iVar1 + 0x1c) = bin;
  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar13;
  *(char **)((int)aiStack_b0 + iVar1 + 4) = pcVar6;
  sVar4 = (*pcVar17)(str2);
  iVar12 = *(int *)((int)aiStack_e0 + iVar1);
  cVar10 = *hex_00;
  do {
    if (cVar10 == '\0') {
      return;
    }
    pcVar20 = *(code **)(iVar12 + -0x7dfc);
    while( true ) {
      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);
      if (pcVar6 == (char *)0x0) {
        return;
      }
      pcVar14 = pcVar6 + 1;
      cVar10 = pcVar6[1];
      while (cVar10 == ' ') {
        pcVar14 = pcVar14 + 1;
        cVar10 = *pcVar14;
      }
      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);
      if (cVar10 == '\"') {
        pcVar14 = pcVar14 + 1;
        iVar12 = (*pcVar20)(pcVar14,0x22);
        if (iVar12 == 0) {
          return;
        }
        iVar18 = iVar12 + 1;
      }
      else {
        iVar18 = (*pcVar20)(pcVar14,0x2c);
        iVar12 = iVar18;
      }
      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);
      iVar19 = *(int *)((int)aiStack_e0 + iVar1);
      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {
        if (iVar12 == 0) {
          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);
          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);
          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);
          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {
            uVar8 = iVar12 + 1U;
          }
          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);
        }
        else {
          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);
          pcVar20 = *(code **)(iVar19 + -0x7d40);
          uVar8 = (iVar12 - (int)pcVar14) + 1;
          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);
          if (uVar9 < uVar8) {
            uVar8 = uVar9;
          }
        }
        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);
        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;
        return;
      }
      if (iVar18 == 0) {
        return;
      }
      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);
      iVar12 = *(int *)((int)aiStack_e0 + iVar1);
      if (iVar18 == 0) {
        return;
      }
      cVar10 = *(char *)(iVar18 + 1);
      hex_00 = (char *)(iVar18 + 1);
      if (cVar10 != ' ') break;
      do {
        hex_00 = hex_00 + 1;
      } while (*hex_00 == ' ');
      pcVar20 = *(code **)(iVar12 + -0x7dfc);
      if (*hex_00 == '\0') {
        return;
      }
    }
  } while( true );
}



int FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,
                undefined4 param_6,int *param_7,int param_8)

{
  int iVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  char *pcVar7;
  uint uVar8;
  char cVar10;
  uint uVar9;
  int *piVar11;
  int iVar12;
  char *pcVar13;
  int iVar14;
  int *piVar15;
  char *pcVar16;
  int iVar17;
  undefined *puVar18;
  code *pcVar19;
  int iVar20;
  int iVar21;
  code *pcVar22;
  code *pcVar23;
  int aiStack_e0 [10];
  undefined1 auStack_b8 [4];
  undefined4 uStack_b4;
  int aiStack_b0 [4];
  int aiStack_a0 [12];
  undefined1 auStack_70 [4];
  undefined4 uStack_6c;
  undefined1 auStack_68 [16];
  undefined4 local_3c;
  int aiStack_38 [3];
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_0003f2ec;
  puVar2 = PTR_DAT_0003f05c;
  iVar17 = *param_7;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  iVar1 = -(iVar17 + 7U & 0xfffffff8);
  (*(code *)param_7[4])(param_7[1]);
  iVar14 = (int)aiStack_38 + iVar1 + -0x20;
  local_3c = param_1;
  (*(code *)param_7[5])(param_7[1],&local_3c,4);
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);
  (*(code *)param_7[5])(param_7[1],param_2,uVar4);
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  if (param_4 != 0) {
    (*(code *)param_7[5])(param_7[1],param_3,param_4);
  }
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);
  (*(code *)param_7[5])(param_7[1],param_5,uVar4);
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);
  (*(code *)param_7[5])(param_7[1],param_6,uVar4);
  (*(code *)param_7[6])(param_7[1],iVar14);
  FUN_000255f0(iVar14,iVar17,param_8);
  piVar11 = aiStack_38;
  FUN_000255f0(&local_3c,4,piVar11);
  iVar12 = 8;
  (*(code *)PTR_strncat_0003f140)();
  iVar5 = *(int *)puVar3;
  if (local_2c == iVar5) {
    return iVar5;
  }
  pcVar22 = FUN_000259a4;
  puVar18 = PTR___stack_chk_fail_0003f2b8;
  (*(code *)PTR___stack_chk_fail_0003f2b8)();
  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;
  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;
  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;
  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;
  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;
  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;
  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;
  *(code **)((int)&uStack_6c + iVar1) = pcVar22;
  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;
  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;
  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;
  piVar15 = *(int **)(puVar18 + 0x19948);
  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);
  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;
  iVar14 = param_4;
  iVar17 = FUN_00021920();
  iVar5 = *(int *)((int)aiStack_a0 + iVar1);
  if (iVar17 == 0) {
    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);
    iVar5 = *(int *)((int)aiStack_a0 + iVar1);
    if (iVar17 == 0) {
      pcVar13 = (char *)piVar11[3];
      iVar5 = *piVar11;
      iVar17 = iVar12;
      FUN_000255f0();
      iVar20 = *(int *)((int)aiStack_a0 + iVar1);
      goto LAB_00025b04;
    }
  }
  param_5 = *piVar11;
  param_8 = *(int *)(iVar5 + -0x7fd4);
  (*(code *)piVar11[4])(piVar11[1]);
  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));
  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);
  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);
  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);
  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);
  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);
  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);
  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);
  (*(code *)piVar11[6])(piVar11[1],iVar21);
  pcVar13 = (char *)piVar11[3];
  iVar17 = iVar21;
  iVar5 = param_5;
  FUN_000255f0();
  iVar20 = *(int *)((int)aiStack_a0 + iVar1);
  iVar12 = iVar21;
  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);
LAB_00025b04:
  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {
    return *piVar15;
  }
  pcVar22 = *(code **)(iVar20 + -0x7d78);
  pcVar23 = FUN_00025b8c;
  (*pcVar22)();
  pcVar19 = *(code **)(pcVar22 + 0x1969c);
  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;
  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;
  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;
  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;
  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;
  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;
  *(int *)((int)aiStack_b0 + iVar1) = iVar17;
  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;
  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;
  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;
  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;
  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;
  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;
  iVar17 = (*pcVar19)(iVar14);
  iVar12 = *(int *)((int)aiStack_e0 + iVar1);
  cVar10 = *pcVar13;
  do {
    if (cVar10 == '\0') {
      return 0;
    }
    pcVar22 = *(code **)(iVar12 + -0x7dfc);
    while( true ) {
      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);
      if (pcVar7 == (char *)0x0) {
        return 0;
      }
      pcVar16 = pcVar7 + 1;
      cVar10 = pcVar7[1];
      while (cVar10 == ' ') {
        pcVar16 = pcVar16 + 1;
        cVar10 = *pcVar16;
      }
      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);
      if (cVar10 == '\"') {
        pcVar16 = pcVar16 + 1;
        iVar12 = (*pcVar22)(pcVar16,0x22);
        if (iVar12 == 0) {
          return 0;
        }
        iVar5 = iVar12 + 1;
      }
      else {
        iVar5 = (*pcVar22)(pcVar16,0x2c);
        iVar12 = iVar5;
      }
      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);
      iVar21 = *(int *)((int)aiStack_e0 + iVar1);
      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {
        if (iVar12 == 0) {
          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);
          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);
          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);
          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {
            uVar8 = iVar14 + 1U;
          }
          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);
        }
        else {
          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);
          pcVar22 = *(code **)(iVar21 + -0x7d40);
          uVar8 = (iVar12 - (int)pcVar16) + 1;
          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);
          if (uVar9 < uVar8) {
            uVar8 = uVar9;
          }
        }
        iVar14 = uVar8 - 1;
        (*pcVar22)(uVar4,pcVar16,iVar14);
        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;
        return iVar14;
      }
      if (iVar5 == 0) {
        return 0;
      }
      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);
      iVar12 = *(int *)((int)aiStack_e0 + iVar1);
      if (iVar5 == 0) {
        return 0;
      }
      cVar10 = *(char *)(iVar5 + 1);
      pcVar13 = (char *)(iVar5 + 1);
      if (cVar10 != ' ') break;
      do {
        pcVar13 = pcVar13 + 1;
      } while (*pcVar13 == ' ');
      pcVar22 = *(code **)(iVar12 + -0x7dfc);
      if (*pcVar13 == '\0') {
        return 0;
      }
    }
  } while( true );
}


lui gp,0x2
addiu gp,gp,0x18d0
addu gp,gp,t9
addiu sp,sp,-0x68
sw s8,0x60(sp)
or s8,sp,zero
sw s1,0x44(sp)
sw ra,0x64(sp)
sw gp,0x10(sp)
sw s7,0x5c(sp)
or s7,a1,zero
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s3,0x4c(sp)
addiu s3,s8,0x2c
sw s2,0x48(sp)
sw s0,0x40(sp)
sw s4,0x50(sp)
lw s1,0x80(s8)
lw s2,-0x7d44(gp)
lw v1,0x84(s8)
lw s0,-0x7fd4(gp)
lw s4,0x0(s1)
lw a1,0x0(s2)
lw t9,0x10(s1)
addiu v0,s4,0x7
lw s6,0x78(s8)
lw s5,0x7c(s8)
srl v0,v0,0x3
sw a0,0x68(s8)
sw a3,0x74(s8)
sll v0,v0,0x3
sw v1,0x24(s8)
sw a2,0x1c(s8)
sw s3,0x20(s8)
subu sp,sp,v0
sw a1,0x3c(s8)
jalr t9
_lw a0,0x4(s1)
li a2,0x4
lw t0,0x68(s8)
or a1,s3,zero
lw t9,0x14(s1)
addiu s3,sp,0x10
lw a0,0x4(s1)
jalr t9
_sw t0,0x2c(s8)
li a2,0x1
lw t9,0x14(s1)
addiu a1,s0,-0x26d0
jalr t9
_lw a0,0x4(s1)
lw gp,0x10(s8)
lw t9,-0x7e08(gp)
jalr t9
_or a0,s7,zero
or a1,s7,zero
lw t9,0x14(s1)
or a2,v0,zero
jalr t9
_lw a0,0x4(s1)
li a2,0x1
lw t9,0x14(s1)
addiu a1,s0,-0x26d0
jalr t9
_lw a0,0x4(s1)
lw a3,0x74(s8)
beq a3,zero,0x00025888
_nop
lw t9,0x14(s1)
or a2,a3,zero
lw a0,0x4(s1)
jalr t9
_lw a1,0x1c(s8)
lw t9,0x14(s1)
li a2,0x1
lw a0,0x4(s1)
jalr t9
_addiu a1,s0,-0x26d0
lw gp,0x10(s8)
lw t9,-0x7e08(gp)
jalr t9
_or a0,s6,zero
or a1,s6,zero
lw t9,0x14(s1)
or a2,v0,zero
jalr t9
_lw a0,0x4(s1)
li a2,0x1
lw t9,0x14(s1)
addiu a1,s0,-0x26d0
jalr t9
_lw a0,0x4(s1)
lw gp,0x10(s8)
lw t9,-0x7e08(gp)
jalr t9
_or a0,s5,zero
or a1,s5,zero
lw t9,0x14(s1)
or a2,v0,zero
jalr t9
_lw a0,0x4(s1)
or a1,s3,zero
lw t9,0x18(s1)
jalr t9
_lw a0,0x4(s1)
or a1,s4,zero
lw gp,0x10(s8)
or a0,s3,zero
lw t3,0x24(s8)
lw t9,-0x7fac(gp)
addiu t9,t9,0x55f0
bal 0x000255f0
_or a2,t3,zero
addiu t2,s8,0x30
lw a0,0x20(s8)
li a1,0x4
bal 0x000255f0
_or a2,t2,zero
li a2,0x8
lw gp,0x10(s8)
or a1,t2,zero
lw t9,-0x7ef0(gp)
jalr t9
_or a0,t3,zero
lw v1,0x3c(s8)
lw v0,0x0(s2)
bne v1,v0,0x00025998
_lw gp,0x10(s8)
or sp,s8,zero
lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lw t9,-0x7d78(gp)
jalr t9
_nop
(translation_unit "int FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "int FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)" identifier (parameter_list "(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int aiStack_e0 [10];" primitive_type (array_declarator "aiStack_e0 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_b8 [4];" type_identifier (array_declarator "auStack_b8 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "int aiStack_b0 [4];" primitive_type (array_declarator "aiStack_b0 [4]" identifier [ number_literal ]) ;) (declaration "int aiStack_a0 [12];" primitive_type (array_declarator "aiStack_a0 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_70 [4];" type_identifier (array_declarator "auStack_70 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [16];" type_identifier (array_declarator "auStack_68 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "int aiStack_38 [3];" primitive_type (array_declarator "aiStack_38 [3]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "puVar2 = PTR_DAT_0003f05c;" (assignment_expression "puVar2 = PTR_DAT_0003f05c" identifier = identifier) ;) (expression_statement "iVar17 = *param_7;" (assignment_expression "iVar17 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" * (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar1 = -(iVar17 + 7U & 0xfffffff8);" (assignment_expression "iVar1 = -(iVar17 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar17 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar17 + 7U & 0xfffffff8)" ( (binary_expression "iVar17 + 7U & 0xfffffff8" (binary_expression "iVar17 + 7U" identifier + number_literal) & number_literal) )))) ;) (expression_statement "(*(code *)param_7[4])(param_7[1]);" (call_expression "(*(code *)param_7[4])(param_7[1])" (parenthesized_expression "(*(code *)param_7[4])" ( (pointer_expression "*(code *)param_7[4]" * (cast_expression "(code *)param_7[4]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[4]" identifier [ number_literal ]))) )) (argument_list "(param_7[1])" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar14 = (int)aiStack_38 + iVar1 + -0x20;" (assignment_expression "iVar14 = (int)aiStack_38 + iVar1 + -0x20" identifier = (binary_expression "(int)aiStack_38 + iVar1 + -0x20" (binary_expression "(int)aiStack_38 + iVar1" (cast_expression "(int)aiStack_38" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" identifier = identifier) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],&local_3c,4);" (call_expression "(*(code *)param_7[5])(param_7[1],&local_3c,4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],&local_3c,4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (pointer_expression "&local_3c" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],param_2,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_2,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_2,uVar4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (if_statement "if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }" { (expression_statement "(*(code *)param_7[5])(param_7[1],param_3,param_4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_3,param_4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_3,param_4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) })) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_5)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_5)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],param_5,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_5,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_5,uVar4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_6)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_6)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6)" ( identifier )))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],param_6,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_6,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_6,uVar4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)param_7[6])(param_7[1],iVar14);" (call_expression "(*(code *)param_7[6])(param_7[1],iVar14)" (parenthesized_expression "(*(code *)param_7[6])" ( (pointer_expression "*(code *)param_7[6]" * (cast_expression "(code *)param_7[6]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[6]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],iVar14)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_000255f0(iVar14,iVar17,param_8);" (call_expression "FUN_000255f0(iVar14,iVar17,param_8)" identifier (argument_list "(iVar14,iVar17,param_8)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = aiStack_38;" (assignment_expression "piVar11 = aiStack_38" identifier = identifier) ;) (expression_statement "FUN_000255f0(&local_3c,4,piVar11);" (call_expression "FUN_000255f0(&local_3c,4,piVar11)" identifier (argument_list "(&local_3c,4,piVar11)" ( (pointer_expression "&local_3c" & identifier) , number_literal , identifier ))) ;) (expression_statement "iVar12 = 8;" (assignment_expression "iVar12 = 8" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_strncat_0003f140)();" (call_expression "(*(code *)PTR_strncat_0003f140)()" (parenthesized_expression "(*(code *)PTR_strncat_0003f140)" ( (pointer_expression "*(code *)PTR_strncat_0003f140" * (cast_expression "(code *)PTR_strncat_0003f140" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *(int *)puVar3;" (assignment_expression "iVar5 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_2c == iVar5) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_2c == iVar5)" ( (binary_expression "local_2c == iVar5" identifier == identifier) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar22 = FUN_000259a4;" (assignment_expression "pcVar22 = FUN_000259a4" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_0003f2b8;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0003f2b8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" * (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;" (assignment_expression "*(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7" (pointer_expression "*(int **)((int)aiStack_a0 + iVar1 + 0x14)" * (cast_expression "(int **)((int)aiStack_a0 + iVar1 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x14)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x14" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(auStack_70 + iVar1) = auStack_68;" (assignment_expression "*(undefined1 **)(auStack_70 + iVar1) = auStack_68" (pointer_expression "*(undefined1 **)(auStack_70 + iVar1)" * (cast_expression "(undefined1 **)(auStack_70 + iVar1)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_70 + iVar1)" ( (binary_expression "auStack_70 + iVar1" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;" (assignment_expression "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6" (pointer_expression "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24)" * (cast_expression "(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x24)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x24" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x20)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x20)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x20" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x18)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x18" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x10)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x10" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "puVar18 + 0x2168c" identifier + number_literal)) ;) (expression_statement "*(code **)((int)&uStack_6c + iVar1) = pcVar22;" (assignment_expression "*(code **)((int)&uStack_6c + iVar1) = pcVar22" (pointer_expression "*(code **)((int)&uStack_6c + iVar1)" * (cast_expression "(code **)((int)&uStack_6c + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_6c + iVar1)" ( (binary_expression "(int)&uStack_6c + iVar1" (cast_expression "(int)&uStack_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_6c" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;" (assignment_expression "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2" (pointer_expression "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c)" * (cast_expression "(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x2c)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x2c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x28)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x28)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x28" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x1c)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x1c)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar15 = *(int **)(puVar18 + 0x19948);" (assignment_expression "piVar15 = *(int **)(puVar18 + 0x19948)" identifier = (pointer_expression "*(int **)(puVar18 + 0x19948)" * (cast_expression "(int **)(puVar18 + 0x19948)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x19948)" ( (binary_expression "puVar18 + 0x19948" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" * (cast_expression "(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_38 + iVar1 + -0x20)" ( (binary_expression "(int)aiStack_38 + iVar1 + -0x20" (binary_expression "(int)aiStack_38 + iVar1" (cast_expression "(int)aiStack_38" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iVar14 = param_4;" (assignment_expression "iVar14 = param_4" identifier = identifier) ;) (expression_statement "iVar17 = FUN_00021920();" (assignment_expression "iVar17 = FUN_00021920()" identifier = (call_expression "FUN_00021920()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar5 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" { (expression_statement "iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);" (assignment_expression "iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" identifier = (call_expression "FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" identifier (argument_list "(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" ( identifier , (binary_expression "*(int *)(iVar5 + -0x7fd4) + -0x26c0" (pointer_expression "*(int *)(iVar5 + -0x7fd4)" * (cast_expression "(int *)(iVar5 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fd4)" ( (binary_expression "iVar5 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar5 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" { (expression_statement "pcVar13 = (char *)piVar11[3];" (assignment_expression "pcVar13 = (char *)piVar11[3]" identifier = (cast_expression "(char *)piVar11[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = *piVar11;" (assignment_expression "iVar5 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" identifier = identifier) ;) (expression_statement "FUN_000255f0();" (call_expression "FUN_000255f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar20 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (goto_statement "goto LAB_00025b04;" goto statement_identifier ;) })) })) (expression_statement "param_5 = *piVar11;" (assignment_expression "param_5 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "param_8 = *(int *)(iVar5 + -0x7fd4);" (assignment_expression "param_8 = *(int *)(iVar5 + -0x7fd4)" identifier = (pointer_expression "*(int *)(iVar5 + -0x7fd4)" * (cast_expression "(int *)(iVar5 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fd4)" ( (binary_expression "iVar5 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)piVar11[4])(piVar11[1]);" (call_expression "(*(code *)piVar11[4])(piVar11[1])" (parenthesized_expression "(*(code *)piVar11[4])" ( (pointer_expression "*(code *)piVar11[4]" * (cast_expression "(code *)piVar11[4]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[4]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1])" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));" (assignment_expression "iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8))" identifier = (binary_expression "(int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8))" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(iVar1 - (param_5 + 7U & 0xfffffff8))" ( (binary_expression "iVar1 - (param_5 + 7U & 0xfffffff8)" identifier - (parenthesized_expression "(param_5 + 7U & 0xfffffff8)" ( (binary_expression "param_5 + 7U & 0xfffffff8" (binary_expression "param_5 + 7U" identifier + number_literal) & number_literal) ))) )))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],iVar12,0x10);" (call_expression "(*(code *)piVar11[5])(piVar11[1],iVar12,0x10)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],iVar12,0x10)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],param_8 + -0x26d0,1)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , (binary_expression "param_8 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);" (assignment_expression "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4)" identifier = (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" ( (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) )) (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_4,uVar6);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_4,uVar6)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],param_4,uVar6)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],param_8 + -0x26d0,1)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , (binary_expression "param_8 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);" (assignment_expression "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4)" identifier = (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" ( (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);" (call_expression "(*(code *)piVar11[5])(piVar11[1],uVar4,uVar6)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],uVar4,uVar6)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)piVar11[6])(piVar11[1],iVar21);" (call_expression "(*(code *)piVar11[6])(piVar11[1],iVar21)" (parenthesized_expression "(*(code *)piVar11[6])" ( (pointer_expression "*(code *)piVar11[6]" * (cast_expression "(code *)piVar11[6]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[6]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],iVar21)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "pcVar13 = (char *)piVar11[3];" (assignment_expression "pcVar13 = (char *)piVar11[3]" identifier = (cast_expression "(char *)piVar11[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = iVar21;" (assignment_expression "iVar17 = iVar21" identifier = identifier) ;) (expression_statement "iVar5 = param_5;" (assignment_expression "iVar5 = param_5" identifier = identifier) ;) (expression_statement "FUN_000255f0();" (call_expression "FUN_000255f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar20 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "iVar12 = iVar21;" (assignment_expression "iVar12 = iVar21" identifier = identifier) ;) (expression_statement "param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);" (assignment_expression "param_2 = (undefined1 *)((int)aiStack_b0 + iVar1)" identifier = (cast_expression "(undefined1 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (labeled_statement "LAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }" statement_identifier : (if_statement "if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }" if (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return *piVar15;\n  }" { (return_statement "return *piVar15;" return (pointer_expression "*piVar15" * identifier) ;) }))) (expression_statement "pcVar22 = *(code **)(iVar20 + -0x7d78);" (assignment_expression "pcVar22 = *(code **)(iVar20 + -0x7d78)" identifier = (pointer_expression "*(code **)(iVar20 + -0x7d78)" * (cast_expression "(code **)(iVar20 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7d78)" ( (binary_expression "iVar20 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = FUN_00025b8c;" (assignment_expression "pcVar23 = FUN_00025b8c" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = *(code **)(pcVar22 + 0x1969c);" (assignment_expression "pcVar19 = *(code **)(pcVar22 + 0x1969c)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x1969c)" * (cast_expression "(code **)(pcVar22 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x1969c)" ( (binary_expression "pcVar22 + 0x1969c" identifier + number_literal) ))))) ;) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 8)" * (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 8)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 8" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;" (assignment_expression "*(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4" (pointer_expression "*(code **)((int)aiStack_e0 + iVar1)" * (cast_expression "(code **)((int)aiStack_e0 + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "pcVar22 + 0x214a4" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;" (assignment_expression "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2" (pointer_expression "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24)" * (cast_expression "(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x24)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x24" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x18)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x18)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x18" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" * (cast_expression "(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x14)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x14" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x10)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x10)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x10" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar1) = iVar17;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar1) = iVar17" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(code **)((int)&uStack_b4 + iVar1) = pcVar23;" (assignment_expression "*(code **)((int)&uStack_b4 + iVar1) = pcVar23" (pointer_expression "*(code **)((int)&uStack_b4 + iVar1)" * (cast_expression "(code **)((int)&uStack_b4 + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_b4 + iVar1)" ( (binary_expression "(int)&uStack_b4 + iVar1" (cast_expression "(int)&uStack_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_b4" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;" (assignment_expression "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1" (pointer_expression "*(int *)(auStack_b8 + iVar1)" * (cast_expression "(int *)(auStack_b8 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_b8 + iVar1)" ( (binary_expression "auStack_b8 + iVar1" identifier + identifier) )))) = (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x20)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x20)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x20" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x1c)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x1c)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc)" * (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0xc" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = (*pcVar19)(iVar14);" (assignment_expression "iVar17 = (*pcVar19)(iVar14)" identifier = (call_expression "(*pcVar19)(iVar14)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "cVar10 = *pcVar13;" (assignment_expression "cVar10 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (do_statement "do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  }" { (if_statement "if (cVar10 == '\0') {\n      return 0;\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar22 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(iVar12 + -0x7dfc)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7dfc)" * (cast_expression "(code **)(iVar12 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7dfc)" ( (binary_expression "iVar12 + -0x7dfc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);" (assignment_expression "pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d)" identifier = (cast_expression "(char *)(*pcVar22)(pcVar13,0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pcVar13,0x3d)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcVar13,0x3d)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar16 = pcVar7 + 1;" (assignment_expression "pcVar16 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar10 = pcVar7[1];" (assignment_expression "cVar10 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) (while_statement "while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }" while (parenthesized_expression "(cVar10 == ' ')" ( (binary_expression "cVar10 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar10 = *pcVar16;" (assignment_expression "cVar10 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (expression_statement "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" identifier = (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" * (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" ( (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) ;) (if_statement "if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" if (parenthesized_expression "(cVar10 == '\"')" ( (binary_expression "cVar10 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = (*pcVar22)(pcVar16,0x22);" (assignment_expression "iVar12 = (*pcVar22)(pcVar16,0x22)" identifier = (call_expression "(*pcVar22)(pcVar16,0x22)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcVar16,0x22)" ( identifier , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = iVar12 + 1;" (assignment_expression "iVar5 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" else (compound_statement "{\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" { (expression_statement "iVar5 = (*pcVar22)(pcVar16,0x2c);" (assignment_expression "iVar5 = (*pcVar22)(pcVar16,0x2c)" identifier = (call_expression "(*pcVar22)(pcVar16,0x2c)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcVar16,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" identifier = identifier) ;) }))) (expression_statement "iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);" (assignment_expression "iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17)" identifier = (call_expression "FUN_000219b0(pcVar13,iVar14,iVar17)" identifier (argument_list "(pcVar13,iVar14,iVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar21 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar21 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }" if (parenthesized_expression "((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17))" ( (binary_expression "(iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar7 == pcVar13 + iVar17)" ( (binary_expression "pcVar7 == pcVar13 + iVar17" identifier == (binary_expression "pcVar13 + iVar17" identifier + identifier)) ))) )) (compound_statement "{\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }" { (if_statement "if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }" { (expression_statement "iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);" (assignment_expression "iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16)" identifier = (call_expression "(**(code **)(iVar21 + -0x7e08))(pcVar16)" (parenthesized_expression "(**(code **)(iVar21 + -0x7e08))" ( (pointer_expression "**(code **)(iVar21 + -0x7e08)" * (pointer_expression "*(code **)(iVar21 + -0x7e08)" * (cast_expression "(code **)(iVar21 + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7e08)" ( (binary_expression "iVar21 + -0x7e08" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" * (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" identifier = (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }" if (parenthesized_expression "(iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4))" ( (binary_expression "iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)" (binary_expression "iVar14 + 1U" identifier + number_literal) <= (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) )) (compound_statement "{\n            uVar8 = iVar14 + 1U;\n          }" { (expression_statement "uVar8 = iVar14 + 1U;" (assignment_expression "uVar8 = iVar14 + 1U" identifier = (binary_expression "iVar14 + 1U" identifier + number_literal)) ;) })) (expression_statement "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);" (assignment_expression "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" identifier = (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" * (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" ( (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7e34" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) ;) }) (else_clause "else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" else (compound_statement "{\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" { (expression_statement "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" identifier = (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "pcVar22 = *(code **)(iVar21 + -0x7d40);" (assignment_expression "pcVar22 = *(code **)(iVar21 + -0x7d40)" identifier = (pointer_expression "*(code **)(iVar21 + -0x7d40)" * (cast_expression "(code **)(iVar21 + -0x7d40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d40)" ( (binary_expression "iVar21 + -0x7d40" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (iVar12 - (int)pcVar16) + 1;" (assignment_expression "uVar8 = (iVar12 - (int)pcVar16) + 1" identifier = (binary_expression "(iVar12 - (int)pcVar16) + 1" (parenthesized_expression "(iVar12 - (int)pcVar16)" ( (binary_expression "iVar12 - (int)pcVar16" identifier - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" * (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }" if (parenthesized_expression "(uVar9 < uVar8)" ( (binary_expression "uVar9 < uVar8" identifier < identifier) )) (compound_statement "{\n            uVar8 = uVar9;\n          }" { (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) })) }))) (expression_statement "iVar14 = uVar8 - 1;" (assignment_expression "iVar14 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "(*pcVar22)(uVar4,pcVar16,iVar14);" (call_expression "(*pcVar22)(uVar4,pcVar16,iVar14)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(uVar4,pcVar16,iVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;" (assignment_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0" (pointer_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" * (cast_expression "(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" ( (binary_expression "*(int *)((int)aiStack_b0 + iVar1) + iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) = number_literal) ;) (return_statement "return iVar14;" return identifier ;) })) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);" (assignment_expression "iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c)" identifier = (call_expression "(**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c)" (parenthesized_expression "(**(code **)(iVar21 + -0x7dfc))" ( (pointer_expression "**(code **)(iVar21 + -0x7dfc)" * (pointer_expression "*(code **)(iVar21 + -0x7dfc)" * (cast_expression "(code **)(iVar21 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7dfc)" ( (binary_expression "iVar21 + -0x7dfc" identifier + number_literal) ))))) )) (argument_list "(iVar5,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "cVar10 = *(char *)(iVar5 + 1);" (assignment_expression "cVar10 = *(char *)(iVar5 + 1)" identifier = (pointer_expression "*(char *)(iVar5 + 1)" * (cast_expression "(char *)(iVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(iVar5 + 1);" (assignment_expression "pcVar13 = (char *)(iVar5 + 1)" identifier = (cast_expression "(char *)(iVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (cVar10 != ' ') break;" if (parenthesized_expression "(cVar10 != ' ')" ( (binary_expression "cVar10 != ' '" identifier != (char_literal "' '" ' character ')) )) (break_statement "break;" break ;)) (do_statement "do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');" do (compound_statement "{\n        pcVar13 = pcVar13 + 1;\n      }" { (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar13 == ' ')" ( (binary_expression "*pcVar13 == ' '" (pointer_expression "*pcVar13" * identifier) == (char_literal "' '" ' character ')) )) ;) (expression_statement "pcVar22 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(iVar12 + -0x7dfc)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7dfc)" * (cast_expression "(code **)(iVar12 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7dfc)" ( (binary_expression "iVar12 + -0x7dfc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar13 == '\0') {\n        return 0;\n      }" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void calculate_nonce(uint32_t nonce_time,char *method,char *rnd,size_t rnd_size,char *uri,\n                    char *realm,DigestAlgorithm *da,char *nonce)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  size_t sVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  uchar *puVar11;\n  int iVar12;\n  size_t *hex;\n  uchar *bin;\n  char *hex_00;\n  char *str2;\n  int *piVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  size_t len;\n  uchar *bin_00;\n  undefined *puVar16;\n  code *pcVar17;\n  int iVar18;\n  int iVar19;\n  code *pcVar20;\n  code *pcVar21;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  uchar timestamp [4];\n  char timestamphex [9];\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  len = da->digest_size;\n  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(len + 7 & 0xfffffff8);\n  (*da->init)(da->ctx);\n  puVar11 = (uchar *)(timestamphex + iVar1 + -0x20);\n  timestamp = (uchar  [4])nonce_time;\n  (*da->update)(da->ctx,timestamp,4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(method);\n  (*da->update)(da->ctx,(uint8_t *)method,sVar4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  if (rnd_size != 0) {\n    (*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);\n  }\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(uri);\n  (*da->update)(da->ctx,(uint8_t *)uri,sVar4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(realm);\n  (*da->update)(da->ctx,(uint8_t *)realm,sVar4);\n  (*da->digest)(da->ctx,puVar11);\n  cvthex(puVar11,len,nonce);\n  hex = (size_t *)timestamphex;\n  cvthex(timestamp,4,(char *)hex);\n  bin = (uchar *)0x8;\n  (*(code *)PTR_strncat_0003f140)();\n  if (iVar12 == *(int *)puVar3) {\n    return;\n  }\n  pcVar20 = digest_calc_ha1_from_digest;\n  puVar16 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14) = da;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x24) = realm;\n  *(size_t *)((int)aiStack_a0 + iVar1 + 0x20) = len;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar16 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar20;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x2c) = method;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x28) = uri;\n  *(uchar **)((int)aiStack_a0 + iVar1 + 0x1c) = puVar11;\n  piVar13 = *(int **)(puVar16 + 0x19948);\n  iVar12 = *(int *)(puVar16 + 0x196b8);\n  uVar15 = *(undefined4 *)(timestamphex + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar13;\n  str2 = (char *)rnd_size;\n  iVar12 = MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc));\n  iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar12 == 0) {\n    iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));\n    iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar12 == 0) {\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  uri = (char *)*hex;\n  nonce = *(char **)(iVar18 + -0x7fd4);\n  (*(code *)hex[4])(hex[1]);\n  bin_00 = (uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)));\n  (*(code *)hex[5])(hex[1],bin,0x10);\n  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);\n  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size);\n  (*(code *)hex[5])(hex[1],rnd_size,uVar5);\n  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);\n  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15);\n  (*(code *)hex[5])(hex[1],uVar15,uVar5);\n  (*(code *)hex[6])(hex[1],bin_00);\n  hex_00 = (char *)hex[3];\n  puVar11 = bin_00;\n  pcVar6 = uri;\n  cvthex(bin_00,(size_t)uri,hex_00);\n  iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n  bin = bin_00;\n  method = (char *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13) {\n    return;\n  }\n  pcVar20 = *(code **)(iVar12 + -0x7d78);\n  pcVar21 = lookup_sub_value;\n  (*pcVar20)();\n  pcVar17 = *(code **)(pcVar20 + 0x1969c);\n  *(size_t **)((int)aiStack_e0 + iVar1 + 8) = hex;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar20 + 0x214a4;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x24) = method;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x18) = nonce;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar15;\n  *(size_t *)((int)aiStack_e0 + iVar1 + 0x10) = rnd_size;\n  *(uchar **)((int)aiStack_b0 + iVar1) = puVar11;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar21;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x20) = uri;\n  *(uchar **)((int)aiStack_e0 + iVar1 + 0x1c) = bin;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar13;\n  *(char **)((int)aiStack_b0 + iVar1 + 4) = pcVar6;\n  sVar4 = (*pcVar17)(str2);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *hex_00;\n  do {\n    if (cVar10 == '\0') {\n      return;\n    }\n    pcVar20 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "void calculate_nonce(uint32_t nonce_time,char *method,char *rnd,size_t rnd_size,char *uri,\n                    char *realm,DigestAlgorithm *da,char *nonce)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  size_t sVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  uchar *puVar11;\n  int iVar12;\n  size_t *hex;\n  uchar *bin;\n  char *hex_00;\n  char *str2;\n  int *piVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  size_t len;\n  uchar *bin_00;\n  undefined *puVar16;\n  code *pcVar17;\n  int iVar18;\n  int iVar19;\n  code *pcVar20;\n  code *pcVar21;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  uchar timestamp [4];\n  char timestamphex [9];\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  len = da->digest_size;\n  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(len + 7 & 0xfffffff8);\n  (*da->init)(da->ctx);\n  puVar11 = (uchar *)(timestamphex + iVar1 + -0x20);\n  timestamp = (uchar  [4])nonce_time;\n  (*da->update)(da->ctx,timestamp,4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(method);\n  (*da->update)(da->ctx,(uint8_t *)method,sVar4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  if (rnd_size != 0) {\n    (*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);\n  }\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(uri);\n  (*da->update)(da->ctx,(uint8_t *)uri,sVar4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(realm);\n  (*da->update)(da->ctx,(uint8_t *)realm,sVar4);\n  (*da->digest)(da->ctx,puVar11);\n  cvthex(puVar11,len,nonce);\n  hex = (size_t *)timestamphex;\n  cvthex(timestamp,4,(char *)hex);\n  bin = (uchar *)0x8;\n  (*(code *)PTR_strncat_0003f140)();\n  if (iVar12 == *(int *)puVar3) {\n    return;\n  }\n  pcVar20 = digest_calc_ha1_from_digest;\n  puVar16 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14) = da;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x24) = realm;\n  *(size_t *)((int)aiStack_a0 + iVar1 + 0x20) = len;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar16 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar20;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x2c) = method;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x28) = uri;\n  *(uchar **)((int)aiStack_a0 + iVar1 + 0x1c) = puVar11;\n  piVar13 = *(int **)(puVar16 + 0x19948);\n  iVar12 = *(int *)(puVar16 + 0x196b8);\n  uVar15 = *(undefined4 *)(timestamphex + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar13;\n  str2 = (char *)rnd_size;\n  iVar12 = MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc));\n  iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar12 == 0) {\n    iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));\n    iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar12 == 0) {\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  uri = (char *)*hex;\n  nonce = *(char **)(iVar18 + -0x7fd4);\n  (*(code *)hex[4])(hex[1]);\n  bin_00 = (uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)));\n  (*(code *)hex[5])(hex[1],bin,0x10);\n  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);\n  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size);\n  (*(code *)hex[5])(hex[1],rnd_size,uVar5);\n  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);\n  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15);\n  (*(code *)hex[5])(hex[1],uVar15,uVar5);\n  (*(code *)hex[6])(hex[1],bin_00);\n  hex_00 = (char *)hex[3];\n  puVar11 = bin_00;\n  pcVar6 = uri;\n  cvthex(bin_00,(size_t)uri,hex_00);\n  iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n  bin = bin_00;\n  method = (char *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13) {\n    return;\n  }\n  pcVar20 = *(code **)(iVar12 + -0x7d78);\n  pcVar21 = lookup_sub_value;\n  (*pcVar20)();\n  pcVar17 = *(code **)(pcVar20 + 0x1969c);\n  *(size_t **)((int)aiStack_e0 + iVar1 + 8) = hex;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar20 + 0x214a4;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x24) = method;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x18) = nonce;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar15;\n  *(size_t *)((int)aiStack_e0 + iVar1 + 0x10) = rnd_size;\n  *(uchar **)((int)aiStack_b0 + iVar1) = puVar11;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar21;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x20) = uri;\n  *(uchar **)((int)aiStack_e0 + iVar1 + 0x1c) = bin;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar13;\n  *(char **)((int)aiStack_b0 + iVar1 + 4) = pcVar6;\n  sVar4 = (*pcVar17)(str2);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *hex_00;\n  do {\n    if (cVar10 == '\0') {\n      return;\n    }\n    pcVar20 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "calculate_nonce(uint32_t nonce_time,char *method,char *rnd,size_t rnd_size,char *uri,\n                    char *realm,DigestAlgorithm *da,char *nonce)" identifier (parameter_list "(uint32_t nonce_time,char *method,char *rnd,size_t rnd_size,char *uri,\n                    char *realm,DigestAlgorithm *da,char *nonce)" ( (parameter_declaration "uint32_t nonce_time" primitive_type identifier) , (parameter_declaration "char *method" primitive_type (pointer_declarator "*method" * identifier)) , (parameter_declaration "char *rnd" primitive_type (pointer_declarator "*rnd" * identifier)) , (parameter_declaration "size_t rnd_size" primitive_type identifier) , (parameter_declaration "char *uri" primitive_type (pointer_declarator "*uri" * identifier)) , (parameter_declaration "char *realm" primitive_type (pointer_declarator "*realm" * identifier)) , (parameter_declaration "DigestAlgorithm *da" type_identifier (pointer_declarator "*da" * identifier)) , (parameter_declaration "char *nonce" primitive_type (pointer_declarator "*nonce" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  size_t sVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  uchar *puVar11;\n  int iVar12;\n  size_t *hex;\n  uchar *bin;\n  char *hex_00;\n  char *str2;\n  int *piVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  size_t len;\n  uchar *bin_00;\n  undefined *puVar16;\n  code *pcVar17;\n  int iVar18;\n  int iVar19;\n  code *pcVar20;\n  code *pcVar21;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  uchar timestamp [4];\n  char timestamphex [9];\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  len = da->digest_size;\n  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(len + 7 & 0xfffffff8);\n  (*da->init)(da->ctx);\n  puVar11 = (uchar *)(timestamphex + iVar1 + -0x20);\n  timestamp = (uchar  [4])nonce_time;\n  (*da->update)(da->ctx,timestamp,4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(method);\n  (*da->update)(da->ctx,(uint8_t *)method,sVar4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  if (rnd_size != 0) {\n    (*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);\n  }\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(uri);\n  (*da->update)(da->ctx,(uint8_t *)uri,sVar4);\n  (*da->update)(da->ctx,puVar2 + -0x26d0,1);\n  sVar4 = (*(code *)PTR_strlen_0003f228)(realm);\n  (*da->update)(da->ctx,(uint8_t *)realm,sVar4);\n  (*da->digest)(da->ctx,puVar11);\n  cvthex(puVar11,len,nonce);\n  hex = (size_t *)timestamphex;\n  cvthex(timestamp,4,(char *)hex);\n  bin = (uchar *)0x8;\n  (*(code *)PTR_strncat_0003f140)();\n  if (iVar12 == *(int *)puVar3) {\n    return;\n  }\n  pcVar20 = digest_calc_ha1_from_digest;\n  puVar16 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14) = da;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x24) = realm;\n  *(size_t *)((int)aiStack_a0 + iVar1 + 0x20) = len;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar16 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar20;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x2c) = method;\n  *(char **)((int)aiStack_a0 + iVar1 + 0x28) = uri;\n  *(uchar **)((int)aiStack_a0 + iVar1 + 0x1c) = puVar11;\n  piVar13 = *(int **)(puVar16 + 0x19948);\n  iVar12 = *(int *)(puVar16 + 0x196b8);\n  uVar15 = *(undefined4 *)(timestamphex + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar13;\n  str2 = (char *)rnd_size;\n  iVar12 = MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc));\n  iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar12 == 0) {\n    iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));\n    iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar12 == 0) {\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  uri = (char *)*hex;\n  nonce = *(char **)(iVar18 + -0x7fd4);\n  (*(code *)hex[4])(hex[1]);\n  bin_00 = (uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)));\n  (*(code *)hex[5])(hex[1],bin,0x10);\n  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);\n  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size);\n  (*(code *)hex[5])(hex[1],rnd_size,uVar5);\n  (*(code *)hex[5])(hex[1],nonce + -0x26d0,1);\n  uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15);\n  (*(code *)hex[5])(hex[1],uVar15,uVar5);\n  (*(code *)hex[6])(hex[1],bin_00);\n  hex_00 = (char *)hex[3];\n  puVar11 = bin_00;\n  pcVar6 = uri;\n  cvthex(bin_00,(size_t)uri,hex_00);\n  iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n  bin = bin_00;\n  method = (char *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13) {\n    return;\n  }\n  pcVar20 = *(code **)(iVar12 + -0x7d78);\n  pcVar21 = lookup_sub_value;\n  (*pcVar20)();\n  pcVar17 = *(code **)(pcVar20 + 0x1969c);\n  *(size_t **)((int)aiStack_e0 + iVar1 + 8) = hex;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar20 + 0x214a4;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x24) = method;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x18) = nonce;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar15;\n  *(size_t *)((int)aiStack_e0 + iVar1 + 0x10) = rnd_size;\n  *(uchar **)((int)aiStack_b0 + iVar1) = puVar11;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar21;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(char **)((int)aiStack_e0 + iVar1 + 0x20) = uri;\n  *(uchar **)((int)aiStack_e0 + iVar1 + 0x1c) = bin;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar13;\n  *(char **)((int)aiStack_b0 + iVar1 + 4) = pcVar6;\n  sVar4 = (*pcVar17)(str2);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *hex_00;\n  do {\n    if (cVar10 == '\0') {\n      return;\n    }\n    pcVar20 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "size_t *hex;" primitive_type (pointer_declarator "*hex" * identifier) ;) (declaration "uchar *bin;" type_identifier (pointer_declarator "*bin" * identifier) ;) (declaration "char *hex_00;" primitive_type (pointer_declarator "*hex_00" * identifier) ;) (declaration "char *str2;" primitive_type (pointer_declarator "*str2" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "uchar *bin_00;" type_identifier (pointer_declarator "*bin_00" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "int aiStack_e0 [10];" primitive_type (array_declarator "aiStack_e0 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_b8 [4];" type_identifier (array_declarator "auStack_b8 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "int aiStack_b0 [4];" primitive_type (array_declarator "aiStack_b0 [4]" identifier [ number_literal ]) ;) (declaration "int aiStack_a0 [12];" primitive_type (array_declarator "aiStack_a0 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_70 [4];" type_identifier (array_declarator "auStack_70 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [16];" type_identifier (array_declarator "auStack_68 [16]" identifier [ number_literal ]) ;) (declaration "uchar timestamp [4];" type_identifier (array_declarator "timestamp [4]" identifier [ number_literal ]) ;) (declaration "char timestamphex [9];" primitive_type (array_declarator "timestamphex [9]" identifier [ number_literal ]) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "puVar2 = PTR_DAT_0003f05c;" (assignment_expression "puVar2 = PTR_DAT_0003f05c" identifier = identifier) ;) (expression_statement "len = da->digest_size;" (assignment_expression "len = da->digest_size" identifier = (field_expression "da->digest_size" identifier -> field_identifier)) ;) (expression_statement "iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" * (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar1 = -(len + 7 & 0xfffffff8);" (assignment_expression "iVar1 = -(len + 7 & 0xfffffff8)" identifier = (unary_expression "-(len + 7 & 0xfffffff8)" - (parenthesized_expression "(len + 7 & 0xfffffff8)" ( (binary_expression "len + 7 & 0xfffffff8" (binary_expression "len + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "(*da->init)(da->ctx);" (call_expression "(*da->init)(da->ctx)" (parenthesized_expression "(*da->init)" ( (pointer_expression "*da->init" * (field_expression "da->init" identifier -> field_identifier)) )) (argument_list "(da->ctx)" ( (field_expression "da->ctx" identifier -> field_identifier) ))) ;) (expression_statement "puVar11 = (uchar *)(timestamphex + iVar1 + -0x20);" (assignment_expression "puVar11 = (uchar *)(timestamphex + iVar1 + -0x20)" identifier = (cast_expression "(uchar *)(timestamphex + iVar1 + -0x20)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(timestamphex + iVar1 + -0x20)" ( (binary_expression "timestamphex + iVar1 + -0x20" (binary_expression "timestamphex + iVar1" identifier + identifier) + number_literal) )))) ;) (expression_statement "timestamp = (uchar  [4])nonce_time;" (assignment_expression "timestamp = (uchar  [4])nonce_time" identifier = (cast_expression "(uchar  [4])nonce_time" ( (type_descriptor "uchar  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) identifier)) ;) (expression_statement "(*da->update)(da->ctx,timestamp,4);" (call_expression "(*da->update)(da->ctx,timestamp,4)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,timestamp,4)" ( (field_expression "da->ctx" identifier -> field_identifier) , identifier , number_literal ))) ;) (expression_statement "(*da->update)(da->ctx,puVar2 + -0x26d0,1);" (call_expression "(*da->update)(da->ctx,puVar2 + -0x26d0,1)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,puVar2 + -0x26d0,1)" ( (field_expression "da->ctx" identifier -> field_identifier) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "sVar4 = (*(code *)PTR_strlen_0003f228)(method);" (assignment_expression "sVar4 = (*(code *)PTR_strlen_0003f228)(method)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(method)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(method)" ( identifier )))) ;) (expression_statement "(*da->update)(da->ctx,(uint8_t *)method,sVar4);" (call_expression "(*da->update)(da->ctx,(uint8_t *)method,sVar4)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,(uint8_t *)method,sVar4)" ( (field_expression "da->ctx" identifier -> field_identifier) , (cast_expression "(uint8_t *)method" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "(*da->update)(da->ctx,puVar2 + -0x26d0,1);" (call_expression "(*da->update)(da->ctx,puVar2 + -0x26d0,1)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,puVar2 + -0x26d0,1)" ( (field_expression "da->ctx" identifier -> field_identifier) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (if_statement "if (rnd_size != 0) {\n    (*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);\n  }" if (parenthesized_expression "(rnd_size != 0)" ( (binary_expression "rnd_size != 0" identifier != number_literal) )) (compound_statement "{\n    (*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);\n  }" { (expression_statement "(*da->update)(da->ctx,(uint8_t *)rnd,rnd_size);" (call_expression "(*da->update)(da->ctx,(uint8_t *)rnd,rnd_size)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,(uint8_t *)rnd,rnd_size)" ( (field_expression "da->ctx" identifier -> field_identifier) , (cast_expression "(uint8_t *)rnd" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) })) (expression_statement "(*da->update)(da->ctx,puVar2 + -0x26d0,1);" (call_expression "(*da->update)(da->ctx,puVar2 + -0x26d0,1)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,puVar2 + -0x26d0,1)" ( (field_expression "da->ctx" identifier -> field_identifier) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "sVar4 = (*(code *)PTR_strlen_0003f228)(uri);" (assignment_expression "sVar4 = (*(code *)PTR_strlen_0003f228)(uri)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(uri)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uri)" ( identifier )))) ;) (expression_statement "(*da->update)(da->ctx,(uint8_t *)uri,sVar4);" (call_expression "(*da->update)(da->ctx,(uint8_t *)uri,sVar4)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,(uint8_t *)uri,sVar4)" ( (field_expression "da->ctx" identifier -> field_identifier) , (cast_expression "(uint8_t *)uri" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "(*da->update)(da->ctx,puVar2 + -0x26d0,1);" (call_expression "(*da->update)(da->ctx,puVar2 + -0x26d0,1)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,puVar2 + -0x26d0,1)" ( (field_expression "da->ctx" identifier -> field_identifier) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "sVar4 = (*(code *)PTR_strlen_0003f228)(realm);" (assignment_expression "sVar4 = (*(code *)PTR_strlen_0003f228)(realm)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(realm)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(realm)" ( identifier )))) ;) (expression_statement "(*da->update)(da->ctx,(uint8_t *)realm,sVar4);" (call_expression "(*da->update)(da->ctx,(uint8_t *)realm,sVar4)" (parenthesized_expression "(*da->update)" ( (pointer_expression "*da->update" * (field_expression "da->update" identifier -> field_identifier)) )) (argument_list "(da->ctx,(uint8_t *)realm,sVar4)" ( (field_expression "da->ctx" identifier -> field_identifier) , (cast_expression "(uint8_t *)realm" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "(*da->digest)(da->ctx,puVar11);" (call_expression "(*da->digest)(da->ctx,puVar11)" (parenthesized_expression "(*da->digest)" ( (pointer_expression "*da->digest" * (field_expression "da->digest" identifier -> field_identifier)) )) (argument_list "(da->ctx,puVar11)" ( (field_expression "da->ctx" identifier -> field_identifier) , identifier ))) ;) (expression_statement "cvthex(puVar11,len,nonce);" (call_expression "cvthex(puVar11,len,nonce)" identifier (argument_list "(puVar11,len,nonce)" ( identifier , identifier , identifier ))) ;) (expression_statement "hex = (size_t *)timestamphex;" (assignment_expression "hex = (size_t *)timestamphex" identifier = (cast_expression "(size_t *)timestamphex" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "cvthex(timestamp,4,(char *)hex);" (call_expression "cvthex(timestamp,4,(char *)hex)" identifier (argument_list "(timestamp,4,(char *)hex)" ( identifier , number_literal , (cast_expression "(char *)hex" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bin = (uchar *)0x8;" (assignment_expression "bin = (uchar *)0x8" identifier = (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_strncat_0003f140)();" (call_expression "(*(code *)PTR_strncat_0003f140)()" (parenthesized_expression "(*(code *)PTR_strncat_0003f140)" ( (pointer_expression "*(code *)PTR_strncat_0003f140" * (cast_expression "(code *)PTR_strncat_0003f140" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar12 == *(int *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(iVar12 == *(int *)puVar3)" ( (binary_expression "iVar12 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar20 = digest_calc_ha1_from_digest;" (assignment_expression "pcVar20 = digest_calc_ha1_from_digest" identifier = identifier) ;) (expression_statement "puVar16 = PTR___stack_chk_fail_0003f2b8;" (assignment_expression "puVar16 = PTR___stack_chk_fail_0003f2b8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" * (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14) = da;" (assignment_expression "*(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14) = da" (pointer_expression "*(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14)" * (cast_expression "(DigestAlgorithm **)((int)aiStack_a0 + iVar1 + 0x14)" ( (type_descriptor "DigestAlgorithm **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x14)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x14" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(auStack_70 + iVar1) = auStack_68;" (assignment_expression "*(undefined1 **)(auStack_70 + iVar1) = auStack_68" (pointer_expression "*(undefined1 **)(auStack_70 + iVar1)" * (cast_expression "(undefined1 **)(auStack_70 + iVar1)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_70 + iVar1)" ( (binary_expression "auStack_70 + iVar1" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char **)((int)aiStack_a0 + iVar1 + 0x24) = realm;" (assignment_expression "*(char **)((int)aiStack_a0 + iVar1 + 0x24) = realm" (pointer_expression "*(char **)((int)aiStack_a0 + iVar1 + 0x24)" * (cast_expression "(char **)((int)aiStack_a0 + iVar1 + 0x24)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x24)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x24" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)((int)aiStack_a0 + iVar1 + 0x20) = len;" (assignment_expression "*(size_t *)((int)aiStack_a0 + iVar1 + 0x20) = len" (pointer_expression "*(size_t *)((int)aiStack_a0 + iVar1 + 0x20)" * (cast_expression "(size_t *)((int)aiStack_a0 + iVar1 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x20)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x20" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x18)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x18" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x10)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x10" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1) = puVar16 + 0x2168c;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1) = puVar16 + 0x2168c" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "puVar16 + 0x2168c" identifier + number_literal)) ;) (expression_statement "*(code **)((int)&uStack_6c + iVar1) = pcVar20;" (assignment_expression "*(code **)((int)&uStack_6c + iVar1) = pcVar20" (pointer_expression "*(code **)((int)&uStack_6c + iVar1)" * (cast_expression "(code **)((int)&uStack_6c + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_6c + iVar1)" ( (binary_expression "(int)&uStack_6c + iVar1" (cast_expression "(int)&uStack_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_6c" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(char **)((int)aiStack_a0 + iVar1 + 0x2c) = method;" (assignment_expression "*(char **)((int)aiStack_a0 + iVar1 + 0x2c) = method" (pointer_expression "*(char **)((int)aiStack_a0 + iVar1 + 0x2c)" * (cast_expression "(char **)((int)aiStack_a0 + iVar1 + 0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x2c)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x2c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)aiStack_a0 + iVar1 + 0x28) = uri;" (assignment_expression "*(char **)((int)aiStack_a0 + iVar1 + 0x28) = uri" (pointer_expression "*(char **)((int)aiStack_a0 + iVar1 + 0x28)" * (cast_expression "(char **)((int)aiStack_a0 + iVar1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x28)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x28" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uchar **)((int)aiStack_a0 + iVar1 + 0x1c) = puVar11;" (assignment_expression "*(uchar **)((int)aiStack_a0 + iVar1 + 0x1c) = puVar11" (pointer_expression "*(uchar **)((int)aiStack_a0 + iVar1 + 0x1c)" * (cast_expression "(uchar **)((int)aiStack_a0 + iVar1 + 0x1c)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x1c)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar13 = *(int **)(puVar16 + 0x19948);" (assignment_expression "piVar13 = *(int **)(puVar16 + 0x19948)" identifier = (pointer_expression "*(int **)(puVar16 + 0x19948)" * (cast_expression "(int **)(puVar16 + 0x19948)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x19948)" ( (binary_expression "puVar16 + 0x19948" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar16 + 0x196b8);" (assignment_expression "iVar12 = *(int *)(puVar16 + 0x196b8)" identifier = (pointer_expression "*(int *)(puVar16 + 0x196b8)" * (cast_expression "(int *)(puVar16 + 0x196b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x196b8)" ( (binary_expression "puVar16 + 0x196b8" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(timestamphex + iVar1 + -0x20);" (assignment_expression "uVar15 = *(undefined4 *)(timestamphex + iVar1 + -0x20)" identifier = (pointer_expression "*(undefined4 *)(timestamphex + iVar1 + -0x20)" * (cast_expression "(undefined4 *)(timestamphex + iVar1 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(timestamphex + iVar1 + -0x20)" ( (binary_expression "timestamphex + iVar1 + -0x20" (binary_expression "timestamphex + iVar1" identifier + identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar13;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar13" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "str2 = (char *)rnd_size;" (assignment_expression "str2 = (char *)rnd_size" identifier = (cast_expression "(char *)rnd_size" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar12 = MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc));" (assignment_expression "iVar12 = MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc))" identifier = (call_expression "MHD_str_equal_caseless_(nonce,(char *)(iVar12 + -0x26cc))" identifier (argument_list "(nonce,(char *)(iVar12 + -0x26cc))" ( identifier , (cast_expression "(char *)(iVar12 + -0x26cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x26cc)" ( (binary_expression "iVar12 + -0x26cc" identifier + number_literal) ))) )))) ;) (expression_statement "iVar18 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar18 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar12 == 0) {\n    iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));\n    iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar12 == 0) {\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));\n    iVar18 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar12 == 0) {\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" { (expression_statement "iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0));" (assignment_expression "iVar12 = MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0))" identifier = (call_expression "MHD_str_equal_caseless_(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0))" identifier (argument_list "(nonce,(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0))" ( identifier , (cast_expression "(char *)(*(int *)(iVar18 + -0x7fd4) + -0x26c0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + -0x7fd4) + -0x26c0)" ( (binary_expression "*(int *)(iVar18 + -0x7fd4) + -0x26c0" (pointer_expression "*(int *)(iVar18 + -0x7fd4)" * (cast_expression "(int *)(iVar18 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x7fd4)" ( (binary_expression "iVar18 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) )))) ;) (expression_statement "iVar18 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar18 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar12 == 0) {\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      hex_00 = (char *)hex[3];\n      pcVar6 = (char *)*hex;\n      puVar11 = bin;\n      cvthex(bin,(size_t)pcVar6,hex_00);\n      iVar12 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" { (expression_statement "hex_00 = (char *)hex[3];" (assignment_expression "hex_00 = (char *)hex[3]" identifier = (cast_expression "(char *)hex[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[3]" identifier [ number_literal ]))) ;) (expression_statement "pcVar6 = (char *)*hex;" (assignment_expression "pcVar6 = (char *)*hex" identifier = (cast_expression "(char *)*hex" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*hex" * identifier))) ;) (expression_statement "puVar11 = bin;" (assignment_expression "puVar11 = bin" identifier = identifier) ;) (expression_statement "cvthex(bin,(size_t)pcVar6,hex_00);" (call_expression "cvthex(bin,(size_t)pcVar6,hex_00)" identifier (argument_list "(bin,(size_t)pcVar6,hex_00)" ( identifier , (cast_expression "(size_t)pcVar6" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (goto_statement "goto LAB_00025b04;" goto statement_identifier ;) })) })) (expression_statement "uri = (char *)*hex;" (assignment_expression "uri = (char *)*hex" identifier = (cast_expression "(char *)*hex" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*hex" * identifier))) ;) (expression_statement "nonce = *(char **)(iVar18 + -0x7fd4);" (assignment_expression "nonce = *(char **)(iVar18 + -0x7fd4)" identifier = (pointer_expression "*(char **)(iVar18 + -0x7fd4)" * (cast_expression "(char **)(iVar18 + -0x7fd4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + -0x7fd4)" ( (binary_expression "iVar18 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)hex[4])(hex[1]);" (call_expression "(*(code *)hex[4])(hex[1])" (parenthesized_expression "(*(code *)hex[4])" ( (pointer_expression "*(code *)hex[4]" * (cast_expression "(code *)hex[4]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[4]" identifier [ number_literal ]))) )) (argument_list "(hex[1])" ( (subscript_expression "hex[1]" identifier [ number_literal ]) ))) ;) (expression_statement "bin_00 = (uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)));" (assignment_expression "bin_00 = (uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)))" identifier = (cast_expression "(uchar *)((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8)))" ( (binary_expression "(int)aiStack_a0 + (iVar1 - ((uint)(uri + 7) & 0xfffffff8))" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(iVar1 - ((uint)(uri + 7) & 0xfffffff8))" ( (binary_expression "iVar1 - ((uint)(uri + 7) & 0xfffffff8)" identifier - (parenthesized_expression "((uint)(uri + 7) & 0xfffffff8)" ( (binary_expression "(uint)(uri + 7) & 0xfffffff8" (call_expression "(uint)(uri + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uri + 7)" ( (binary_expression "uri + 7" identifier + number_literal) ))) & number_literal) ))) ))) )))) ;) (expression_statement "(*(code *)hex[5])(hex[1],bin,0x10);" (call_expression "(*(code *)hex[5])(hex[1],bin,0x10)" (parenthesized_expression "(*(code *)hex[5])" ( (pointer_expression "*(code *)hex[5]" * (cast_expression "(code *)hex[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[5]" identifier [ number_literal ]))) )) (argument_list "(hex[1],bin,0x10)" ( (subscript_expression "hex[1]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "(*(code *)hex[5])(hex[1],nonce + -0x26d0,1);" (call_expression "(*(code *)hex[5])(hex[1],nonce + -0x26d0,1)" (parenthesized_expression "(*(code *)hex[5])" ( (pointer_expression "*(code *)hex[5]" * (cast_expression "(code *)hex[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[5]" identifier [ number_literal ]))) )) (argument_list "(hex[1],nonce + -0x26d0,1)" ( (subscript_expression "hex[1]" identifier [ number_literal ]) , (binary_expression "nonce + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size);" (assignment_expression "uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size)" identifier = (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(rnd_size)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" ( (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) )) (argument_list "(rnd_size)" ( identifier )))) ;) (expression_statement "(*(code *)hex[5])(hex[1],rnd_size,uVar5);" (call_expression "(*(code *)hex[5])(hex[1],rnd_size,uVar5)" (parenthesized_expression "(*(code *)hex[5])" ( (pointer_expression "*(code *)hex[5]" * (cast_expression "(code *)hex[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[5]" identifier [ number_literal ]))) )) (argument_list "(hex[1],rnd_size,uVar5)" ( (subscript_expression "hex[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)hex[5])(hex[1],nonce + -0x26d0,1);" (call_expression "(*(code *)hex[5])(hex[1],nonce + -0x26d0,1)" (parenthesized_expression "(*(code *)hex[5])" ( (pointer_expression "*(code *)hex[5]" * (cast_expression "(code *)hex[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[5]" identifier [ number_literal ]))) )) (argument_list "(hex[1],nonce + -0x26d0,1)" ( (subscript_expression "hex[1]" identifier [ number_literal ]) , (binary_expression "nonce + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15);" (assignment_expression "uVar5 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15)" identifier = (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar15)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" ( (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (expression_statement "(*(code *)hex[5])(hex[1],uVar15,uVar5);" (call_expression "(*(code *)hex[5])(hex[1],uVar15,uVar5)" (parenthesized_expression "(*(code *)hex[5])" ( (pointer_expression "*(code *)hex[5]" * (cast_expression "(code *)hex[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[5]" identifier [ number_literal ]))) )) (argument_list "(hex[1],uVar15,uVar5)" ( (subscript_expression "hex[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)hex[6])(hex[1],bin_00);" (call_expression "(*(code *)hex[6])(hex[1],bin_00)" (parenthesized_expression "(*(code *)hex[6])" ( (pointer_expression "*(code *)hex[6]" * (cast_expression "(code *)hex[6]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[6]" identifier [ number_literal ]))) )) (argument_list "(hex[1],bin_00)" ( (subscript_expression "hex[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "hex_00 = (char *)hex[3];" (assignment_expression "hex_00 = (char *)hex[3]" identifier = (cast_expression "(char *)hex[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "hex[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar11 = bin_00;" (assignment_expression "puVar11 = bin_00" identifier = identifier) ;) (expression_statement "pcVar6 = uri;" (assignment_expression "pcVar6 = uri" identifier = identifier) ;) (expression_statement "cvthex(bin_00,(size_t)uri,hex_00);" (call_expression "cvthex(bin_00,(size_t)uri,hex_00)" identifier (argument_list "(bin_00,(size_t)uri,hex_00)" ( identifier , (cast_expression "(size_t)uri" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "bin = bin_00;" (assignment_expression "bin = bin_00" identifier = identifier) ;) (expression_statement "method = (char *)((int)aiStack_b0 + iVar1);" (assignment_expression "method = (char *)((int)aiStack_b0 + iVar1)" identifier = (cast_expression "(char *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (labeled_statement "LAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13) {\n    return;\n  }" statement_identifier : (if_statement "if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13) {\n    return;\n  }" if (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar13" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) == (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar20 = *(code **)(iVar12 + -0x7d78);" (assignment_expression "pcVar20 = *(code **)(iVar12 + -0x7d78)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d78)" * (cast_expression "(code **)(iVar12 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d78)" ( (binary_expression "iVar12 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar21 = lookup_sub_value;" (assignment_expression "pcVar21 = lookup_sub_value" identifier = identifier) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar17 = *(code **)(pcVar20 + 0x1969c);" (assignment_expression "pcVar17 = *(code **)(pcVar20 + 0x1969c)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1969c)" * (cast_expression "(code **)(pcVar20 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1969c)" ( (binary_expression "pcVar20 + 0x1969c" identifier + number_literal) ))))) ;) (expression_statement "*(size_t **)((int)aiStack_e0 + iVar1 + 8) = hex;" (assignment_expression "*(size_t **)((int)aiStack_e0 + iVar1 + 8) = hex" (pointer_expression "*(size_t **)((int)aiStack_e0 + iVar1 + 8)" * (cast_expression "(size_t **)((int)aiStack_e0 + iVar1 + 8)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 8)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 8" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)aiStack_e0 + iVar1) = pcVar20 + 0x214a4;" (assignment_expression "*(code **)((int)aiStack_e0 + iVar1) = pcVar20 + 0x214a4" (pointer_expression "*(code **)((int)aiStack_e0 + iVar1)" * (cast_expression "(code **)((int)aiStack_e0 + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "pcVar20 + 0x214a4" identifier + number_literal)) ;) (expression_statement "*(char **)((int)aiStack_e0 + iVar1 + 0x24) = method;" (assignment_expression "*(char **)((int)aiStack_e0 + iVar1 + 0x24) = method" (pointer_expression "*(char **)((int)aiStack_e0 + iVar1 + 0x24)" * (cast_expression "(char **)((int)aiStack_e0 + iVar1 + 0x24)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x24)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x24" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)aiStack_e0 + iVar1 + 0x18) = nonce;" (assignment_expression "*(char **)((int)aiStack_e0 + iVar1 + 0x18) = nonce" (pointer_expression "*(char **)((int)aiStack_e0 + iVar1 + 0x18)" * (cast_expression "(char **)((int)aiStack_e0 + iVar1 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x18)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x18" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar15;" (assignment_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar15" (pointer_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" * (cast_expression "(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x14)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x14" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)((int)aiStack_e0 + iVar1 + 0x10) = rnd_size;" (assignment_expression "*(size_t *)((int)aiStack_e0 + iVar1 + 0x10) = rnd_size" (pointer_expression "*(size_t *)((int)aiStack_e0 + iVar1 + 0x10)" * (cast_expression "(size_t *)((int)aiStack_e0 + iVar1 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x10)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x10" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uchar **)((int)aiStack_b0 + iVar1) = puVar11;" (assignment_expression "*(uchar **)((int)aiStack_b0 + iVar1) = puVar11" (pointer_expression "*(uchar **)((int)aiStack_b0 + iVar1)" * (cast_expression "(uchar **)((int)aiStack_b0 + iVar1)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(code **)((int)&uStack_b4 + iVar1) = pcVar21;" (assignment_expression "*(code **)((int)&uStack_b4 + iVar1) = pcVar21" (pointer_expression "*(code **)((int)&uStack_b4 + iVar1)" * (cast_expression "(code **)((int)&uStack_b4 + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_b4 + iVar1)" ( (binary_expression "(int)&uStack_b4 + iVar1" (cast_expression "(int)&uStack_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_b4" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;" (assignment_expression "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1" (pointer_expression "*(int *)(auStack_b8 + iVar1)" * (cast_expression "(int *)(auStack_b8 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_b8 + iVar1)" ( (binary_expression "auStack_b8 + iVar1" identifier + identifier) )))) = (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(char **)((int)aiStack_e0 + iVar1 + 0x20) = uri;" (assignment_expression "*(char **)((int)aiStack_e0 + iVar1 + 0x20) = uri" (pointer_expression "*(char **)((int)aiStack_e0 + iVar1 + 0x20)" * (cast_expression "(char **)((int)aiStack_e0 + iVar1 + 0x20)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x20)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x20" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uchar **)((int)aiStack_e0 + iVar1 + 0x1c) = bin;" (assignment_expression "*(uchar **)((int)aiStack_e0 + iVar1 + 0x1c) = bin" (pointer_expression "*(uchar **)((int)aiStack_e0 + iVar1 + 0x1c)" * (cast_expression "(uchar **)((int)aiStack_e0 + iVar1 + 0x1c)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x1c)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar13;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar13" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc)" * (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0xc" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)aiStack_b0 + iVar1 + 4) = pcVar6;" (assignment_expression "*(char **)((int)aiStack_b0 + iVar1 + 4) = pcVar6" (pointer_expression "*(char **)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(char **)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "sVar4 = (*pcVar17)(str2);" (assignment_expression "sVar4 = (*pcVar17)(str2)" identifier = (call_expression "(*pcVar17)(str2)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(str2)" ( identifier )))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "cVar10 = *hex_00;" (assignment_expression "cVar10 = *hex_00" identifier = (pointer_expression "*hex_00" * identifier)) ;) (do_statement "do {\n    if (cVar10 == '\0') {\n      return;\n    }\n    pcVar20 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (cVar10 == '\0') {\n      return;\n    }\n    pcVar20 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }\n  }" { (if_statement "if (cVar10 == '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "pcVar20 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar20 = *(code **)(iVar12 + -0x7dfc)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7dfc)" * (cast_expression "(code **)(iVar12 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7dfc)" ( (binary_expression "iVar12 + -0x7dfc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);\n      if (pcVar6 == (char *)0x0) {\n        return;\n      }\n      pcVar14 = pcVar6 + 1;\n      cVar10 = pcVar6[1];\n      while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }\n      pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }\n      iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);\n      iVar19 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }\n      if (iVar18 == 0) {\n        return;\n      }\n      iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar18 == 0) {\n        return;\n      }\n      cVar10 = *(char *)(iVar18 + 1);\n      hex_00 = (char *)(iVar18 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');\n      pcVar20 = *(code **)(iVar12 + -0x7dfc);\n      if (*hex_00 == '\0') {\n        return;\n      }\n    }" { (expression_statement "pcVar6 = (char *)(*pcVar20)(hex_00,0x3d);" (assignment_expression "pcVar6 = (char *)(*pcVar20)(hex_00,0x3d)" identifier = (cast_expression "(char *)(*pcVar20)(hex_00,0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar20)(hex_00,0x3d)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(hex_00,0x3d)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n        return;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar14 = pcVar6 + 1;" (assignment_expression "pcVar14 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar10 = pcVar6[1];" (assignment_expression "cVar10 = pcVar6[1]" identifier = (subscript_expression "pcVar6[1]" identifier [ number_literal ])) ;) (while_statement "while (cVar10 == ' ') {\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }" while (parenthesized_expression "(cVar10 == ' ')" ( (binary_expression "cVar10 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        pcVar14 = pcVar14 + 1;\n        cVar10 = *pcVar14;\n      }" { (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "cVar10 = *pcVar14;" (assignment_expression "cVar10 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) })) (expression_statement "pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);" (assignment_expression "pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" identifier = (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" * (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" ( (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) ;) (if_statement "if (cVar10 == '\"') {\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }\n      else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }" if (parenthesized_expression "(cVar10 == '\"')" ( (binary_expression "cVar10 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar14 = pcVar14 + 1;\n        iVar12 = (*pcVar20)(pcVar14,0x22);\n        if (iVar12 == 0) {\n          return;\n        }\n        iVar18 = iVar12 + 1;\n      }" { (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = (*pcVar20)(pcVar14,0x22);" (assignment_expression "iVar12 = (*pcVar20)(pcVar14,0x22)" identifier = (call_expression "(*pcVar20)(pcVar14,0x22)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(pcVar14,0x22)" ( identifier , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\n          return;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar18 = iVar12 + 1;" (assignment_expression "iVar18 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }" else (compound_statement "{\n        iVar18 = (*pcVar20)(pcVar14,0x2c);\n        iVar12 = iVar18;\n      }" { (expression_statement "iVar18 = (*pcVar20)(pcVar14,0x2c);" (assignment_expression "iVar18 = (*pcVar20)(pcVar14,0x2c)" identifier = (call_expression "(*pcVar20)(pcVar14,0x2c)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(pcVar14,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "iVar12 = iVar18;" (assignment_expression "iVar12 = iVar18" identifier = identifier) ;) }))) (expression_statement "iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4);" (assignment_expression "iVar7 = MHD_str_equal_caseless_n_(hex_00,str2,sVar4)" identifier = (call_expression "MHD_str_equal_caseless_n_(hex_00,str2,sVar4)" identifier (argument_list "(hex_00,str2,sVar4)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar19 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar19 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if ((iVar7 != 0) && (pcVar6 == hex_00 + sVar4)) {\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }" if (parenthesized_expression "((iVar7 != 0) && (pcVar6 == hex_00 + sVar4))" ( (binary_expression "(iVar7 != 0) && (pcVar6 == hex_00 + sVar4)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar6 == hex_00 + sVar4)" ( (binary_expression "pcVar6 == hex_00 + sVar4" identifier == (binary_expression "hex_00 + sVar4" identifier + identifier)) ))) )) (compound_statement "{\n        if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        (*pcVar20)(uVar15,pcVar14,uVar8 - 1);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;\n        return;\n      }" { (if_statement "if (iVar12 == 0) {\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }\n          pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }" { (expression_statement "iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14);" (assignment_expression "iVar12 = (**(code **)(iVar19 + -0x7e08))(pcVar14)" identifier = (call_expression "(**(code **)(iVar19 + -0x7e08))(pcVar14)" (parenthesized_expression "(**(code **)(iVar19 + -0x7e08))" ( (pointer_expression "**(code **)(iVar19 + -0x7e08)" * (pointer_expression "*(code **)(iVar19 + -0x7e08)" * (cast_expression "(code **)(iVar19 + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7e08)" ( (binary_expression "iVar19 + -0x7e08" identifier + number_literal) ))))) )) (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" * (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" identifier = (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar12 + 1U;\n          }" if (parenthesized_expression "(iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4))" ( (binary_expression "iVar12 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)" (binary_expression "iVar12 + 1U" identifier + number_literal) <= (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) )) (compound_statement "{\n            uVar8 = iVar12 + 1U;\n          }" { (expression_statement "uVar8 = iVar12 + 1U;" (assignment_expression "uVar8 = iVar12 + 1U" identifier = (binary_expression "iVar12 + 1U" identifier + number_literal)) ;) })) (expression_statement "pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);" (assignment_expression "pcVar20 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" identifier = (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" * (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" ( (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7e34" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) ;) }) (else_clause "else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" else (compound_statement "{\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar20 = *(code **)(iVar19 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar14) + 1;\n          uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" { (expression_statement "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" identifier = (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "pcVar20 = *(code **)(iVar19 + -0x7d40);" (assignment_expression "pcVar20 = *(code **)(iVar19 + -0x7d40)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7d40)" * (cast_expression "(code **)(iVar19 + -0x7d40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d40)" ( (binary_expression "iVar19 + -0x7d40" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (iVar12 - (int)pcVar14) + 1;" (assignment_expression "uVar8 = (iVar12 - (int)pcVar14) + 1" identifier = (binary_expression "(iVar12 - (int)pcVar14) + 1" (parenthesized_expression "(iVar12 - (int)pcVar14)" ( (binary_expression "iVar12 - (int)pcVar14" identifier - (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) (expression_statement "uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar15 = *(undefined4 *)((int)aiStack_b0 + iVar1)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" * (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }" if (parenthesized_expression "(uVar9 < uVar8)" ( (binary_expression "uVar9 < uVar8" identifier < identifier) )) (compound_statement "{\n            uVar8 = uVar9;\n          }" { (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) })) }))) (expression_statement "(*pcVar20)(uVar15,pcVar14,uVar8 - 1);" (call_expression "(*pcVar20)(uVar15,pcVar14,uVar8 - 1)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(uVar15,pcVar14,uVar8 - 1)" ( identifier , identifier , (binary_expression "uVar8 - 1" identifier - number_literal) ))) ;) (expression_statement "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0;" (assignment_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)) = 0" (pointer_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1))" * (cast_expression "(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1))" ( (binary_expression "*(int *)((int)aiStack_b0 + iVar1) + (uVar8 - 1)" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + (parenthesized_expression "(uVar8 - 1)" ( (binary_expression "uVar8 - 1" identifier - number_literal) ))) )))) = number_literal) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar18 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c);" (assignment_expression "iVar18 = (**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c)" identifier = (call_expression "(**(code **)(iVar19 + -0x7dfc))(iVar18,0x2c)" (parenthesized_expression "(**(code **)(iVar19 + -0x7dfc))" ( (pointer_expression "**(code **)(iVar19 + -0x7dfc)" * (pointer_expression "*(code **)(iVar19 + -0x7dfc)" * (cast_expression "(code **)(iVar19 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7dfc)" ( (binary_expression "iVar19 + -0x7dfc" identifier + number_literal) ))))) )) (argument_list "(iVar18,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar18 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "cVar10 = *(char *)(iVar18 + 1);" (assignment_expression "cVar10 = *(char *)(iVar18 + 1)" identifier = (pointer_expression "*(char *)(iVar18 + 1)" * (cast_expression "(char *)(iVar18 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 1)" ( (binary_expression "iVar18 + 1" identifier + number_literal) ))))) ;) (expression_statement "hex_00 = (char *)(iVar18 + 1);" (assignment_expression "hex_00 = (char *)(iVar18 + 1)" identifier = (cast_expression "(char *)(iVar18 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 1)" ( (binary_expression "iVar18 + 1" identifier + number_literal) )))) ;) (if_statement "if (cVar10 != ' ') break;" if (parenthesized_expression "(cVar10 != ' ')" ( (binary_expression "cVar10 != ' '" identifier != (char_literal "' '" ' character ')) )) (break_statement "break;" break ;)) (do_statement "do {\n        hex_00 = hex_00 + 1;\n      } while (*hex_00 == ' ');" do (compound_statement "{\n        hex_00 = hex_00 + 1;\n      }" { (expression_statement "hex_00 = hex_00 + 1;" (assignment_expression "hex_00 = hex_00 + 1" identifier = (binary_expression "hex_00 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*hex_00 == ' ')" ( (binary_expression "*hex_00 == ' '" (pointer_expression "*hex_00" * identifier) == (char_literal "' '" ' character ')) )) ;) (expression_statement "pcVar20 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar20 = *(code **)(iVar12 + -0x7dfc)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7dfc)" * (cast_expression "(code **)(iVar12 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7dfc)" ( (binary_expression "iVar12 + -0x7dfc" identifier + number_literal) ))))) ;) (if_statement "if (*hex_00 == '\0') {\n        return;\n      }" if (parenthesized_expression "(*hex_00 == '\0')" ( (binary_expression "*hex_00 == '\0'" (pointer_expression "*hex_00" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "int FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)" identifier (parameter_list "(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int aiStack_e0 [10];" primitive_type (array_declarator "aiStack_e0 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_b8 [4];" type_identifier (array_declarator "auStack_b8 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "int aiStack_b0 [4];" primitive_type (array_declarator "aiStack_b0 [4]" identifier [ number_literal ]) ;) (declaration "int aiStack_a0 [12];" primitive_type (array_declarator "aiStack_a0 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_70 [4];" type_identifier (array_declarator "auStack_70 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [16];" type_identifier (array_declarator "auStack_68 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "int aiStack_38 [3];" primitive_type (array_declarator "aiStack_38 [3]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "puVar2 = PTR_DAT_0003f05c;" (assignment_expression "puVar2 = PTR_DAT_0003f05c" identifier = identifier) ;) (expression_statement "iVar17 = *param_7;" (assignment_expression "iVar17 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" * (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar1 = -(iVar17 + 7U & 0xfffffff8);" (assignment_expression "iVar1 = -(iVar17 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar17 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar17 + 7U & 0xfffffff8)" ( (binary_expression "iVar17 + 7U & 0xfffffff8" (binary_expression "iVar17 + 7U" identifier + number_literal) & number_literal) )))) ;) (expression_statement "(*(code *)param_7[4])(param_7[1]);" (call_expression "(*(code *)param_7[4])(param_7[1])" (parenthesized_expression "(*(code *)param_7[4])" ( (pointer_expression "*(code *)param_7[4]" * (cast_expression "(code *)param_7[4]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[4]" identifier [ number_literal ]))) )) (argument_list "(param_7[1])" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar14 = (int)aiStack_38 + iVar1 + -0x20;" (assignment_expression "iVar14 = (int)aiStack_38 + iVar1 + -0x20" identifier = (binary_expression "(int)aiStack_38 + iVar1 + -0x20" (binary_expression "(int)aiStack_38 + iVar1" (cast_expression "(int)aiStack_38" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" identifier = identifier) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],&local_3c,4);" (call_expression "(*(code *)param_7[5])(param_7[1],&local_3c,4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],&local_3c,4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (pointer_expression "&local_3c" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],param_2,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_2,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_2,uVar4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (if_statement "if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }" { (expression_statement "(*(code *)param_7[5])(param_7[1],param_3,param_4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_3,param_4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_3,param_4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) })) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_5)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_5)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],param_5,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_5,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_5,uVar4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , (binary_expression "puVar2 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_6)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_6)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6)" ( identifier )))) ;) (expression_statement "(*(code *)param_7[5])(param_7[1],param_6,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_6,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" ( (pointer_expression "*(code *)param_7[5]" * (cast_expression "(code *)param_7[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[5]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],param_6,uVar4)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)param_7[6])(param_7[1],iVar14);" (call_expression "(*(code *)param_7[6])(param_7[1],iVar14)" (parenthesized_expression "(*(code *)param_7[6])" ( (pointer_expression "*(code *)param_7[6]" * (cast_expression "(code *)param_7[6]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_7[6]" identifier [ number_literal ]))) )) (argument_list "(param_7[1],iVar14)" ( (subscript_expression "param_7[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_000255f0(iVar14,iVar17,param_8);" (call_expression "FUN_000255f0(iVar14,iVar17,param_8)" identifier (argument_list "(iVar14,iVar17,param_8)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = aiStack_38;" (assignment_expression "piVar11 = aiStack_38" identifier = identifier) ;) (expression_statement "FUN_000255f0(&local_3c,4,piVar11);" (call_expression "FUN_000255f0(&local_3c,4,piVar11)" identifier (argument_list "(&local_3c,4,piVar11)" ( (pointer_expression "&local_3c" & identifier) , number_literal , identifier ))) ;) (expression_statement "iVar12 = 8;" (assignment_expression "iVar12 = 8" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_strncat_0003f140)();" (call_expression "(*(code *)PTR_strncat_0003f140)()" (parenthesized_expression "(*(code *)PTR_strncat_0003f140)" ( (pointer_expression "*(code *)PTR_strncat_0003f140" * (cast_expression "(code *)PTR_strncat_0003f140" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *(int *)puVar3;" (assignment_expression "iVar5 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_2c == iVar5) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_2c == iVar5)" ( (binary_expression "local_2c == iVar5" identifier == identifier) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar22 = FUN_000259a4;" (assignment_expression "pcVar22 = FUN_000259a4" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_0003f2b8;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0003f2b8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" * (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;" (assignment_expression "*(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7" (pointer_expression "*(int **)((int)aiStack_a0 + iVar1 + 0x14)" * (cast_expression "(int **)((int)aiStack_a0 + iVar1 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x14)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x14" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(auStack_70 + iVar1) = auStack_68;" (assignment_expression "*(undefined1 **)(auStack_70 + iVar1) = auStack_68" (pointer_expression "*(undefined1 **)(auStack_70 + iVar1)" * (cast_expression "(undefined1 **)(auStack_70 + iVar1)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_70 + iVar1)" ( (binary_expression "auStack_70 + iVar1" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;" (assignment_expression "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6" (pointer_expression "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24)" * (cast_expression "(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x24)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x24" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x20)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x20)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x20" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x18)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x18" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x10)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x10" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1)" * (cast_expression "(undefined **)((int)aiStack_a0 + iVar1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "puVar18 + 0x2168c" identifier + number_literal)) ;) (expression_statement "*(code **)((int)&uStack_6c + iVar1) = pcVar22;" (assignment_expression "*(code **)((int)&uStack_6c + iVar1) = pcVar22" (pointer_expression "*(code **)((int)&uStack_6c + iVar1)" * (cast_expression "(code **)((int)&uStack_6c + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_6c + iVar1)" ( (binary_expression "(int)&uStack_6c + iVar1" (cast_expression "(int)&uStack_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_6c" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;" (assignment_expression "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2" (pointer_expression "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c)" * (cast_expression "(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x2c)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x2c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x28)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x28)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x28" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x1c)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x1c)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar15 = *(int **)(puVar18 + 0x19948);" (assignment_expression "piVar15 = *(int **)(puVar18 + 0x19948)" identifier = (pointer_expression "*(int **)(puVar18 + 0x19948)" * (cast_expression "(int **)(puVar18 + 0x19948)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x19948)" ( (binary_expression "puVar18 + 0x19948" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" * (cast_expression "(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_38 + iVar1 + -0x20)" ( (binary_expression "(int)aiStack_38 + iVar1 + -0x20" (binary_expression "(int)aiStack_38 + iVar1" (cast_expression "(int)aiStack_38" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iVar14 = param_4;" (assignment_expression "iVar14 = param_4" identifier = identifier) ;) (expression_statement "iVar17 = FUN_00021920();" (assignment_expression "iVar17 = FUN_00021920()" identifier = (call_expression "FUN_00021920()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar5 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" { (expression_statement "iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);" (assignment_expression "iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" identifier = (call_expression "FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" identifier (argument_list "(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" ( identifier , (binary_expression "*(int *)(iVar5 + -0x7fd4) + -0x26c0" (pointer_expression "*(int *)(iVar5 + -0x7fd4)" * (cast_expression "(int *)(iVar5 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fd4)" ( (binary_expression "iVar5 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar5 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" { (expression_statement "pcVar13 = (char *)piVar11[3];" (assignment_expression "pcVar13 = (char *)piVar11[3]" identifier = (cast_expression "(char *)piVar11[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = *piVar11;" (assignment_expression "iVar5 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" identifier = identifier) ;) (expression_statement "FUN_000255f0();" (call_expression "FUN_000255f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar20 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (goto_statement "goto LAB_00025b04;" goto statement_identifier ;) })) })) (expression_statement "param_5 = *piVar11;" (assignment_expression "param_5 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "param_8 = *(int *)(iVar5 + -0x7fd4);" (assignment_expression "param_8 = *(int *)(iVar5 + -0x7fd4)" identifier = (pointer_expression "*(int *)(iVar5 + -0x7fd4)" * (cast_expression "(int *)(iVar5 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fd4)" ( (binary_expression "iVar5 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)piVar11[4])(piVar11[1]);" (call_expression "(*(code *)piVar11[4])(piVar11[1])" (parenthesized_expression "(*(code *)piVar11[4])" ( (pointer_expression "*(code *)piVar11[4]" * (cast_expression "(code *)piVar11[4]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[4]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1])" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));" (assignment_expression "iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8))" identifier = (binary_expression "(int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8))" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(iVar1 - (param_5 + 7U & 0xfffffff8))" ( (binary_expression "iVar1 - (param_5 + 7U & 0xfffffff8)" identifier - (parenthesized_expression "(param_5 + 7U & 0xfffffff8)" ( (binary_expression "param_5 + 7U & 0xfffffff8" (binary_expression "param_5 + 7U" identifier + number_literal) & number_literal) ))) )))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],iVar12,0x10);" (call_expression "(*(code *)piVar11[5])(piVar11[1],iVar12,0x10)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],iVar12,0x10)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],param_8 + -0x26d0,1)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , (binary_expression "param_8 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);" (assignment_expression "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4)" identifier = (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" ( (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) )) (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_4,uVar6);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_4,uVar6)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],param_4,uVar6)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],param_8 + -0x26d0,1)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , (binary_expression "param_8 + -0x26d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);" (assignment_expression "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4)" identifier = (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" ( (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" * (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "(*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);" (call_expression "(*(code *)piVar11[5])(piVar11[1],uVar4,uVar6)" (parenthesized_expression "(*(code *)piVar11[5])" ( (pointer_expression "*(code *)piVar11[5]" * (cast_expression "(code *)piVar11[5]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[5]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],uVar4,uVar6)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)piVar11[6])(piVar11[1],iVar21);" (call_expression "(*(code *)piVar11[6])(piVar11[1],iVar21)" (parenthesized_expression "(*(code *)piVar11[6])" ( (pointer_expression "*(code *)piVar11[6]" * (cast_expression "(code *)piVar11[6]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[6]" identifier [ number_literal ]))) )) (argument_list "(piVar11[1],iVar21)" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "pcVar13 = (char *)piVar11[3];" (assignment_expression "pcVar13 = (char *)piVar11[3]" identifier = (cast_expression "(char *)piVar11[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = iVar21;" (assignment_expression "iVar17 = iVar21" identifier = identifier) ;) (expression_statement "iVar5 = param_5;" (assignment_expression "iVar5 = param_5" identifier = identifier) ;) (expression_statement "FUN_000255f0();" (call_expression "FUN_000255f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar20 = *(int *)((int)aiStack_a0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1)" ( (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "iVar12 = iVar21;" (assignment_expression "iVar12 = iVar21" identifier = identifier) ;) (expression_statement "param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);" (assignment_expression "param_2 = (undefined1 *)((int)aiStack_b0 + iVar1)" identifier = (cast_expression "(undefined1 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (labeled_statement "LAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }" statement_identifier : (if_statement "if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }" if (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15)" ( (binary_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" * (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return *piVar15;\n  }" { (return_statement "return *piVar15;" return (pointer_expression "*piVar15" * identifier) ;) }))) (expression_statement "pcVar22 = *(code **)(iVar20 + -0x7d78);" (assignment_expression "pcVar22 = *(code **)(iVar20 + -0x7d78)" identifier = (pointer_expression "*(code **)(iVar20 + -0x7d78)" * (cast_expression "(code **)(iVar20 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7d78)" ( (binary_expression "iVar20 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = FUN_00025b8c;" (assignment_expression "pcVar23 = FUN_00025b8c" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = *(code **)(pcVar22 + 0x1969c);" (assignment_expression "pcVar19 = *(code **)(pcVar22 + 0x1969c)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x1969c)" * (cast_expression "(code **)(pcVar22 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x1969c)" ( (binary_expression "pcVar22 + 0x1969c" identifier + number_literal) ))))) ;) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 8)" * (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 8)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 8" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;" (assignment_expression "*(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4" (pointer_expression "*(code **)((int)aiStack_e0 + iVar1)" * (cast_expression "(code **)((int)aiStack_e0 + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "pcVar22 + 0x214a4" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;" (assignment_expression "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2" (pointer_expression "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24)" * (cast_expression "(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x24)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x24" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x18)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x18)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x18" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" * (cast_expression "(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x14)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x14" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x10)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x10)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x10" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar1) = iVar17;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar1) = iVar17" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(code **)((int)&uStack_b4 + iVar1) = pcVar23;" (assignment_expression "*(code **)((int)&uStack_b4 + iVar1) = pcVar23" (pointer_expression "*(code **)((int)&uStack_b4 + iVar1)" * (cast_expression "(code **)((int)&uStack_b4 + iVar1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_b4 + iVar1)" ( (binary_expression "(int)&uStack_b4 + iVar1" (cast_expression "(int)&uStack_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_b4" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;" (assignment_expression "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1" (pointer_expression "*(int *)(auStack_b8 + iVar1)" * (cast_expression "(int *)(auStack_b8 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_b8 + iVar1)" ( (binary_expression "auStack_b8 + iVar1" identifier + identifier) )))) = (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x20)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x20)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x20" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x1c)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x1c)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc)" * (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0xc)" ( (binary_expression "(int)aiStack_e0 + iVar1 + 0xc" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = (*pcVar19)(iVar14);" (assignment_expression "iVar17 = (*pcVar19)(iVar14)" identifier = (call_expression "(*pcVar19)(iVar14)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "cVar10 = *pcVar13;" (assignment_expression "cVar10 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (do_statement "do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  }" { (if_statement "if (cVar10 == '\0') {\n      return 0;\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar22 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(iVar12 + -0x7dfc)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7dfc)" * (cast_expression "(code **)(iVar12 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7dfc)" ( (binary_expression "iVar12 + -0x7dfc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);" (assignment_expression "pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d)" identifier = (cast_expression "(char *)(*pcVar22)(pcVar13,0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pcVar13,0x3d)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcVar13,0x3d)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar16 = pcVar7 + 1;" (assignment_expression "pcVar16 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar10 = pcVar7[1];" (assignment_expression "cVar10 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) (while_statement "while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }" while (parenthesized_expression "(cVar10 == ' ')" ( (binary_expression "cVar10 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar10 = *pcVar16;" (assignment_expression "cVar10 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (expression_statement "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" identifier = (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" * (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" ( (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) ;) (if_statement "if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" if (parenthesized_expression "(cVar10 == '\"')" ( (binary_expression "cVar10 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = (*pcVar22)(pcVar16,0x22);" (assignment_expression "iVar12 = (*pcVar22)(pcVar16,0x22)" identifier = (call_expression "(*pcVar22)(pcVar16,0x22)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcVar16,0x22)" ( identifier , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = iVar12 + 1;" (assignment_expression "iVar5 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" else (compound_statement "{\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" { (expression_statement "iVar5 = (*pcVar22)(pcVar16,0x2c);" (assignment_expression "iVar5 = (*pcVar22)(pcVar16,0x2c)" identifier = (call_expression "(*pcVar22)(pcVar16,0x2c)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcVar16,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" identifier = identifier) ;) }))) (expression_statement "iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);" (assignment_expression "iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17)" identifier = (call_expression "FUN_000219b0(pcVar13,iVar14,iVar17)" identifier (argument_list "(pcVar13,iVar14,iVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar21 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar21 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }" if (parenthesized_expression "((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17))" ( (binary_expression "(iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar7 == pcVar13 + iVar17)" ( (binary_expression "pcVar7 == pcVar13 + iVar17" identifier == (binary_expression "pcVar13 + iVar17" identifier + identifier)) ))) )) (compound_statement "{\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }" { (if_statement "if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }" { (expression_statement "iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);" (assignment_expression "iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16)" identifier = (call_expression "(**(code **)(iVar21 + -0x7e08))(pcVar16)" (parenthesized_expression "(**(code **)(iVar21 + -0x7e08))" ( (pointer_expression "**(code **)(iVar21 + -0x7e08)" * (pointer_expression "*(code **)(iVar21 + -0x7e08)" * (cast_expression "(code **)(iVar21 + -0x7e08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7e08)" ( (binary_expression "iVar21 + -0x7e08" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" * (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" identifier = (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }" if (parenthesized_expression "(iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4))" ( (binary_expression "iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)" (binary_expression "iVar14 + 1U" identifier + number_literal) <= (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) )) (compound_statement "{\n            uVar8 = iVar14 + 1U;\n          }" { (expression_statement "uVar8 = iVar14 + 1U;" (assignment_expression "uVar8 = iVar14 + 1U" identifier = (binary_expression "iVar14 + 1U" identifier + number_literal)) ;) })) (expression_statement "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);" (assignment_expression "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" identifier = (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" * (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" ( (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7e34" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + number_literal) ))))) ;) }) (else_clause "else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" else (compound_statement "{\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" { (expression_statement "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" identifier = (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" * (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" ( (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "pcVar22 = *(code **)(iVar21 + -0x7d40);" (assignment_expression "pcVar22 = *(code **)(iVar21 + -0x7d40)" identifier = (pointer_expression "*(code **)(iVar21 + -0x7d40)" * (cast_expression "(code **)(iVar21 + -0x7d40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d40)" ( (binary_expression "iVar21 + -0x7d40" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (iVar12 - (int)pcVar16) + 1;" (assignment_expression "uVar8 = (iVar12 - (int)pcVar16) + 1" identifier = (binary_expression "(iVar12 - (int)pcVar16) + 1" (parenthesized_expression "(iVar12 - (int)pcVar16)" ( (binary_expression "iVar12 - (int)pcVar16" identifier - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1)" identifier = (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" * (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }" if (parenthesized_expression "(uVar9 < uVar8)" ( (binary_expression "uVar9 < uVar8" identifier < identifier) )) (compound_statement "{\n            uVar8 = uVar9;\n          }" { (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) })) }))) (expression_statement "iVar14 = uVar8 - 1;" (assignment_expression "iVar14 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "(*pcVar22)(uVar4,pcVar16,iVar14);" (call_expression "(*pcVar22)(uVar4,pcVar16,iVar14)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(uVar4,pcVar16,iVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;" (assignment_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0" (pointer_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" * (cast_expression "(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" ( (binary_expression "*(int *)((int)aiStack_b0 + iVar1) + iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" * (cast_expression "(int *)((int)aiStack_b0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar1)" ( (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) = number_literal) ;) (return_statement "return iVar14;" return identifier ;) })) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);" (assignment_expression "iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c)" identifier = (call_expression "(**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c)" (parenthesized_expression "(**(code **)(iVar21 + -0x7dfc))" ( (pointer_expression "**(code **)(iVar21 + -0x7dfc)" * (pointer_expression "*(code **)(iVar21 + -0x7dfc)" * (cast_expression "(code **)(iVar21 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7dfc)" ( (binary_expression "iVar21 + -0x7dfc" identifier + number_literal) ))))) )) (argument_list "(iVar5,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" identifier = (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" * (cast_expression "(int *)((int)aiStack_e0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_e0 + iVar1)" ( (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "cVar10 = *(char *)(iVar5 + 1);" (assignment_expression "cVar10 = *(char *)(iVar5 + 1)" identifier = (pointer_expression "*(char *)(iVar5 + 1)" * (cast_expression "(char *)(iVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(iVar5 + 1);" (assignment_expression "pcVar13 = (char *)(iVar5 + 1)" identifier = (cast_expression "(char *)(iVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (cVar10 != ' ') break;" if (parenthesized_expression "(cVar10 != ' ')" ( (binary_expression "cVar10 != ' '" identifier != (char_literal "' '" ' character ')) )) (break_statement "break;" break ;)) (do_statement "do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');" do (compound_statement "{\n        pcVar13 = pcVar13 + 1;\n      }" { (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar13 == ' ')" ( (binary_expression "*pcVar13 == ' '" (pointer_expression "*pcVar13" * identifier) == (char_literal "' '" ' character ')) )) ;) (expression_statement "pcVar22 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(iVar12 + -0x7dfc)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7dfc)" * (cast_expression "(code **)(iVar12 + -0x7dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7dfc)" ( (binary_expression "iVar12 + -0x7dfc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar13 == '\0') {\n        return 0;\n      }" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) ))) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (pointer_expression * IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return 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) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + IDENT) )))) = LIT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (break_statement break ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) ;) (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 (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "int FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}" (primitive_type "int") (function_declarator "FUN_00025760(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)" (identifier "FUN_00025760") (parameter_list "(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,\n                undefined4 param_6,int *param_7,int param_8)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined1 *param_2" (type_identifier "undefined1") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "int *param_7" (primitive_type "int") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  char cVar10;\n  uint uVar9;\n  int *piVar11;\n  int iVar12;\n  char *pcVar13;\n  int iVar14;\n  int *piVar15;\n  char *pcVar16;\n  int iVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  int iVar20;\n  int iVar21;\n  code *pcVar22;\n  code *pcVar23;\n  int aiStack_e0 [10];\n  undefined1 auStack_b8 [4];\n  undefined4 uStack_b4;\n  int aiStack_b0 [4];\n  int aiStack_a0 [12];\n  undefined1 auStack_70 [4];\n  undefined4 uStack_6c;\n  undefined1 auStack_68 [16];\n  undefined4 local_3c;\n  int aiStack_38 [3];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  puVar2 = PTR_DAT_0003f05c;\n  iVar17 = *param_7;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  iVar1 = -(iVar17 + 7U & 0xfffffff8);\n  (*(code *)param_7[4])(param_7[1]);\n  iVar14 = (int)aiStack_38 + iVar1 + -0x20;\n  local_3c = param_1;\n  (*(code *)param_7[5])(param_7[1],&local_3c,4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);\n  (*(code *)param_7[5])(param_7[1],param_2,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);\n  (*(code *)param_7[5])(param_7[1],param_5,uVar4);\n  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);\n  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);\n  (*(code *)param_7[5])(param_7[1],param_6,uVar4);\n  (*(code *)param_7[6])(param_7[1],iVar14);\n  FUN_000255f0(iVar14,iVar17,param_8);\n  piVar11 = aiStack_38;\n  FUN_000255f0(&local_3c,4,piVar11);\n  iVar12 = 8;\n  (*(code *)PTR_strncat_0003f140)();\n  iVar5 = *(int *)puVar3;\n  if (local_2c == iVar5) {\n    return iVar5;\n  }\n  pcVar22 = FUN_000259a4;\n  puVar18 = PTR___stack_chk_fail_0003f2b8;\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;\n  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;\n  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;\n  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;\n  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;\n  *(code **)((int)&uStack_6c + iVar1) = pcVar22;\n  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;\n  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;\n  piVar15 = *(int **)(puVar18 + 0x19948);\n  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);\n  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;\n  iVar14 = param_4;\n  iVar17 = FUN_00021920();\n  iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n  if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }\n  param_5 = *piVar11;\n  param_8 = *(int *)(iVar5 + -0x7fd4);\n  (*(code *)piVar11[4])(piVar11[1]);\n  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));\n  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);\n  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);\n  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);\n  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);\n  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);\n  (*(code *)piVar11[6])(piVar11[1],iVar21);\n  pcVar13 = (char *)piVar11[3];\n  iVar17 = iVar21;\n  iVar5 = param_5;\n  FUN_000255f0();\n  iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n  iVar12 = iVar21;\n  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);\nLAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }\n  pcVar22 = *(code **)(iVar20 + -0x7d78);\n  pcVar23 = FUN_00025b8c;\n  (*pcVar22)();\n  pcVar19 = *(code **)(pcVar22 + 0x1969c);\n  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;\n  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;\n  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;\n  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;\n  *(int *)((int)aiStack_b0 + iVar1) = iVar17;\n  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;\n  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;\n  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;\n  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;\n  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;\n  iVar17 = (*pcVar19)(iVar14);\n  iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n  cVar10 = *pcVar13;\n  do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "int aiStack_e0 [10];" (primitive_type "int") (array_declarator "aiStack_e0 [10]" (identifier "aiStack_e0") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "undefined1 auStack_b8 [4];" (type_identifier "undefined1") (array_declarator "auStack_b8 [4]" (identifier "auStack_b8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 uStack_b4;" (type_identifier "undefined4") (identifier "uStack_b4") (; ";")) (declaration "int aiStack_b0 [4];" (primitive_type "int") (array_declarator "aiStack_b0 [4]" (identifier "aiStack_b0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int aiStack_a0 [12];" (primitive_type "int") (array_declarator "aiStack_a0 [12]" (identifier "aiStack_a0") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_70 [4];" (type_identifier "undefined1") (array_declarator "auStack_70 [4]" (identifier "auStack_70") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 uStack_6c;" (type_identifier "undefined4") (identifier "uStack_6c") (; ";")) (declaration "undefined1 auStack_68 [16];" (type_identifier "undefined1") (array_declarator "auStack_68 [16]" (identifier "auStack_68") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "int aiStack_38 [3];" (primitive_type "int") (array_declarator "aiStack_38 [3]" (identifier "aiStack_38") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0003f2ec" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_0003f2ec")) (; ";")) (expression_statement "puVar2 = PTR_DAT_0003f05c;" (assignment_expression "puVar2 = PTR_DAT_0003f05c" (identifier "puVar2") (= "=") (identifier "PTR_DAT_0003f05c")) (; ";")) (expression_statement "iVar17 = *param_7;" (assignment_expression "iVar17 = *param_7" (identifier "iVar17") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0003f2ec")))) (; ";")) (expression_statement "iVar1 = -(iVar17 + 7U & 0xfffffff8);" (assignment_expression "iVar1 = -(iVar17 + 7U & 0xfffffff8)" (identifier "iVar1") (= "=") (unary_expression "-(iVar17 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(iVar17 + 7U & 0xfffffff8)" (( "(") (binary_expression "iVar17 + 7U & 0xfffffff8" (binary_expression "iVar17 + 7U" (identifier "iVar17") (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "(*(code *)param_7[4])(param_7[1]);" (call_expression "(*(code *)param_7[4])(param_7[1])" (parenthesized_expression "(*(code *)param_7[4])" (( "(") (pointer_expression "*(code *)param_7[4]" (* "*") (cast_expression "(code *)param_7[4]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[4]" (identifier "param_7") ([ "[") (number_literal "4") (] "]")))) () ")")) (argument_list "(param_7[1])" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "iVar14 = (int)aiStack_38 + iVar1 + -0x20;" (assignment_expression "iVar14 = (int)aiStack_38 + iVar1 + -0x20" (identifier "iVar14") (= "=") (binary_expression "(int)aiStack_38 + iVar1 + -0x20" (binary_expression "(int)aiStack_38 + iVar1" (cast_expression "(int)aiStack_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_38")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "-0x20"))) (; ";")) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" (identifier "local_3c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],&local_3c,4);" (call_expression "(*(code *)param_7[5])(param_7[1],&local_3c,4)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],&local_3c,4)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "puVar2 + -0x26d0" (identifier "puVar2") (+ "+") (number_literal "-0x26d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_2)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0003f228)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003f228" (* "*") (cast_expression "(code *)PTR_strlen_0003f228" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003f228"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],param_2,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_2,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],param_2,uVar4)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "puVar2 + -0x26d0" (identifier "puVar2") (+ "+") (number_literal "-0x26d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (param_4 != 0) {\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)param_7[5])(param_7[1],param_3,param_4);\n  }" ({ "{") (expression_statement "(*(code *)param_7[5])(param_7[1],param_3,param_4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_3,param_4)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],param_3,param_4)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "puVar2 + -0x26d0" (identifier "puVar2") (+ "+") (number_literal "-0x26d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0003f228)(param_5)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003f228" (* "*") (cast_expression "(code *)PTR_strlen_0003f228" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003f228"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],param_5,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_5,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],param_5,uVar4)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);" (call_expression "(*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],puVar2 + -0x26d0,1)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "puVar2 + -0x26d0" (identifier "puVar2") (+ "+") (number_literal "-0x26d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_0003f228)(param_6)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0003f228)(param_6)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003f228" (* "*") (cast_expression "(code *)PTR_strlen_0003f228" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003f228"))) () ")")) (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (; ";")) (expression_statement "(*(code *)param_7[5])(param_7[1],param_6,uVar4);" (call_expression "(*(code *)param_7[5])(param_7[1],param_6,uVar4)" (parenthesized_expression "(*(code *)param_7[5])" (( "(") (pointer_expression "*(code *)param_7[5]" (* "*") (cast_expression "(code *)param_7[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(param_7[1],param_6,uVar4)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "(*(code *)param_7[6])(param_7[1],iVar14);" (call_expression "(*(code *)param_7[6])(param_7[1],iVar14)" (parenthesized_expression "(*(code *)param_7[6])" (( "(") (pointer_expression "*(code *)param_7[6]" (* "*") (cast_expression "(code *)param_7[6]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_7[6]" (identifier "param_7") ([ "[") (number_literal "6") (] "]")))) () ")")) (argument_list "(param_7[1],iVar14)" (( "(") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "FUN_000255f0(iVar14,iVar17,param_8);" (call_expression "FUN_000255f0(iVar14,iVar17,param_8)" (identifier "FUN_000255f0") (argument_list "(iVar14,iVar17,param_8)" (( "(") (identifier "iVar14") (, ",") (identifier "iVar17") (, ",") (identifier "param_8") () ")"))) (; ";")) (expression_statement "piVar11 = aiStack_38;" (assignment_expression "piVar11 = aiStack_38" (identifier "piVar11") (= "=") (identifier "aiStack_38")) (; ";")) (expression_statement "FUN_000255f0(&local_3c,4,piVar11);" (call_expression "FUN_000255f0(&local_3c,4,piVar11)" (identifier "FUN_000255f0") (argument_list "(&local_3c,4,piVar11)" (( "(") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (number_literal "4") (, ",") (identifier "piVar11") () ")"))) (; ";")) (expression_statement "iVar12 = 8;" (assignment_expression "iVar12 = 8" (identifier "iVar12") (= "=") (number_literal "8")) (; ";")) (expression_statement "(*(code *)PTR_strncat_0003f140)();" (call_expression "(*(code *)PTR_strncat_0003f140)()" (parenthesized_expression "(*(code *)PTR_strncat_0003f140)" (( "(") (pointer_expression "*(code *)PTR_strncat_0003f140" (* "*") (cast_expression "(code *)PTR_strncat_0003f140" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncat_0003f140"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)puVar3;" (assignment_expression "iVar5 = *(int *)puVar3" (identifier "iVar5") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (if_statement "if (local_2c == iVar5) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == iVar5)" (( "(") (binary_expression "local_2c == iVar5" (identifier "local_2c") (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "pcVar22 = FUN_000259a4;" (assignment_expression "pcVar22 = FUN_000259a4" (identifier "pcVar22") (= "=") (identifier "FUN_000259a4")) (; ";")) (expression_statement "puVar18 = PTR___stack_chk_fail_0003f2b8;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0003f2b8" (identifier "puVar18") (= "=") (identifier "PTR___stack_chk_fail_0003f2b8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0003f2b8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;" (assignment_expression "*(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7" (pointer_expression "*(int **)((int)aiStack_a0 + iVar1 + 0x14)" (* "*") (cast_expression "(int **)((int)aiStack_a0 + iVar1 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x14)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x14" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_7")) (; ";")) (expression_statement "*(undefined1 **)(auStack_70 + iVar1) = auStack_68;" (assignment_expression "*(undefined1 **)(auStack_70 + iVar1) = auStack_68" (pointer_expression "*(undefined1 **)(auStack_70 + iVar1)" (* "*") (cast_expression "(undefined1 **)(auStack_70 + iVar1)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(auStack_70 + iVar1)" (( "(") (binary_expression "auStack_70 + iVar1" (identifier "auStack_70") (+ "+") (identifier "iVar1")) () ")")))) (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;" (assignment_expression "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6" (pointer_expression "*(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x24)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x24" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x20)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x20)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x20" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" (* "*") (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x18)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x18" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" (* "*") (cast_expression "(undefined **)((int)aiStack_a0 + iVar1 + 0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x10)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x10" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;" (assignment_expression "*(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c" (pointer_expression "*(undefined **)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(undefined **)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")")))) (= "=") (binary_expression "puVar18 + 0x2168c" (identifier "puVar18") (+ "+") (number_literal "0x2168c"))) (; ";")) (expression_statement "*(code **)((int)&uStack_6c + iVar1) = pcVar22;" (assignment_expression "*(code **)((int)&uStack_6c + iVar1) = pcVar22" (pointer_expression "*(code **)((int)&uStack_6c + iVar1)" (* "*") (cast_expression "(code **)((int)&uStack_6c + iVar1)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)&uStack_6c + iVar1)" (( "(") (binary_expression "(int)&uStack_6c + iVar1" (cast_expression "(int)&uStack_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_6c" (& "&") (identifier "uStack_6c"))) (+ "+") (identifier "iVar1")) () ")")))) (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;" (assignment_expression "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2" (pointer_expression "*(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c)" (* "*") (cast_expression "(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x2c)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x2c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x28)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x28)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x28" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0x1c)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0x1c)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "piVar15 = *(int **)(puVar18 + 0x19948);" (assignment_expression "piVar15 = *(int **)(puVar18 + 0x19948)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(puVar18 + 0x19948)" (* "*") (cast_expression "(int **)(puVar18 + 0x19948)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x19948)" (( "(") (binary_expression "puVar18 + 0x19948" (identifier "puVar18") (+ "+") (number_literal "0x19948")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_38 + iVar1 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_38 + iVar1 + -0x20)" (( "(") (binary_expression "(int)aiStack_38 + iVar1 + -0x20" (binary_expression "(int)aiStack_38 + iVar1" (cast_expression "(int)aiStack_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_38")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;" (assignment_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "iVar14 = param_4;" (assignment_expression "iVar14 = param_4" (identifier "iVar14") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar17 = FUN_00021920();" (assignment_expression "iVar17 = FUN_00021920()" (identifier "iVar17") (= "=") (call_expression "FUN_00021920()" (identifier "FUN_00021920") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar5 = *(int *)((int)aiStack_a0 + iVar1)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);\n    iVar5 = *(int *)((int)aiStack_a0 + iVar1);\n    if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }\n  }" ({ "{") (expression_statement "iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);" (assignment_expression "iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" (identifier "iVar17") (= "=") (call_expression "FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" (identifier "FUN_00021920") (argument_list "(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0)" (( "(") (identifier "param_8") (, ",") (binary_expression "*(int *)(iVar5 + -0x7fd4) + -0x26c0" (pointer_expression "*(int *)(iVar5 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar5 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x7fd4)" (( "(") (binary_expression "iVar5 + -0x7fd4" (identifier "iVar5") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x26c0")) () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar5 = *(int *)((int)aiStack_a0 + iVar1)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar13 = (char *)piVar11[3];\n      iVar5 = *piVar11;\n      iVar17 = iVar12;\n      FUN_000255f0();\n      iVar20 = *(int *)((int)aiStack_a0 + iVar1);\n      goto LAB_00025b04;\n    }" ({ "{") (expression_statement "pcVar13 = (char *)piVar11[3];" (assignment_expression "pcVar13 = (char *)piVar11[3]" (identifier "pcVar13") (= "=") (cast_expression "(char *)piVar11[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar5 = *piVar11;" (assignment_expression "iVar5 = *piVar11" (identifier "iVar5") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" (identifier "iVar17") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "FUN_000255f0();" (call_expression "FUN_000255f0()" (identifier "FUN_000255f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar20 = *(int *)((int)aiStack_a0 + iVar1)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (goto_statement "goto LAB_00025b04;" (goto "goto") (statement_identifier "LAB_00025b04") (; ";")) (} "}"))) (} "}"))) (expression_statement "param_5 = *piVar11;" (assignment_expression "param_5 = *piVar11" (identifier "param_5") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "param_8 = *(int *)(iVar5 + -0x7fd4);" (assignment_expression "param_8 = *(int *)(iVar5 + -0x7fd4)" (identifier "param_8") (= "=") (pointer_expression "*(int *)(iVar5 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar5 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x7fd4)" (( "(") (binary_expression "iVar5 + -0x7fd4" (identifier "iVar5") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (expression_statement "(*(code *)piVar11[4])(piVar11[1]);" (call_expression "(*(code *)piVar11[4])(piVar11[1])" (parenthesized_expression "(*(code *)piVar11[4])" (( "(") (pointer_expression "*(code *)piVar11[4]" (* "*") (cast_expression "(code *)piVar11[4]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")))) () ")")) (argument_list "(piVar11[1])" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));" (assignment_expression "iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8))" (identifier "iVar21") (= "=") (binary_expression "(int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8))" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (parenthesized_expression "(iVar1 - (param_5 + 7U & 0xfffffff8))" (( "(") (binary_expression "iVar1 - (param_5 + 7U & 0xfffffff8)" (identifier "iVar1") (- "-") (parenthesized_expression "(param_5 + 7U & 0xfffffff8)" (( "(") (binary_expression "param_5 + 7U & 0xfffffff8" (binary_expression "param_5 + 7U" (identifier "param_5") (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")"))) () ")")))) (; ";")) (expression_statement "(*(code *)piVar11[5])(piVar11[1],iVar12,0x10);" (call_expression "(*(code *)piVar11[5])(piVar11[1],iVar12,0x10)" (parenthesized_expression "(*(code *)piVar11[5])" (( "(") (pointer_expression "*(code *)piVar11[5]" (* "*") (cast_expression "(code *)piVar11[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(piVar11[1],iVar12,0x10)" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "iVar12") (, ",") (number_literal "0x10") () ")"))) (; ";")) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1)" (parenthesized_expression "(*(code *)piVar11[5])" (( "(") (pointer_expression "*(code *)piVar11[5]" (* "*") (cast_expression "(code *)piVar11[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(piVar11[1],param_8 + -0x26d0,1)" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "param_8 + -0x26d0" (identifier "param_8") (+ "+") (number_literal "-0x26d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);" (assignment_expression "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" (( "(") (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (* "*") (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (* "*") (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (( "(") (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")")))) (+ "+") (number_literal "-0x7e08")) () ")"))))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (; ";")) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_4,uVar6);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_4,uVar6)" (parenthesized_expression "(*(code *)piVar11[5])" (( "(") (pointer_expression "*(code *)piVar11[5]" (* "*") (cast_expression "(code *)piVar11[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(piVar11[1],param_4,uVar6)" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_4") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);" (call_expression "(*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1)" (parenthesized_expression "(*(code *)piVar11[5])" (( "(") (pointer_expression "*(code *)piVar11[5]" (* "*") (cast_expression "(code *)piVar11[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(piVar11[1],param_8 + -0x26d0,1)" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "param_8 + -0x26d0" (identifier "param_8") (+ "+") (number_literal "-0x26d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);" (assignment_expression "uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4)" (parenthesized_expression "(**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))" (( "(") (pointer_expression "**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (* "*") (pointer_expression "*(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (* "*") (cast_expression "(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08)" (( "(") (binary_expression "*(int *)((int)aiStack_a0 + iVar1) + -0x7e08" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")")))) (+ "+") (number_literal "-0x7e08")) () ")"))))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "(*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);" (call_expression "(*(code *)piVar11[5])(piVar11[1],uVar4,uVar6)" (parenthesized_expression "(*(code *)piVar11[5])" (( "(") (pointer_expression "*(code *)piVar11[5]" (* "*") (cast_expression "(code *)piVar11[5]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")))) () ")")) (argument_list "(piVar11[1],uVar4,uVar6)" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "uVar4") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "(*(code *)piVar11[6])(piVar11[1],iVar21);" (call_expression "(*(code *)piVar11[6])(piVar11[1],iVar21)" (parenthesized_expression "(*(code *)piVar11[6])" (( "(") (pointer_expression "*(code *)piVar11[6]" (* "*") (cast_expression "(code *)piVar11[6]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[6]" (identifier "piVar11") ([ "[") (number_literal "6") (] "]")))) () ")")) (argument_list "(piVar11[1],iVar21)" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "iVar21") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)piVar11[3];" (assignment_expression "pcVar13 = (char *)piVar11[3]" (identifier "pcVar13") (= "=") (cast_expression "(char *)piVar11[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar17 = iVar21;" (assignment_expression "iVar17 = iVar21" (identifier "iVar17") (= "=") (identifier "iVar21")) (; ";")) (expression_statement "iVar5 = param_5;" (assignment_expression "iVar5 = param_5" (identifier "iVar5") (= "=") (identifier "param_5")) (; ";")) (expression_statement "FUN_000255f0();" (call_expression "FUN_000255f0()" (identifier "FUN_000255f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = *(int *)((int)aiStack_a0 + iVar1);" (assignment_expression "iVar20 = *(int *)((int)aiStack_a0 + iVar1)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)((int)aiStack_a0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar21;" (assignment_expression "iVar12 = iVar21" (identifier "iVar12") (= "=") (identifier "iVar21")) (; ";")) (expression_statement "param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);" (assignment_expression "param_2 = (undefined1 *)((int)aiStack_b0 + iVar1)" (identifier "param_2") (= "=") (cast_expression "(undefined1 *)((int)aiStack_b0 + iVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) () ")")))) (; ";")) (labeled_statement "LAB_00025b04:\n  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }" (statement_identifier "LAB_00025b04") (: ":") (if_statement "if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {\n    return *piVar15;\n  }" (if "if") (parenthesized_expression "(*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15)" (( "(") (binary_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15" (pointer_expression "*(int *)((int)aiStack_a0 + iVar1 + 0xc)" (* "*") (cast_expression "(int *)((int)aiStack_a0 + iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_a0 + iVar1 + 0xc)" (( "(") (binary_expression "(int)aiStack_a0 + iVar1 + 0xc" (binary_expression "(int)aiStack_a0 + iVar1" (cast_expression "(int)aiStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_a0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n    return *piVar15;\n  }" ({ "{") (return_statement "return *piVar15;" (return "return") (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (} "}")))) (expression_statement "pcVar22 = *(code **)(iVar20 + -0x7d78);" (assignment_expression "pcVar22 = *(code **)(iVar20 + -0x7d78)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(iVar20 + -0x7d78)" (* "*") (cast_expression "(code **)(iVar20 + -0x7d78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + -0x7d78)" (( "(") (binary_expression "iVar20 + -0x7d78" (identifier "iVar20") (+ "+") (number_literal "-0x7d78")) () ")"))))) (; ";")) (expression_statement "pcVar23 = FUN_00025b8c;" (assignment_expression "pcVar23 = FUN_00025b8c" (identifier "pcVar23") (= "=") (identifier "FUN_00025b8c")) (; ";")) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar19 = *(code **)(pcVar22 + 0x1969c);" (assignment_expression "pcVar19 = *(code **)(pcVar22 + 0x1969c)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(pcVar22 + 0x1969c)" (* "*") (cast_expression "(code **)(pcVar22 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + 0x1969c)" (( "(") (binary_expression "pcVar22 + 0x1969c" (identifier "pcVar22") (+ "+") (number_literal "0x1969c")) () ")"))))) (; ";")) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 8)" (* "*") (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 8)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 8" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "piVar11")) (; ";")) (expression_statement "*(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;" (assignment_expression "*(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4" (pointer_expression "*(code **)((int)aiStack_e0 + iVar1)" (* "*") (cast_expression "(code **)((int)aiStack_e0 + iVar1)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) () ")")))) (= "=") (binary_expression "pcVar22 + 0x214a4" (identifier "pcVar22") (+ "+") (number_literal "0x214a4"))) (; ";")) (expression_statement "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;" (assignment_expression "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2" (pointer_expression "*(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24)" (* "*") (cast_expression "(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x24)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0x24" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x18)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x18)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0x18" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "param_8")) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x14)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0x14" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x10)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x10)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0x10" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)((int)aiStack_b0 + iVar1) = iVar17;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar1) = iVar17" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_b0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(code **)((int)&uStack_b4 + iVar1) = pcVar23;" (assignment_expression "*(code **)((int)&uStack_b4 + iVar1) = pcVar23" (pointer_expression "*(code **)((int)&uStack_b4 + iVar1)" (* "*") (cast_expression "(code **)((int)&uStack_b4 + iVar1)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)&uStack_b4 + iVar1)" (( "(") (binary_expression "(int)&uStack_b4 + iVar1" (cast_expression "(int)&uStack_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_b4" (& "&") (identifier "uStack_b4"))) (+ "+") (identifier "iVar1")) () ")")))) (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;" (assignment_expression "*(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1" (pointer_expression "*(int *)(auStack_b8 + iVar1)" (* "*") (cast_expression "(int *)(auStack_b8 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_b8 + iVar1)" (( "(") (binary_expression "auStack_b8 + iVar1" (identifier "auStack_b8") (+ "+") (identifier "iVar1")) () ")")))) (= "=") (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x20)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x20)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0x20" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;" (assignment_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1 + 0x1c)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0x1c)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0x1c" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;" (assignment_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15" (pointer_expression "*(int **)((int)aiStack_e0 + iVar1 + 0xc)" (* "*") (cast_expression "(int **)((int)aiStack_e0 + iVar1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1 + 0xc)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1 + 0xc" (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "piVar15")) (; ";")) (expression_statement "*(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1 + 4)" (* "*") (cast_expression "(int *)((int)aiStack_b0 + iVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar17 = (*pcVar19)(iVar14);" (assignment_expression "iVar17 = (*pcVar19)(iVar14)" (identifier "iVar17") (= "=") (call_expression "(*pcVar19)(iVar14)" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (expression_statement "cVar10 = *pcVar13;" (assignment_expression "cVar10 = *pcVar13" (identifier "cVar10") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (do_statement "do {\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (cVar10 == '\0') {\n      return 0;\n    }\n    pcVar22 = *(code **)(iVar12 + -0x7dfc);\n    while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }\n  }" ({ "{") (if_statement "if (cVar10 == '\0') {\n      return 0;\n    }" (if "if") (parenthesized_expression "(cVar10 == '\0')" (( "(") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar22 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(iVar12 + -0x7dfc)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(iVar12 + -0x7dfc)" (* "*") (cast_expression "(code **)(iVar12 + -0x7dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + -0x7dfc)" (( "(") (binary_expression "iVar12 + -0x7dfc" (identifier "iVar12") (+ "+") (number_literal "-0x7dfc")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);\n      if (pcVar7 == (char *)0x0) {\n        return 0;\n      }\n      pcVar16 = pcVar7 + 1;\n      cVar10 = pcVar7[1];\n      while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }\n      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);\n      if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }\n      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);\n      iVar21 = *(int *)((int)aiStack_e0 + iVar1);\n      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }\n      if (iVar5 == 0) {\n        return 0;\n      }\n      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);\n      iVar12 = *(int *)((int)aiStack_e0 + iVar1);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      cVar10 = *(char *)(iVar5 + 1);\n      pcVar13 = (char *)(iVar5 + 1);\n      if (cVar10 != ' ') break;\n      do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');\n      pcVar22 = *(code **)(iVar12 + -0x7dfc);\n      if (*pcVar13 == '\0') {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);" (assignment_expression "pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d)" (identifier "pcVar7") (= "=") (cast_expression "(char *)(*pcVar22)(pcVar13,0x3d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar22)(pcVar13,0x3d)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(pcVar13,0x3d)" (( "(") (identifier "pcVar13") (, ",") (number_literal "0x3d") () ")"))))) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar16 = pcVar7 + 1;" (assignment_expression "pcVar16 = pcVar7 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar10 = pcVar7[1];" (assignment_expression "cVar10 = pcVar7[1]" (identifier "cVar10") (= "=") (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while (cVar10 == ' ') {\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }" (while "while") (parenthesized_expression "(cVar10 == ' ')" (( "(") (binary_expression "cVar10 == ' '" (identifier "cVar10") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n        pcVar16 = pcVar16 + 1;\n        cVar10 = *pcVar16;\n      }" ({ "{") (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar10 = *pcVar16;" (assignment_expression "cVar10 = *pcVar16" (identifier "cVar10") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (} "}"))) (expression_statement "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" (* "*") (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc)" (( "(") (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) () ")")))) (+ "+") (number_literal "-0x7dfc")) () ")"))))) (; ";")) (if_statement "if (cVar10 == '\"') {\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }\n      else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" (if "if") (parenthesized_expression "(cVar10 == '\"')" (( "(") (binary_expression "cVar10 == '\"'" (identifier "cVar10") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n        pcVar16 = pcVar16 + 1;\n        iVar12 = (*pcVar22)(pcVar16,0x22);\n        if (iVar12 == 0) {\n          return 0;\n        }\n        iVar5 = iVar12 + 1;\n      }" ({ "{") (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = (*pcVar22)(pcVar16,0x22);" (assignment_expression "iVar12 = (*pcVar22)(pcVar16,0x22)" (identifier "iVar12") (= "=") (call_expression "(*pcVar22)(pcVar16,0x22)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(pcVar16,0x22)" (( "(") (identifier "pcVar16") (, ",") (number_literal "0x22") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar5 = iVar12 + 1;" (assignment_expression "iVar5 = iVar12 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" (else "else") (compound_statement "{\n        iVar5 = (*pcVar22)(pcVar16,0x2c);\n        iVar12 = iVar5;\n      }" ({ "{") (expression_statement "iVar5 = (*pcVar22)(pcVar16,0x2c);" (assignment_expression "iVar5 = (*pcVar22)(pcVar16,0x2c)" (identifier "iVar5") (= "=") (call_expression "(*pcVar22)(pcVar16,0x2c)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(pcVar16,0x2c)" (( "(") (identifier "pcVar16") (, ",") (number_literal "0x2c") () ")")))) (; ";")) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" (identifier "iVar12") (= "=") (identifier "iVar5")) (; ";")) (} "}")))) (expression_statement "iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);" (assignment_expression "iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17)" (identifier "iVar20") (= "=") (call_expression "FUN_000219b0(pcVar13,iVar14,iVar17)" (identifier "FUN_000219b0") (argument_list "(pcVar13,iVar14,iVar17)" (( "(") (identifier "pcVar13") (, ",") (identifier "iVar14") (, ",") (identifier "iVar17") () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar21 = *(int *)((int)aiStack_e0 + iVar1)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (if_statement "if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }" (if "if") (parenthesized_expression "((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17))" (( "(") (binary_expression "(iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)" (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar7 == pcVar13 + iVar17)" (( "(") (binary_expression "pcVar7 == pcVar13 + iVar17" (identifier "pcVar7") (== "==") (binary_expression "pcVar13 + iVar17" (identifier "pcVar13") (+ "+") (identifier "iVar17"))) () ")"))) () ")")) (compound_statement "{\n        if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }\n        iVar14 = uVar8 - 1;\n        (*pcVar22)(uVar4,pcVar16,iVar14);\n        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;\n        return iVar14;\n      }" ({ "{") (if_statement "if (iVar12 == 0) {\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }\n        else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }\n          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);\n        }" ({ "{") (expression_statement "iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);" (assignment_expression "iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(iVar21 + -0x7e08))(pcVar16)" (parenthesized_expression "(**(code **)(iVar21 + -0x7e08))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7e08)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7e08)" (* "*") (cast_expression "(code **)(iVar21 + -0x7e08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7e08)" (( "(") (binary_expression "iVar21 + -0x7e08" (identifier "iVar21") (+ "+") (number_literal "-0x7e08")) () ")"))))) () ")")) (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" (* "*") (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {\n            uVar8 = iVar14 + 1U;\n          }" (if "if") (parenthesized_expression "(iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4))" (( "(") (binary_expression "iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)" (binary_expression "iVar14 + 1U" (identifier "iVar14") (+ "+") (number_literal "1U")) (<= "<=") (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" (* "*") (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n            uVar8 = iVar14 + 1U;\n          }" ({ "{") (expression_statement "uVar8 = iVar14 + 1U;" (assignment_expression "uVar8 = iVar14 + 1U" (identifier "uVar8") (= "=") (binary_expression "iVar14 + 1U" (identifier "iVar14") (+ "+") (number_literal "1U"))) (; ";")) (} "}"))) (expression_statement "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);" (assignment_expression "pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" (* "*") (cast_expression "(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34)" (( "(") (binary_expression "*(int *)((int)aiStack_e0 + iVar1) + -0x7e34" (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) () ")")))) (+ "+") (number_literal "-0x7e34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" (else "else") (compound_statement "{\n          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);\n          pcVar22 = *(code **)(iVar21 + -0x7d40);\n          uVar8 = (iVar12 - (int)pcVar16) + 1;\n          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);\n          if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }\n        }" ({ "{") (expression_statement "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);" (assignment_expression "uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)((int)aiStack_b0 + iVar1 + 4)" (* "*") (cast_expression "(uint *)((int)aiStack_b0 + iVar1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1 + 4)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1 + 4" (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar22 = *(code **)(iVar21 + -0x7d40);" (assignment_expression "pcVar22 = *(code **)(iVar21 + -0x7d40)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(iVar21 + -0x7d40)" (* "*") (cast_expression "(code **)(iVar21 + -0x7d40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7d40)" (( "(") (binary_expression "iVar21 + -0x7d40" (identifier "iVar21") (+ "+") (number_literal "-0x7d40")) () ")"))))) (; ";")) (expression_statement "uVar8 = (iVar12 - (int)pcVar16) + 1;" (assignment_expression "uVar8 = (iVar12 - (int)pcVar16) + 1" (identifier "uVar8") (= "=") (binary_expression "(iVar12 - (int)pcVar16) + 1" (parenthesized_expression "(iVar12 - (int)pcVar16)" (( "(") (binary_expression "iVar12 - (int)pcVar16" (identifier "iVar12") (- "-") (cast_expression "(int)pcVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar16"))) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);" (assignment_expression "uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)((int)aiStack_b0 + iVar1)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_b0 + iVar1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (if_statement "if (uVar9 < uVar8) {\n            uVar8 = uVar9;\n          }" (if "if") (parenthesized_expression "(uVar9 < uVar8)" (( "(") (binary_expression "uVar9 < uVar8" (identifier "uVar9") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n            uVar8 = uVar9;\n          }" ({ "{") (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" (identifier "uVar8") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar14 = uVar8 - 1;" (assignment_expression "iVar14 = uVar8 - 1" (identifier "iVar14") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar22)(uVar4,pcVar16,iVar14);" (call_expression "(*pcVar22)(uVar4,pcVar16,iVar14)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(uVar4,pcVar16,iVar14)" (( "(") (identifier "uVar4") (, ",") (identifier "pcVar16") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;" (assignment_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0" (pointer_expression "*(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" (* "*") (cast_expression "(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)aiStack_b0 + iVar1) + iVar14)" (( "(") (binary_expression "*(int *)((int)aiStack_b0 + iVar1) + iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_b0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar1)" (( "(") (binary_expression "(int)aiStack_b0 + iVar1" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar1")) () ")")))) (+ "+") (identifier "iVar14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar14;" (return "return") (identifier "iVar14") (; ";")) (} "}"))) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);" (assignment_expression "iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c)" (parenthesized_expression "(**(code **)(iVar21 + -0x7dfc))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7dfc)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7dfc)" (* "*") (cast_expression "(code **)(iVar21 + -0x7dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7dfc)" (( "(") (binary_expression "iVar21 + -0x7dfc" (identifier "iVar21") (+ "+") (number_literal "-0x7dfc")) () ")"))))) () ")")) (argument_list "(iVar5,0x2c)" (( "(") (identifier "iVar5") (, ",") (number_literal "0x2c") () ")")))) (; ";")) (expression_statement "iVar12 = *(int *)((int)aiStack_e0 + iVar1);" (assignment_expression "iVar12 = *(int *)((int)aiStack_e0 + iVar1)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)((int)aiStack_e0 + iVar1)" (* "*") (cast_expression "(int *)((int)aiStack_e0 + iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_e0 + iVar1)" (( "(") (binary_expression "(int)aiStack_e0 + iVar1" (cast_expression "(int)aiStack_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_e0")) (+ "+") (identifier "iVar1")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "cVar10 = *(char *)(iVar5 + 1);" (assignment_expression "cVar10 = *(char *)(iVar5 + 1)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar5 + 1)" (* "*") (cast_expression "(char *)(iVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 1)" (( "(") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pcVar13 = (char *)(iVar5 + 1);" (assignment_expression "pcVar13 = (char *)(iVar5 + 1)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(iVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 1)" (( "(") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (cVar10 != ' ') break;" (if "if") (parenthesized_expression "(cVar10 != ' ')" (( "(") (binary_expression "cVar10 != ' '" (identifier "cVar10") (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (do_statement "do {\n        pcVar13 = pcVar13 + 1;\n      } while (*pcVar13 == ' ');" (do "do") (compound_statement "{\n        pcVar13 = pcVar13 + 1;\n      }" ({ "{") (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar13 == ' ')" (( "(") (binary_expression "*pcVar13 == ' '" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar22 = *(code **)(iVar12 + -0x7dfc);" (assignment_expression "pcVar22 = *(code **)(iVar12 + -0x7dfc)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(iVar12 + -0x7dfc)" (* "*") (cast_expression "(code **)(iVar12 + -0x7dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + -0x7dfc)" (( "(") (binary_expression "iVar12 + -0x7dfc" (identifier "iVar12") (+ "+") (number_literal "-0x7dfc")) () ")"))))) (; ";")) (if_statement "if (*pcVar13 == '\0') {\n        return 0;\n      }" (if "if") (parenthesized_expression "(*pcVar13 == '\0')" (( "(") (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

void function_1(uint32_t nonce_time,char *method,char *rnd,size_t var_5,char *var_12,
                    char *realm,type_1 *da,char *var_13)

{
  int var_3;
  type_2 *var_4;
  type_2 *puVar3;
  size_t var_22;
  type_3 uVar5;
  char *var_17;
  int var_20;
  type_4 var_25;
  char var_16;
  type_4 var_24;
  type_5 *puVar11;
  int var_7;
  size_t *hex;
  type_5 *bin;
  char *var_21;
  char *str2;
  int *piVar13;
  char *var_18;
  type_3 uVar15;
  size_t var_1;
  type_5 *bin_00;
  type_2 *var_9;
  type_6 *pcVar17;
  int var_11;
  int var_23;
  type_6 *var_14;
  type_6 *pcVar21;
  int aiStack_e0 [10];
  type_7 var_15 [4];
  type_3 uStack_b4;
  int aiStack_b0 [4];
  int aiStack_a0 [12];
  type_7 var_8 [4];
  type_3 uStack_6c;
  type_7 auStack_68 [16];
  type_5 timestamp [4];
  char var_2 [9];
  
  puVar3 = PTR___stack_chk_guard_0003f2ec;
  var_4 = PTR_DAT_0003f05c;
  var_1 = da->digest_size;
  var_7 = *(int *)PTR___stack_chk_guard_0003f2ec;
  var_3 = -(var_1 + 7 & 0xfffffff8);
  (*da->init)(da->ctx);
  puVar11 = (type_5 *)(var_2 + var_3 + -0x20);
  timestamp = (type_5  [4])nonce_time;
  (*da->update)(da->ctx,timestamp,4);
  (*da->update)(da->ctx,var_4 + -0x26d0,1);
  var_22 = (*(type_6 *)PTR_strlen_0003f228)(method);
  (*da->update)(da->ctx,(uint8_t *)method,var_22);
  (*da->update)(da->ctx,var_4 + -0x26d0,1);
  if (var_5 != 0) {
    (*da->update)(da->ctx,(uint8_t *)rnd,var_5);
  }
  (*da->update)(da->ctx,var_4 + -0x26d0,1);
  var_22 = (*(type_6 *)PTR_strlen_0003f228)(var_12);
  (*da->update)(da->ctx,(uint8_t *)var_12,var_22);
  (*da->update)(da->ctx,var_4 + -0x26d0,1);
  var_22 = (*(type_6 *)PTR_strlen_0003f228)(realm);
  (*da->update)(da->ctx,(uint8_t *)realm,var_22);
  (*da->digest)(da->ctx,puVar11);
  var_6(puVar11,var_1,var_13);
  hex = (size_t *)var_2;
  var_6(timestamp,4,(char *)hex);
  bin = (type_5 *)0x8;
  (*(type_6 *)PTR_strncat_0003f140)();
  if (var_7 == *(int *)puVar3) {
    return;
  }
  var_14 = digest_calc_ha1_from_digest;
  var_9 = PTR___stack_chk_fail_0003f2b8;
  (*(type_6 *)PTR___stack_chk_fail_0003f2b8)();
  *(type_1 **)((int)aiStack_a0 + var_3 + 0x14) = da;
  *(type_7 **)(var_8 + var_3) = auStack_68;
  *(char **)((int)aiStack_a0 + var_3 + 0x24) = realm;
  *(size_t *)((int)aiStack_a0 + var_3 + 0x20) = var_1;
  *(type_2 **)((int)aiStack_a0 + var_3 + 0x18) = puVar3;
  *(type_2 **)((int)aiStack_a0 + var_3 + 0x10) = var_4;
  *(type_2 **)((int)aiStack_a0 + var_3) = var_9 + 0x2168c;
  *(type_6 **)((int)&uStack_6c + var_3) = var_14;
  *(char **)((int)aiStack_a0 + var_3 + 0x2c) = method;
  *(char **)((int)aiStack_a0 + var_3 + 0x28) = var_12;
  *(type_5 **)((int)aiStack_a0 + var_3 + 0x1c) = puVar11;
  piVar13 = *(int **)(var_9 + 0x19948);
  var_7 = *(int *)(var_9 + 0x196b8);
  uVar15 = *(type_3 *)(var_2 + var_3 + -0x20);
  *(int *)((int)aiStack_a0 + var_3 + 0xc) = *piVar13;
  str2 = (char *)var_5;
  var_7 = var_10(var_13,(char *)(var_7 + -0x26cc));
  var_11 = *(int *)((int)aiStack_a0 + var_3);
  if (var_7 == 0) {
    var_7 = var_10(var_13,(char *)(*(int *)(var_11 + -0x7fd4) + -0x26c0));
    var_11 = *(int *)((int)aiStack_a0 + var_3);
    if (var_7 == 0) {
      var_21 = (char *)hex[3];
      var_17 = (char *)*hex;
      puVar11 = bin;
      var_6(bin,(size_t)var_17,var_21);
      var_7 = *(int *)((int)aiStack_a0 + var_3);
      goto LAB_00025b04;
    }
  }
  var_12 = (char *)*hex;
  var_13 = *(char **)(var_11 + -0x7fd4);
  (*(type_6 *)hex[4])(hex[1]);
  bin_00 = (type_5 *)((int)aiStack_a0 + (var_3 - ((type_4)(var_12 + 7) & 0xfffffff8)));
  (*(type_6 *)hex[5])(hex[1],bin,0x10);
  (*(type_6 *)hex[5])(hex[1],var_13 + -0x26d0,1);
  uVar5 = (**(type_6 **)(*(int *)((int)aiStack_a0 + var_3) + -0x7e08))(var_5);
  (*(type_6 *)hex[5])(hex[1],var_5,uVar5);
  (*(type_6 *)hex[5])(hex[1],var_13 + -0x26d0,1);
  uVar5 = (**(type_6 **)(*(int *)((int)aiStack_a0 + var_3) + -0x7e08))(uVar15);
  (*(type_6 *)hex[5])(hex[1],uVar15,uVar5);
  (*(type_6 *)hex[6])(hex[1],bin_00);
  var_21 = (char *)hex[3];
  puVar11 = bin_00;
  var_17 = var_12;
  var_6(bin_00,(size_t)var_12,var_21);
  var_7 = *(int *)((int)aiStack_a0 + var_3);
  bin = bin_00;
  method = (char *)((int)aiStack_b0 + var_3);
LAB_00025b04:
  if (*(int *)((int)aiStack_a0 + var_3 + 0xc) == *piVar13) {
    return;
  }
  var_14 = *(type_6 **)(var_7 + -0x7d78);
  pcVar21 = lookup_sub_value;
  (*var_14)();
  pcVar17 = *(type_6 **)(var_14 + 0x1969c);
  *(size_t **)((int)aiStack_e0 + var_3 + 8) = hex;
  *(type_6 **)((int)aiStack_e0 + var_3) = var_14 + 0x214a4;
  *(char **)((int)aiStack_e0 + var_3 + 0x24) = method;
  *(char **)((int)aiStack_e0 + var_3 + 0x18) = var_13;
  *(type_3 *)((int)aiStack_e0 + var_3 + 0x14) = uVar15;
  *(size_t *)((int)aiStack_e0 + var_3 + 0x10) = var_5;
  *(type_5 **)((int)aiStack_b0 + var_3) = puVar11;
  *(type_6 **)((int)&uStack_b4 + var_3) = pcVar21;
  *(int *)(var_15 + var_3) = (int)aiStack_b0 + var_3;
  *(char **)((int)aiStack_e0 + var_3 + 0x20) = var_12;
  *(type_5 **)((int)aiStack_e0 + var_3 + 0x1c) = bin;
  *(int **)((int)aiStack_e0 + var_3 + 0xc) = piVar13;
  *(char **)((int)aiStack_b0 + var_3 + 4) = var_17;
  var_22 = (*pcVar17)(str2);
  var_7 = *(int *)((int)aiStack_e0 + var_3);
  var_16 = *var_21;
  do {
    if (var_16 == '\0') {
      return;
    }
    var_14 = *(type_6 **)(var_7 + -0x7dfc);
    while( true ) {
      var_17 = (char *)(*var_14)(var_21,0x3d);
      if (var_17 == (char *)0x0) {
        return;
      }
      var_18 = var_17 + 1;
      var_16 = var_17[1];
      while (var_16 == ' ') {
        var_18 = var_18 + 1;
        var_16 = *var_18;
      }
      var_14 = *(type_6 **)(*(int *)((int)aiStack_e0 + var_3) + -0x7dfc);
      if (var_16 == '\"') {
        var_18 = var_18 + 1;
        var_7 = (*var_14)(var_18,0x22);
        if (var_7 == 0) {
          return;
        }
        var_11 = var_7 + 1;
      }
      else {
        var_11 = (*var_14)(var_18,0x2c);
        var_7 = var_11;
      }
      var_20 = var_19(var_21,str2,var_22);
      var_23 = *(int *)((int)aiStack_e0 + var_3);
      if ((var_20 != 0) && (var_17 == var_21 + var_22)) {
        if (var_7 == 0) {
          var_7 = (**(type_6 **)(var_23 + -0x7e08))(var_18);
          uVar15 = *(type_3 *)((int)aiStack_b0 + var_3);
          var_25 = *(type_4 *)((int)aiStack_b0 + var_3 + 4);
          if (var_7 + 1U <= *(type_4 *)((int)aiStack_b0 + var_3 + 4)) {
            var_25 = var_7 + 1U;
          }
          var_14 = *(type_6 **)(*(int *)((int)aiStack_e0 + var_3) + -0x7e34);
        }
        else {
          var_24 = *(type_4 *)((int)aiStack_b0 + var_3 + 4);
          var_14 = *(type_6 **)(var_23 + -0x7d40);
          var_25 = (var_7 - (int)var_18) + 1;
          uVar15 = *(type_3 *)((int)aiStack_b0 + var_3);
          if (var_24 < var_25) {
            var_25 = var_24;
          }
        }
        (*var_14)(uVar15,var_18,var_25 - 1);
        *(type_7 *)(*(int *)((int)aiStack_b0 + var_3) + (var_25 - 1)) = 0;
        return;
      }
      if (var_11 == 0) {
        return;
      }
      var_11 = (**(type_6 **)(var_23 + -0x7dfc))(var_11,0x2c);
      var_7 = *(int *)((int)aiStack_e0 + var_3);
      if (var_11 == 0) {
        return;
      }
      var_16 = *(char *)(var_11 + 1);
      var_21 = (char *)(var_11 + 1);
      if (var_16 != ' ') break;
      do {
        var_21 = var_21 + 1;
      } while (*var_21 == ' ');
      var_14 = *(type_6 **)(var_7 + -0x7dfc);
      if (*var_21 == '\0') {
        return;
      }
    }
  } while( true );
}


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

int MASKED(undefined4 param_1,undefined1 *param_2,undefined4 param_3,int param_4,int param_5,
                undefined4 param_6,int *param_7,int param_8)

{
  int iVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  char *pcVar7;
  uint uVar8;
  char cVar10;
  uint uVar9;
  int *piVar11;
  int iVar12;
  char *pcVar13;
  int iVar14;
  int *piVar15;
  char *pcVar16;
  int iVar17;
  undefined *puVar18;
  code *pcVar19;
  int iVar20;
  int iVar21;
  code *pcVar22;
  code *pcVar23;
  int aiStack_e0 [10];
  undefined1 auStack_b8 [4];
  undefined4 uStack_b4;
  int aiStack_b0 [4];
  int aiStack_a0 [12];
  undefined1 auStack_70 [4];
  undefined4 uStack_6c;
  undefined1 auStack_68 [16];
  undefined4 local_3c;
  int aiStack_38 [3];
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_0003f2ec;
  puVar2 = PTR_DAT_0003f05c;
  iVar17 = *param_7;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  iVar1 = -(iVar17 + 7U & 0xfffffff8);
  (*(code *)param_7[4])(param_7[1]);
  iVar14 = (int)aiStack_38 + iVar1 + -0x20;
  local_3c = param_1;
  (*(code *)param_7[5])(param_7[1],&local_3c,4);
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  uVar4 = (*(code *)PTR_strlen_0003f228)(param_2);
  (*(code *)param_7[5])(param_7[1],param_2,uVar4);
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  if (param_4 != 0) {
    (*(code *)param_7[5])(param_7[1],param_3,param_4);
  }
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  uVar4 = (*(code *)PTR_strlen_0003f228)(param_5);
  (*(code *)param_7[5])(param_7[1],param_5,uVar4);
  (*(code *)param_7[5])(param_7[1],puVar2 + -0x26d0,1);
  uVar4 = (*(code *)PTR_strlen_0003f228)(param_6);
  (*(code *)param_7[5])(param_7[1],param_6,uVar4);
  (*(code *)param_7[6])(param_7[1],iVar14);
  FUN_000255f0(iVar14,iVar17,param_8);
  piVar11 = aiStack_38;
  FUN_000255f0(&local_3c,4,piVar11);
  iVar12 = 8;
  (*(code *)PTR_strncat_0003f140)();
  iVar5 = *(int *)puVar3;
  if (local_2c == iVar5) {
    return iVar5;
  }
  pcVar22 = FUN_000259a4;
  puVar18 = PTR___stack_chk_fail_0003f2b8;
  (*(code *)PTR___stack_chk_fail_0003f2b8)();
  *(int **)((int)aiStack_a0 + iVar1 + 0x14) = param_7;
  *(undefined1 **)(auStack_70 + iVar1) = auStack_68;
  *(undefined4 *)((int)aiStack_a0 + iVar1 + 0x24) = param_6;
  *(int *)((int)aiStack_a0 + iVar1 + 0x20) = iVar17;
  *(undefined **)((int)aiStack_a0 + iVar1 + 0x18) = puVar3;
  *(undefined **)((int)aiStack_a0 + iVar1 + 0x10) = puVar2;
  *(undefined **)((int)aiStack_a0 + iVar1) = puVar18 + 0x2168c;
  *(code **)((int)&uStack_6c + iVar1) = pcVar22;
  *(undefined1 **)((int)aiStack_a0 + iVar1 + 0x2c) = param_2;
  *(int *)((int)aiStack_a0 + iVar1 + 0x28) = param_5;
  *(int *)((int)aiStack_a0 + iVar1 + 0x1c) = iVar14;
  piVar15 = *(int **)(puVar18 + 0x19948);
  uVar4 = *(undefined4 *)((int)aiStack_38 + iVar1 + -0x20);
  *(int *)((int)aiStack_a0 + iVar1 + 0xc) = *piVar15;
  iVar14 = param_4;
  iVar17 = FUN_00021920();
  iVar5 = *(int *)((int)aiStack_a0 + iVar1);
  if (iVar17 == 0) {
    iVar17 = FUN_00021920(param_8,*(int *)(iVar5 + -0x7fd4) + -0x26c0);
    iVar5 = *(int *)((int)aiStack_a0 + iVar1);
    if (iVar17 == 0) {
      pcVar13 = (char *)piVar11[3];
      iVar5 = *piVar11;
      iVar17 = iVar12;
      FUN_000255f0();
      iVar20 = *(int *)((int)aiStack_a0 + iVar1);
      goto LAB_00025b04;
    }
  }
  param_5 = *piVar11;
  param_8 = *(int *)(iVar5 + -0x7fd4);
  (*(code *)piVar11[4])(piVar11[1]);
  iVar21 = (int)aiStack_a0 + (iVar1 - (param_5 + 7U & 0xfffffff8));
  (*(code *)piVar11[5])(piVar11[1],iVar12,0x10);
  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);
  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(param_4);
  (*(code *)piVar11[5])(piVar11[1],param_4,uVar6);
  (*(code *)piVar11[5])(piVar11[1],param_8 + -0x26d0,1);
  uVar6 = (**(code **)(*(int *)((int)aiStack_a0 + iVar1) + -0x7e08))(uVar4);
  (*(code *)piVar11[5])(piVar11[1],uVar4,uVar6);
  (*(code *)piVar11[6])(piVar11[1],iVar21);
  pcVar13 = (char *)piVar11[3];
  iVar17 = iVar21;
  iVar5 = param_5;
  FUN_000255f0();
  iVar20 = *(int *)((int)aiStack_a0 + iVar1);
  iVar12 = iVar21;
  param_2 = (undefined1 *)((int)aiStack_b0 + iVar1);
LAB_00025b04:
  if (*(int *)((int)aiStack_a0 + iVar1 + 0xc) == *piVar15) {
    return *piVar15;
  }
  pcVar22 = *(code **)(iVar20 + -0x7d78);
  pcVar23 = FUN_00025b8c;
  (*pcVar22)();
  pcVar19 = *(code **)(pcVar22 + 0x1969c);
  *(int **)((int)aiStack_e0 + iVar1 + 8) = piVar11;
  *(code **)((int)aiStack_e0 + iVar1) = pcVar22 + 0x214a4;
  *(undefined1 **)((int)aiStack_e0 + iVar1 + 0x24) = param_2;
  *(int *)((int)aiStack_e0 + iVar1 + 0x18) = param_8;
  *(undefined4 *)((int)aiStack_e0 + iVar1 + 0x14) = uVar4;
  *(int *)((int)aiStack_e0 + iVar1 + 0x10) = param_4;
  *(int *)((int)aiStack_b0 + iVar1) = iVar17;
  *(code **)((int)&uStack_b4 + iVar1) = pcVar23;
  *(int *)(auStack_b8 + iVar1) = (int)aiStack_b0 + iVar1;
  *(int *)((int)aiStack_e0 + iVar1 + 0x20) = param_5;
  *(int *)((int)aiStack_e0 + iVar1 + 0x1c) = iVar12;
  *(int **)((int)aiStack_e0 + iVar1 + 0xc) = piVar15;
  *(int *)((int)aiStack_b0 + iVar1 + 4) = iVar5;
  iVar17 = (*pcVar19)(iVar14);
  iVar12 = *(int *)((int)aiStack_e0 + iVar1);
  cVar10 = *pcVar13;
  do {
    if (cVar10 == '\0') {
      return 0;
    }
    pcVar22 = *(code **)(iVar12 + -0x7dfc);
    while( true ) {
      pcVar7 = (char *)(*pcVar22)(pcVar13,0x3d);
      if (pcVar7 == (char *)0x0) {
        return 0;
      }
      pcVar16 = pcVar7 + 1;
      cVar10 = pcVar7[1];
      while (cVar10 == ' ') {
        pcVar16 = pcVar16 + 1;
        cVar10 = *pcVar16;
      }
      pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7dfc);
      if (cVar10 == '\"') {
        pcVar16 = pcVar16 + 1;
        iVar12 = (*pcVar22)(pcVar16,0x22);
        if (iVar12 == 0) {
          return 0;
        }
        iVar5 = iVar12 + 1;
      }
      else {
        iVar5 = (*pcVar22)(pcVar16,0x2c);
        iVar12 = iVar5;
      }
      iVar20 = FUN_000219b0(pcVar13,iVar14,iVar17);
      iVar21 = *(int *)((int)aiStack_e0 + iVar1);
      if ((iVar20 != 0) && (pcVar7 == pcVar13 + iVar17)) {
        if (iVar12 == 0) {
          iVar14 = (**(code **)(iVar21 + -0x7e08))(pcVar16);
          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);
          uVar8 = *(uint *)((int)aiStack_b0 + iVar1 + 4);
          if (iVar14 + 1U <= *(uint *)((int)aiStack_b0 + iVar1 + 4)) {
            uVar8 = iVar14 + 1U;
          }
          pcVar22 = *(code **)(*(int *)((int)aiStack_e0 + iVar1) + -0x7e34);
        }
        else {
          uVar9 = *(uint *)((int)aiStack_b0 + iVar1 + 4);
          pcVar22 = *(code **)(iVar21 + -0x7d40);
          uVar8 = (iVar12 - (int)pcVar16) + 1;
          uVar4 = *(undefined4 *)((int)aiStack_b0 + iVar1);
          if (uVar9 < uVar8) {
            uVar8 = uVar9;
          }
        }
        iVar14 = uVar8 - 1;
        (*pcVar22)(uVar4,pcVar16,iVar14);
        *(undefined1 *)(*(int *)((int)aiStack_b0 + iVar1) + iVar14) = 0;
        return iVar14;
      }
      if (iVar5 == 0) {
        return 0;
      }
      iVar5 = (**(code **)(iVar21 + -0x7dfc))(iVar5,0x2c);
      iVar12 = *(int *)((int)aiStack_e0 + iVar1);
      if (iVar5 == 0) {
        return 0;
      }
      cVar10 = *(char *)(iVar5 + 1);
      pcVar13 = (char *)(iVar5 + 1);
      if (cVar10 != ' ') break;
      do {
        pcVar13 = pcVar13 + 1;
      } while (*pcVar13 == ' ');
      pcVar22 = *(code **)(iVar12 + -0x7dfc);
      if (*pcVar13 == '\0') {
        return 0;
      }
    }
  } while( true );
}

