
void * add234_internal(tree234 *t,void *e,int index)

{
  node234 *pnVar1;
  int iVar2;
  node234_conflict *pnVar3;
  void *pvVar4;
  node234_conflict *n;
  node234_conflict *pnVar5;
  int iVar6;
  node234_conflict *pnVar7;
  node234 **local_58;
  int local_50;
  int local_4c;
  node234 *local_48;
  void *local_40;
  
  if (t->root == (node234_conflict *)0x0) {
    pnVar3 = (node234_conflict *)safemalloc(1,0x50);
    t->root = pnVar3;
    pnVar3->elems[2] = (void *)0x0;
    t->root->elems[1] = (void *)0x0;
    t->root->kids[1] = (node234 *)0x0;
    t->root->kids[0] = (node234 *)0x0;
    t->root->kids[3] = (node234 *)0x0;
    t->root->kids[2] = (node234 *)0x0;
    t->root->counts[1] = 0;
    t->root->counts[0] = 0;
    t->root->counts[3] = 0;
    t->root->counts[2] = 0;
    t->root->parent = (node234_conflict *)0x0;
    t->root->elems[0] = e;
  }
  else {
    pnVar3 = t->root;
    local_40 = e;
    if (pnVar3 == (node234_conflict *)0x0) {
      local_4c = 0;
      local_50 = 0;
      n = (node234_conflict *)0x0;
LAB_0014f1d8:
      pnVar5 = (node234_conflict *)safemalloc(1,0x50);
      t->root = pnVar5;
      pnVar5->kids[0] = n;
      t->root->counts[0] = local_50;
      t->root->elems[0] = local_40;
      t->root->kids[1] = pnVar3;
      t->root->counts[1] = local_4c;
      t->root->elems[1] = (void *)0x0;
      t->root->kids[2] = (node234 *)0x0;
      t->root->counts[2] = 0;
      t->root->elems[2] = (void *)0x0;
      t->root->kids[3] = (node234 *)0x0;
      t->root->counts[3] = 0;
      t->root->parent = (node234_conflict *)0x0;
      pnVar1 = t->root->kids[0];
      if (pnVar1 != (node234 *)0x0) {
        pnVar1->parent = t->root;
      }
      pnVar1 = t->root->kids[1];
      if (pnVar1 != (node234 *)0x0) {
        pnVar1->parent = t->root;
      }
    }
    else {
      do {
        pnVar5 = pnVar3;
        if (index < 0) {
          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);
          if (iVar2 < 0) {
            iVar2 = 0;
          }
          else {
            if (iVar2 == 0) {
              return pnVar5->elems[0];
            }
            if (pnVar5->elems[1] == (void *)0x0) {
              iVar2 = 1;
            }
            else {
              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);
              if (iVar2 < 0) {
                iVar2 = 1;
              }
              else {
                if (iVar2 == 0) {
                  return pnVar5->elems[1];
                }
                if (pnVar5->elems[2] == (void *)0x0) {
                  iVar2 = 2;
                }
                else {
                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);
                  if (iVar2 < 0) {
                    iVar2 = 2;
                  }
                  else {
                    if (iVar2 == 0) {
                      return pnVar5->elems[2];
                    }
                    iVar2 = 3;
                  }
                }
              }
            }
          }
        }
        else {
          iVar2 = index;
          if (pnVar5->kids[0] != (node234 *)0x0) {
            if (pnVar5->counts[0] < index) {
              index = index - (pnVar5->counts[0] + 1);
              if (pnVar5->counts[1] < index) {
                index = index - (pnVar5->counts[1] + 1);
                if (pnVar5->counts[2] < index) {
                  index = index - (pnVar5->counts[2] + 1);
                  if (pnVar5->counts[3] < index) {
                    return (void *)0x0;
                  }
                  iVar2 = 3;
                }
                else {
                  iVar2 = 2;
                }
              }
              else {
                iVar2 = 1;
              }
            }
            else {
              iVar2 = 0;
            }
          }
        }
        pnVar3 = pnVar5->kids[iVar2];
      } while (pnVar3 != (node234 *)0x0);
      local_58 = pnVar5->kids + iVar2;
      pvVar4 = pnVar5->elems[1];
      if (pvVar4 == (void *)0x0) {
        local_4c = 0;
        local_50 = 0;
        pnVar3 = (node234 *)0x0;
        n = (node234 *)0x0;
LAB_0014ecd0:
        if (local_58 == pnVar5->kids) {
          pnVar5->kids[2] = pnVar5->kids[1];
          pnVar5->counts[2] = pnVar5->counts[1];
          pnVar5->elems[1] = pnVar5->elems[0];
          pnVar5->kids[1] = pnVar3;
          pnVar5->counts[1] = local_4c;
          pnVar5->elems[0] = local_40;
          pnVar5->kids[0] = n;
          pnVar5->counts[0] = local_50;
        }
        else {
          pnVar5->kids[2] = pnVar3;
          pnVar5->counts[2] = local_4c;
          pnVar5->elems[1] = local_40;
          pnVar5->kids[1] = n;
          pnVar5->counts[1] = local_50;
        }
        if (pnVar5->kids[0] != (node234 *)0x0) {
          pnVar5->kids[0]->parent = pnVar5;
        }
        if (pnVar5->kids[1] != (node234 *)0x0) {
          pnVar5->kids[1]->parent = pnVar5;
        }
        if (pnVar5->kids[2] != (node234 *)0x0) {
          pnVar5->kids[2]->parent = pnVar5;
        }
      }
      else {
        if (pnVar5->elems[2] == (void *)0x0) {
          local_4c = 0;
          local_50 = 0;
          pnVar3 = (node234 *)0x0;
          n = (node234 *)0x0;
        }
        else {
          local_4c = 0;
          local_50 = 0;
          pnVar7 = (node234_conflict *)0x0;
          local_48 = pnVar3;
          do {
            pnVar3 = pnVar5;
            n = (node234_conflict *)safemalloc(1,0x50);
            n->parent = pnVar3->parent;
            if (local_58 == pnVar3->kids) {
              n->kids[0] = pnVar7;
              n->counts[0] = local_50;
              n->elems[0] = local_40;
              n->kids[1] = local_48;
              n->counts[1] = local_4c;
              n->elems[1] = pnVar3->elems[0];
              n->kids[2] = pnVar3->kids[1];
              n->counts[2] = pnVar3->counts[1];
              local_40 = pnVar3->elems[1];
              pnVar3->kids[0] = pnVar3->kids[2];
              pnVar3->counts[0] = pnVar3->counts[2];
              pnVar3->elems[0] = pnVar3->elems[2];
              pnVar3->kids[1] = pnVar3->kids[3];
              pnVar3->counts[1] = pnVar3->counts[3];
            }
            else if (local_58 == pnVar3->kids + 1) {
              n->kids[0] = pnVar3->kids[0];
              n->counts[0] = pnVar3->counts[0];
              n->elems[0] = pnVar3->elems[0];
              n->kids[1] = pnVar7;
              n->counts[1] = local_50;
              n->elems[1] = local_40;
              n->kids[2] = local_48;
              n->counts[2] = local_4c;
              local_40 = pnVar3->elems[1];
              pnVar3->kids[0] = pnVar3->kids[2];
              pnVar3->counts[0] = pnVar3->counts[2];
              pnVar3->elems[0] = pnVar3->elems[2];
              pnVar3->kids[1] = pnVar3->kids[3];
              pnVar3->counts[1] = pnVar3->counts[3];
            }
            else if (local_58 == pnVar3->kids + 2) {
              n->kids[0] = pnVar3->kids[0];
              n->counts[0] = pnVar3->counts[0];
              n->elems[0] = pnVar3->elems[0];
              n->kids[1] = pnVar3->kids[1];
              n->counts[1] = pnVar3->counts[1];
              n->elems[1] = pnVar3->elems[1];
              n->kids[2] = pnVar7;
              n->counts[2] = local_50;
              pnVar3->kids[0] = local_48;
              pnVar3->counts[0] = local_4c;
              pnVar3->elems[0] = pnVar3->elems[2];
              pnVar3->kids[1] = pnVar3->kids[3];
              pnVar3->counts[1] = pnVar3->counts[3];
            }
            else {
              n->kids[0] = pnVar3->kids[0];
              n->counts[0] = pnVar3->counts[0];
              n->elems[0] = pnVar3->elems[0];
              n->kids[1] = pnVar3->kids[1];
              n->counts[1] = pnVar3->counts[1];
              n->elems[1] = pnVar3->elems[1];
              n->kids[2] = pnVar3->kids[2];
              n->counts[2] = pnVar3->counts[2];
              pnVar3->kids[0] = pnVar7;
              pnVar3->counts[0] = local_50;
              pnVar3->elems[0] = local_40;
              pnVar3->kids[1] = local_48;
              pnVar3->counts[1] = local_4c;
              local_40 = pnVar3->elems[2];
            }
            pnVar3->kids[2] = (node234 *)0x0;
            pnVar3->kids[3] = (node234 *)0x0;
            n->kids[3] = (node234 *)0x0;
            pnVar3->counts[2] = 0;
            pnVar3->counts[3] = 0;
            n->counts[3] = 0;
            pnVar3->elems[1] = (void *)0x0;
            pnVar3->elems[2] = (void *)0x0;
            n->elems[2] = (void *)0x0;
            if (n->kids[0] != (node234 *)0x0) {
              n->kids[0]->parent = n;
            }
            if (n->kids[1] != (node234 *)0x0) {
              n->kids[1]->parent = n;
            }
            if (n->kids[2] != (node234 *)0x0) {
              n->kids[2]->parent = n;
            }
            if (pnVar3->kids[0] != (node234 *)0x0) {
              pnVar3->kids[0]->parent = pnVar3;
            }
            if (pnVar3->kids[1] != (node234 *)0x0) {
              pnVar3->kids[1]->parent = pnVar3;
            }
            local_50 = countnode234(n);
            local_4c = countnode234(pnVar3);
            pnVar5 = pnVar3->parent;
            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;
            if (pnVar5->kids[0] == pnVar3) {
              local_58 = pnVar5->kids;
            }
            else if (pnVar5->kids[1] == pnVar3) {
              local_58 = pnVar5->kids + 1;
            }
            else {
              local_58 = pnVar5->kids + 3;
              if (pnVar5->kids[2] == pnVar3) {
                local_58 = pnVar5->kids + 2;
              }
            }
            pvVar4 = pnVar5->elems[1];
            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;
            pnVar7 = n;
            local_48 = pnVar3;
          } while (pnVar5->elems[2] != (void *)0x0);
        }
        if (local_58 == pnVar5->kids) {
          pnVar5->kids[3] = pnVar5->kids[2];
          pnVar5->counts[3] = pnVar5->counts[2];
          pnVar5->elems[2] = pvVar4;
          pnVar5->kids[2] = pnVar5->kids[1];
          pnVar5->counts[2] = pnVar5->counts[1];
          pnVar5->elems[1] = pnVar5->elems[0];
          pnVar5->kids[1] = pnVar3;
          pnVar5->counts[1] = local_4c;
          pnVar5->elems[0] = local_40;
          pnVar5->kids[0] = n;
          pnVar5->counts[0] = local_50;
        }
        else if (local_58 == pnVar5->kids + 1) {
          pnVar5->kids[3] = pnVar5->kids[2];
          pnVar5->counts[3] = pnVar5->counts[2];
          pnVar5->elems[2] = pvVar4;
          pnVar5->kids[2] = pnVar3;
          pnVar5->counts[2] = local_4c;
          pnVar5->elems[1] = local_40;
          pnVar5->kids[1] = n;
          pnVar5->counts[1] = local_50;
        }
        else {
          pnVar5->kids[3] = pnVar3;
          pnVar5->counts[3] = local_4c;
          pnVar5->elems[2] = local_40;
          pnVar5->kids[2] = n;
          pnVar5->counts[2] = local_50;
        }
        if (pnVar5->kids[0] != (node234 *)0x0) {
          pnVar5->kids[0]->parent = pnVar5;
        }
        if (pnVar5->kids[1] != (node234 *)0x0) {
          pnVar5->kids[1]->parent = pnVar5;
        }
        if (pnVar5->kids[2] != (node234 *)0x0) {
          pnVar5->kids[2]->parent = pnVar5;
        }
        if (pnVar5->kids[3] != (node234 *)0x0) {
          pnVar5->kids[3]->parent = pnVar5;
        }
      }
      pnVar3 = pnVar5->parent;
      while (pnVar3 != (node234_conflict *)0x0) {
        iVar2 = countnode234(pnVar5);
        iVar6 = 0;
        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {
          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;
        }
        pnVar3->counts[iVar6] = iVar2;
        pnVar5 = pnVar5->parent;
        pnVar3 = pnVar5->parent;
      }
    }
  }
  return e;
}



long FUN_0014eaaa(long *param_1,long param_2,int param_3)

{
  undefined4 uVar1;
  long *plVar2;
  long lVar3;
  int iVar4;
  long *plVar5;
  long *plVar6;
  long *plVar7;
  long *local_58;
  undefined4 local_50;
  undefined4 local_4c;
  long *local_48;
  long local_40;
  
  if (*param_1 == 0) {
    lVar3 = FUN_0010ea3d(1,0x50);
    *param_1 = lVar3;
    *(undefined8 *)(lVar3 + 0x48) = 0;
    *(undefined8 *)(*param_1 + 0x40) = 0;
    *(undefined8 *)(*param_1 + 0x10) = 0;
    *(undefined8 *)(*param_1 + 8) = 0;
    *(undefined8 *)(*param_1 + 0x20) = 0;
    *(undefined8 *)(*param_1 + 0x18) = 0;
    *(undefined4 *)(*param_1 + 0x2c) = 0;
    *(undefined4 *)(*param_1 + 0x28) = 0;
    *(undefined4 *)(*param_1 + 0x34) = 0;
    *(undefined4 *)(*param_1 + 0x30) = 0;
    *(undefined8 *)*param_1 = 0;
    *(long *)(*param_1 + 0x38) = param_2;
  }
  else {
    plVar5 = (long *)*param_1;
    local_40 = param_2;
    if (plVar5 == (long *)0x0) {
      local_4c = 0;
      local_50 = 0;
      plVar2 = (long *)0x0;
LAB_0014f1d8:
      lVar3 = FUN_0010ea3d(1,0x50);
      *param_1 = lVar3;
      *(long **)(lVar3 + 8) = plVar2;
      *(undefined4 *)(*param_1 + 0x28) = local_50;
      *(long *)(*param_1 + 0x38) = local_40;
      *(long **)(*param_1 + 0x10) = plVar5;
      *(undefined4 *)(*param_1 + 0x2c) = local_4c;
      *(undefined8 *)(*param_1 + 0x40) = 0;
      *(undefined8 *)(*param_1 + 0x18) = 0;
      *(undefined4 *)(*param_1 + 0x30) = 0;
      *(undefined8 *)(*param_1 + 0x48) = 0;
      *(undefined8 *)(*param_1 + 0x20) = 0;
      *(undefined4 *)(*param_1 + 0x34) = 0;
      *(undefined8 *)*param_1 = 0;
      plVar5 = *(long **)(*param_1 + 8);
      if (plVar5 != (long *)0x0) {
        *plVar5 = *param_1;
      }
      plVar5 = *(long **)(*param_1 + 0x10);
      if (plVar5 != (long *)0x0) {
        *plVar5 = *param_1;
      }
    }
    else {
      do {
        plVar7 = plVar5;
        if (param_3 < 0) {
          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);
          if (iVar4 < 0) {
            iVar4 = 0;
          }
          else {
            if (iVar4 == 0) {
              return plVar7[7];
            }
            if (plVar7[8] == 0) {
              iVar4 = 1;
            }
            else {
              iVar4 = (*(code *)param_1[1])(param_2);
              if (iVar4 < 0) {
                iVar4 = 1;
              }
              else {
                if (iVar4 == 0) {
                  return plVar7[8];
                }
                if (plVar7[9] == 0) {
                  iVar4 = 2;
                }
                else {
                  iVar4 = (*(code *)param_1[1])(param_2);
                  if (iVar4 < 0) {
                    iVar4 = 2;
                  }
                  else {
                    if (iVar4 == 0) {
                      return plVar7[9];
                    }
                    iVar4 = 3;
                  }
                }
              }
            }
          }
        }
        else {
          iVar4 = param_3;
          if (plVar7[1] != 0) {
            if ((int)plVar7[5] < param_3) {
              param_3 = param_3 - ((int)plVar7[5] + 1);
              if (*(int *)((long)plVar7 + 0x2c) < param_3) {
                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);
                if ((int)plVar7[6] < param_3) {
                  param_3 = param_3 - ((int)plVar7[6] + 1);
                  if (*(int *)((long)plVar7 + 0x34) < param_3) {
                    return 0;
                  }
                  iVar4 = 3;
                }
                else {
                  iVar4 = 2;
                }
              }
              else {
                iVar4 = 1;
              }
            }
            else {
              iVar4 = 0;
            }
          }
        }
        plVar5 = (long *)plVar7[(long)iVar4 + 1];
      } while (plVar5 != (long *)0x0);
      local_58 = plVar7 + (long)iVar4 + 1;
      lVar3 = plVar7[8];
      if (lVar3 == 0) {
        local_4c = 0;
        local_50 = 0;
        plVar5 = (long *)0x0;
        plVar2 = (long *)0x0;
LAB_0014ecd0:
        if (local_58 == plVar7 + 1) {
          plVar7[3] = plVar7[2];
          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);
          plVar7[8] = plVar7[7];
          plVar7[2] = (long)plVar5;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;
          plVar7[7] = local_40;
          plVar7[1] = (long)plVar2;
          *(undefined4 *)(plVar7 + 5) = local_50;
        }
        else {
          plVar7[3] = (long)plVar5;
          *(undefined4 *)(plVar7 + 6) = local_4c;
          plVar7[8] = local_40;
          plVar7[2] = (long)plVar2;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;
        }
        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[1] = plVar7;
        }
        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[2] = plVar7;
        }
        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[3] = plVar7;
        }
      }
      else {
        if (plVar7[9] == 0) {
          local_4c = 0;
          local_50 = 0;
          plVar5 = (long *)0x0;
          plVar2 = (long *)0x0;
        }
        else {
          local_4c = 0;
          local_50 = 0;
          plVar6 = (long *)0x0;
          local_48 = plVar5;
          do {
            plVar5 = plVar7;
            plVar2 = (long *)FUN_0010ea3d(1,0x50);
            *plVar2 = *plVar5;
            if (local_58 == plVar5 + 1) {
              plVar2[1] = (long)plVar6;
              *(undefined4 *)(plVar2 + 5) = local_50;
              plVar2[7] = local_40;
              plVar2[2] = (long)local_48;
              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;
              plVar2[8] = plVar5[7];
              plVar2[3] = plVar5[2];
              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);
              local_40 = plVar5[8];
              plVar5[1] = plVar5[3];
              *(int *)(plVar5 + 5) = (int)plVar5[6];
              plVar5[7] = plVar5[9];
              plVar5[2] = plVar5[4];
              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);
            }
            else if (local_58 == plVar5 + 2) {
              plVar2[1] = plVar5[1];
              *(int *)(plVar2 + 5) = (int)plVar5[5];
              plVar2[7] = plVar5[7];
              plVar2[2] = (long)plVar6;
              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;
              plVar2[8] = local_40;
              plVar2[3] = (long)local_48;
              *(undefined4 *)(plVar2 + 6) = local_4c;
              local_40 = plVar5[8];
              plVar5[1] = plVar5[3];
              *(int *)(plVar5 + 5) = (int)plVar5[6];
              plVar5[7] = plVar5[9];
              plVar5[2] = plVar5[4];
              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);
            }
            else if (local_58 == plVar5 + 3) {
              plVar2[1] = plVar5[1];
              *(int *)(plVar2 + 5) = (int)plVar5[5];
              plVar2[7] = plVar5[7];
              plVar2[2] = plVar5[2];
              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);
              plVar2[8] = plVar5[8];
              plVar2[3] = (long)plVar6;
              *(undefined4 *)(plVar2 + 6) = local_50;
              plVar5[1] = (long)local_48;
              *(undefined4 *)(plVar5 + 5) = local_4c;
              plVar5[7] = plVar5[9];
              plVar5[2] = plVar5[4];
              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);
            }
            else {
              plVar2[1] = plVar5[1];
              *(int *)(plVar2 + 5) = (int)plVar5[5];
              plVar2[7] = plVar5[7];
              plVar2[2] = plVar5[2];
              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);
              plVar2[8] = plVar5[8];
              plVar2[3] = plVar5[3];
              *(int *)(plVar2 + 6) = (int)plVar5[6];
              plVar5[1] = (long)plVar6;
              *(undefined4 *)(plVar5 + 5) = local_50;
              plVar5[7] = local_40;
              plVar5[2] = (long)local_48;
              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;
              local_40 = plVar5[9];
            }
            plVar5[3] = 0;
            plVar5[4] = 0;
            plVar2[4] = 0;
            *(undefined4 *)(plVar5 + 6) = 0;
            *(undefined4 *)((long)plVar5 + 0x34) = 0;
            *(undefined4 *)((long)plVar2 + 0x34) = 0;
            plVar5[8] = 0;
            plVar5[9] = 0;
            plVar2[9] = 0;
            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {
              *(undefined8 *)plVar2[1] = plVar2;
            }
            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {
              *(undefined8 *)plVar2[2] = plVar2;
            }
            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {
              *(undefined8 *)plVar2[3] = plVar2;
            }
            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {
              *(undefined8 *)plVar5[1] = plVar5;
            }
            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {
              *(undefined8 *)plVar5[2] = plVar5;
            }
            local_50 = FUN_0014ea7a(plVar2);
            local_4c = FUN_0014ea7a(plVar5);
            plVar7 = (long *)*plVar5;
            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;
            if ((long *)plVar7[1] == plVar5) {
              local_58 = plVar7 + 1;
            }
            else if ((long *)plVar7[2] == plVar5) {
              local_58 = plVar7 + 2;
            }
            else {
              local_58 = plVar7 + 4;
              if ((long *)plVar7[3] == plVar5) {
                local_58 = plVar7 + 3;
              }
            }
            lVar3 = plVar7[8];
            if (lVar3 == 0) goto LAB_0014ecd0;
            plVar6 = plVar2;
            local_48 = plVar5;
          } while (plVar7[9] != 0);
        }
        if (local_58 == plVar7 + 1) {
          plVar7[4] = plVar7[3];
          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];
          plVar7[9] = lVar3;
          plVar7[3] = plVar7[2];
          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);
          plVar7[8] = plVar7[7];
          plVar7[2] = (long)plVar5;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;
          plVar7[7] = local_40;
          plVar7[1] = (long)plVar2;
          *(undefined4 *)(plVar7 + 5) = local_50;
        }
        else if (local_58 == plVar7 + 2) {
          plVar7[4] = plVar7[3];
          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];
          plVar7[9] = lVar3;
          plVar7[3] = (long)plVar5;
          *(undefined4 *)(plVar7 + 6) = local_4c;
          plVar7[8] = local_40;
          plVar7[2] = (long)plVar2;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;
        }
        else {
          plVar7[4] = (long)plVar5;
          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;
          plVar7[9] = local_40;
          plVar7[3] = (long)plVar2;
          *(undefined4 *)(plVar7 + 6) = local_50;
        }
        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[1] = plVar7;
        }
        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[2] = plVar7;
        }
        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[3] = plVar7;
        }
        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[4] = plVar7;
        }
      }
      lVar3 = *plVar7;
      while (lVar3 != 0) {
        uVar1 = FUN_0014ea7a(plVar7);
        iVar4 = 0;
        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {
          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;
        }
        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;
        plVar7 = (long *)*plVar7;
        lVar3 = *plVar7;
      }
    }
  }
  return param_2;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV R14,RDI
MOV R15,RSI
CMP qword ptr [RDI],0x0
JZ 0x0014eadd
MOV EBP,EDX
MOV RBX,qword ptr [RDI]
TEST RBX,RBX
JZ 0x0014f1c0
MOV R13D,0x0
JMP 0x0014ec02
MOV ESI,0x50
MOV EDI,0x1
CALL 0x0010ea3d
MOV qword ptr [R14],RAX
MOV qword ptr [RAX + 0x48],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x40],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x10],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x8],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x20],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x18],0x0
MOV RAX,qword ptr [R14]
MOV dword ptr [RAX + 0x2c],0x0
MOV RAX,qword ptr [R14]
MOV dword ptr [RAX + 0x28],0x0
MOV RAX,qword ptr [R14]
MOV dword ptr [RAX + 0x34],0x0
MOV RAX,qword ptr [R14]
MOV dword ptr [RAX + 0x30],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x38],R15
JMP 0x0014ebcd
MOV R15D,0x0
JMP 0x0014ebcd
MOV RSI,qword ptr [RBX + 0x38]
MOV RDI,R15
CALL qword ptr [R14 + 0x8]
TEST EAX,EAX
JS 0x0014ec53
JZ 0x0014ebc9
MOV RSI,qword ptr [RBX + 0x40]
TEST RSI,RSI
JZ 0x0014ec58
MOV RDI,R15
CALL qword ptr [R14 + 0x8]
TEST EAX,EAX
JS 0x0014ec5f
JZ 0x0014ebdf
MOV RSI,qword ptr [RBX + 0x48]
TEST RSI,RSI
JZ 0x0014ec66
MOV RDI,R15
CALL qword ptr [R14 + 0x8]
TEST EAX,EAX
JS 0x0014ec6d
JZ 0x0014ebe5
MOV EAX,0x3
JMP 0x0014ebf2
MOV R15,qword ptr [RBX + 0x38]
MOV RAX,R15
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R15,qword ptr [RBX + 0x40]
JMP 0x0014ebcd
MOV R15,qword ptr [RBX + 0x48]
JMP 0x0014ebcd
MOV EAX,EBP
JMP 0x0014ebf2
MOV EAX,R13D
MOVSXD RDX,EAX
MOV R12,qword ptr [RBX + RDX*0x8 + 0x8]
TEST R12,R12
JZ 0x0014ec77
MOV RBX,R12
TEST EBP,EBP
JS 0x0014eb71
CMP qword ptr [RBX + 0x8],0x0
JZ 0x0014ebeb
MOV EAX,dword ptr [RBX + 0x28]
CMP EAX,EBP
JGE 0x0014ebef
ADD EAX,0x1
SUB EBP,EAX
MOV EAX,dword ptr [RBX + 0x2c]
CMP EAX,EBP
JGE 0x0014ec45
ADD EAX,0x1
SUB EBP,EAX
MOV EAX,dword ptr [RBX + 0x30]
CMP EAX,EBP
JGE 0x0014ec4c
ADD EAX,0x1
SUB EBP,EAX
CMP dword ptr [RBX + 0x34],EBP
JL 0x0014eb69
MOV EAX,0x3
JMP 0x0014ebf2
MOV EAX,0x1
JMP 0x0014ebf2
MOV EAX,0x2
JMP 0x0014ebf2
MOV EAX,R13D
JMP 0x0014ebf2
MOV EAX,0x1
JMP 0x0014ebf2
MOV EAX,0x1
JMP 0x0014ebf2
MOV EAX,0x2
JMP 0x0014ebf2
MOV EAX,0x2
JMP 0x0014ebf2
LEA RAX,[RBX + RDX*0x8 + 0x8]
MOV qword ptr [RSP],RAX
MOV RBP,qword ptr [RBX + 0x40]
TEST RBP,RBP
JZ 0x0014ecb5
MOV RDX,qword ptr [RBX + 0x48]
TEST RDX,RDX
JZ 0x0014ed6c
MOV qword ptr [RSP + 0x10],R12
MOV qword ptr [RSP + 0x18],R15
MOV dword ptr [RSP + 0xc],0x0
MOV dword ptr [RSP + 0x8],0x0
JMP 0x0014eff0
MOV R13,RBX
MOV RBX,RBP
MOV qword ptr [RSP + 0x18],R15
MOV dword ptr [RSP + 0xc],0x0
MOV dword ptr [RSP + 0x8],0x0
LEA RAX,[R13 + 0x8]
CMP qword ptr [RSP],RAX
JZ 0x0014ed31
MOV qword ptr [R13 + 0x18],RBX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [R13 + 0x30],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [R13 + 0x40],RAX
MOV qword ptr [R13 + 0x10],RBP
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [R13 + 0x2c],EAX
MOV RAX,qword ptr [R13 + 0x8]
TEST RAX,RAX
JZ 0x0014ed07
MOV qword ptr [RAX],R13
MOV RAX,qword ptr [R13 + 0x10]
TEST RAX,RAX
JZ 0x0014ed13
MOV qword ptr [RAX],R13
MOV RAX,qword ptr [R13 + 0x18]
TEST RAX,RAX
JZ 0x0014ed1f
MOV qword ptr [RAX],R13
MOV RBX,qword ptr [R13]
TEST RBX,RBX
JNZ 0x0014f193
JMP 0x0014ebcd
MOV RAX,qword ptr [R13 + 0x10]
MOV qword ptr [R13 + 0x18],RAX
MOV EAX,dword ptr [R13 + 0x2c]
MOV dword ptr [R13 + 0x30],EAX
MOV RAX,qword ptr [R13 + 0x38]
MOV qword ptr [R13 + 0x40],RAX
MOV qword ptr [R13 + 0x10],RBX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [R13 + 0x2c],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [R13 + 0x38],RAX
MOV qword ptr [R13 + 0x8],RBP
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [R13 + 0x28],EAX
JMP 0x0014ecfb
MOV R13,RBX
MOV RBX,RDX
MOV qword ptr [RSP + 0x18],R15
MOV RAX,RBP
MOV RBP,RDX
MOV dword ptr [RSP + 0xc],0x0
MOV dword ptr [RSP + 0x8],0x0
LEA RDX,[R13 + 0x8]
CMP qword ptr [RSP],RDX
JZ 0x0014edff
LEA RDX,[R13 + 0x10]
CMP qword ptr [RSP],RDX
JZ 0x0014ee51
MOV qword ptr [R13 + 0x20],RBX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [R13 + 0x34],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [R13 + 0x48],RAX
MOV qword ptr [R13 + 0x18],RBP
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [R13 + 0x30],EAX
MOV RAX,qword ptr [R13 + 0x8]
TEST RAX,RAX
JZ 0x0014edd2
MOV qword ptr [RAX],R13
MOV RAX,qword ptr [R13 + 0x10]
TEST RAX,RAX
JZ 0x0014edde
MOV qword ptr [RAX],R13
MOV RAX,qword ptr [R13 + 0x18]
TEST RAX,RAX
JZ 0x0014edea
MOV qword ptr [RAX],R13
MOV RAX,qword ptr [R13 + 0x20]
TEST RAX,RAX
JZ 0x0014ed1f
MOV qword ptr [RAX],R13
JMP 0x0014ed1f
MOV RDX,qword ptr [R13 + 0x18]
MOV qword ptr [R13 + 0x20],RDX
MOV EDX,dword ptr [R13 + 0x30]
MOV dword ptr [R13 + 0x34],EDX
MOV qword ptr [R13 + 0x48],RAX
MOV RAX,qword ptr [R13 + 0x10]
MOV qword ptr [R13 + 0x18],RAX
MOV EAX,dword ptr [R13 + 0x2c]
MOV dword ptr [R13 + 0x30],EAX
MOV RAX,qword ptr [R13 + 0x38]
MOV qword ptr [R13 + 0x40],RAX
MOV qword ptr [R13 + 0x10],RBX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [R13 + 0x2c],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [R13 + 0x38],RAX
MOV qword ptr [R13 + 0x8],RBP
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [R13 + 0x28],EAX
JMP 0x0014edc6
MOV RDX,qword ptr [R13 + 0x18]
MOV qword ptr [R13 + 0x20],RDX
MOV EDX,dword ptr [R13 + 0x30]
MOV dword ptr [R13 + 0x34],EDX
MOV qword ptr [R13 + 0x48],RAX
MOV qword ptr [R13 + 0x18],RBX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [R13 + 0x30],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [R13 + 0x40],RAX
MOV qword ptr [R13 + 0x10],RBP
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [R13 + 0x2c],EAX
JMP 0x0014edc6
MOV qword ptr [RBP + 0x8],R12
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [RBP + 0x28],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [RBP + 0x38],RAX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBP + 0x10],RAX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [RBP + 0x2c],EAX
MOV RAX,qword ptr [RBX + 0x38]
MOV qword ptr [RBP + 0x40],RAX
MOV RAX,qword ptr [RBX + 0x10]
MOV qword ptr [RBP + 0x18],RAX
MOV EAX,dword ptr [RBX + 0x2c]
MOV dword ptr [RBP + 0x30],EAX
MOV RAX,qword ptr [RBX + 0x40]
MOV qword ptr [RSP + 0x18],RAX
MOV RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RBX + 0x8],RAX
MOV EAX,dword ptr [RBX + 0x30]
MOV dword ptr [RBX + 0x28],EAX
MOV RAX,qword ptr [RBX + 0x48]
MOV qword ptr [RBX + 0x38],RAX
MOV RAX,qword ptr [RBX + 0x20]
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,dword ptr [RBX + 0x34]
MOV dword ptr [RBX + 0x2c],EAX
JMP 0x0014f09a
MOV RAX,qword ptr [RBX + 0x8]
MOV qword ptr [RBP + 0x8],RAX
MOV EAX,dword ptr [RBX + 0x28]
MOV dword ptr [RBP + 0x28],EAX
MOV RAX,qword ptr [RBX + 0x38]
MOV qword ptr [RBP + 0x38],RAX
MOV qword ptr [RBP + 0x10],R12
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [RBP + 0x2c],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [RBP + 0x40],RAX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBP + 0x18],RAX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [RBP + 0x30],EAX
MOV RAX,qword ptr [RBX + 0x40]
MOV qword ptr [RSP + 0x18],RAX
MOV RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RBX + 0x8],RAX
MOV EAX,dword ptr [RBX + 0x30]
MOV dword ptr [RBX + 0x28],EAX
MOV RAX,qword ptr [RBX + 0x48]
MOV qword ptr [RBX + 0x38],RAX
MOV RAX,qword ptr [RBX + 0x20]
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,dword ptr [RBX + 0x34]
MOV dword ptr [RBX + 0x2c],EAX
JMP 0x0014f09a
MOV RAX,qword ptr [RBX + 0x8]
MOV qword ptr [RBP + 0x8],RAX
MOV EAX,dword ptr [RBX + 0x28]
MOV dword ptr [RBP + 0x28],EAX
MOV RAX,qword ptr [RBX + 0x38]
MOV qword ptr [RBP + 0x38],RAX
MOV RAX,qword ptr [RBX + 0x10]
MOV qword ptr [RBP + 0x10],RAX
MOV EAX,dword ptr [RBX + 0x2c]
MOV dword ptr [RBP + 0x2c],EAX
MOV RAX,qword ptr [RBX + 0x40]
MOV qword ptr [RBP + 0x40],RAX
MOV qword ptr [RBP + 0x18],R12
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [RBP + 0x30],EAX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBX + 0x8],RAX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [RBX + 0x28],EAX
MOV RAX,qword ptr [RBX + 0x48]
MOV qword ptr [RBX + 0x38],RAX
MOV RAX,qword ptr [RBX + 0x20]
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,dword ptr [RBX + 0x34]
MOV dword ptr [RBX + 0x2c],EAX
JMP 0x0014f09a
LEA RAX,[R13 + 0x8]
MOV qword ptr [RSP],RAX
MOV RAX,qword ptr [R13 + 0x40]
TEST RAX,RAX
JZ 0x0014ecd0
MOV R12,RBP
MOV qword ptr [RSP + 0x10],RBX
CMP qword ptr [R13 + 0x48],0x0
JZ 0x0014ed8d
MOV RBX,R13
MOV ESI,0x50
MOV EDI,0x1
CALL 0x0010ea3d
MOV RBP,RAX
MOV RAX,qword ptr [RBX]
MOV qword ptr [RBP],RAX
LEA RAX,[RBX + 0x8]
CMP qword ptr [RSP],RAX
JZ 0x0014ee8b
LEA RAX,[RBX + 0x10]
CMP qword ptr [RSP],RAX
JZ 0x0014eef7
LEA RAX,[RBX + 0x18]
CMP qword ptr [RSP],RAX
JZ 0x0014ef63
MOV RAX,qword ptr [RBX + 0x8]
MOV qword ptr [RBP + 0x8],RAX
MOV EAX,dword ptr [RBX + 0x28]
MOV dword ptr [RBP + 0x28],EAX
MOV RAX,qword ptr [RBX + 0x38]
MOV qword ptr [RBP + 0x38],RAX
MOV RAX,qword ptr [RBX + 0x10]
MOV qword ptr [RBP + 0x10],RAX
MOV EAX,dword ptr [RBX + 0x2c]
MOV dword ptr [RBP + 0x2c],EAX
MOV RAX,qword ptr [RBX + 0x40]
MOV qword ptr [RBP + 0x40],RAX
MOV RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RBP + 0x18],RAX
MOV EAX,dword ptr [RBX + 0x30]
MOV dword ptr [RBP + 0x30],EAX
MOV qword ptr [RBX + 0x8],R12
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [RBX + 0x28],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [RBX + 0x38],RAX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [RBX + 0x2c],EAX
MOV RAX,qword ptr [RBX + 0x48]
MOV qword ptr [RSP + 0x18],RAX
MOV qword ptr [RBX + 0x18],0x0
MOV qword ptr [RBX + 0x20],0x0
MOV qword ptr [RBP + 0x20],0x0
MOV dword ptr [RBX + 0x30],0x0
MOV dword ptr [RBX + 0x34],0x0
MOV dword ptr [RBP + 0x34],0x0
MOV qword ptr [RBX + 0x40],0x0
MOV qword ptr [RBX + 0x48],0x0
MOV qword ptr [RBP + 0x48],0x0
MOV RAX,qword ptr [RBP + 0x8]
TEST RAX,RAX
JZ 0x0014f0eb
MOV qword ptr [RAX],RBP
MOV RAX,qword ptr [RBP + 0x10]
TEST RAX,RAX
JZ 0x0014f0f7
MOV qword ptr [RAX],RBP
MOV RAX,qword ptr [RBP + 0x18]
TEST RAX,RAX
JZ 0x0014f103
MOV qword ptr [RAX],RBP
MOV RAX,qword ptr [RBX + 0x8]
TEST RAX,RAX
JZ 0x0014f10f
MOV qword ptr [RAX],RBX
MOV RAX,qword ptr [RBX + 0x10]
TEST RAX,RAX
JZ 0x0014f11b
MOV qword ptr [RAX],RBX
MOV RDI,RBP
CALL 0x0014ea7a
MOV dword ptr [RSP + 0x8],EAX
MOV RDI,RBX
CALL 0x0014ea7a
MOV dword ptr [RSP + 0xc],EAX
MOV R13,qword ptr [RBX]
TEST R13,R13
JZ 0x0014f1d8
CMP qword ptr [R13 + 0x8],RBX
JZ 0x0014efc5
CMP qword ptr [R13 + 0x10],RBX
JZ 0x0014f16e
LEA RAX,[R13 + 0x20]
MOV qword ptr [RSP],RAX
CMP qword ptr [R13 + 0x18],RBX
JNZ 0x0014efcd
LEA RAX,[R13 + 0x18]
MOV qword ptr [RSP],RAX
JMP 0x0014efcd
LEA RAX,[R13 + 0x10]
MOV qword ptr [RSP],RAX
JMP 0x0014efcd
MOVSXD RDX,EDX
MOV dword ptr [RBX + RDX*0x4 + 0x28],EAX
MOV R13,qword ptr [R13]
MOV RBX,qword ptr [R13]
TEST RBX,RBX
JZ 0x0014ebcd
MOV RDI,R13
CALL 0x0014ea7a
MOV EDX,0x0
CMP qword ptr [RBX + 0x8],R13
JZ 0x0014f17b
MOV EDX,0x1
CMP qword ptr [RBX + 0x10],R13
JZ 0x0014f17b
CMP qword ptr [RBX + 0x18],R13
SETNZ DL
MOVZX EDX,DL
ADD EDX,0x2
JMP 0x0014f17b
MOV RBP,RBX
MOV qword ptr [RSP + 0x18],RSI
MOV dword ptr [RSP + 0xc],0x0
MOV dword ptr [RSP + 0x8],0x0
MOV ESI,0x50
MOV EDI,0x1
CALL 0x0010ea3d
MOV qword ptr [R14],RAX
MOV qword ptr [RAX + 0x8],RBP
MOV RAX,qword ptr [R14]
MOV ECX,dword ptr [RSP + 0x8]
MOV dword ptr [RAX + 0x28],ECX
MOV RAX,qword ptr [R14]
MOV RCX,qword ptr [RSP + 0x18]
MOV qword ptr [RAX + 0x38],RCX
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x10],RBX
MOV RAX,qword ptr [R14]
MOV ECX,dword ptr [RSP + 0xc]
MOV dword ptr [RAX + 0x2c],ECX
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x40],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x18],0x0
MOV RAX,qword ptr [R14]
MOV dword ptr [RAX + 0x30],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x48],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX + 0x20],0x0
MOV RAX,qword ptr [R14]
MOV dword ptr [RAX + 0x34],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [RAX],0x0
MOV RDX,qword ptr [R14]
MOV RAX,qword ptr [RDX + 0x8]
TEST RAX,RAX
JZ 0x0014f26e
MOV qword ptr [RAX],RDX
MOV RDX,qword ptr [R14]
MOV RAX,qword ptr [RDX + 0x10]
TEST RAX,RAX
JZ 0x0014ebcd
MOV qword ptr [RAX],RDX
JMP 0x0014ebcd
(translation_unit "long FUN_0014eaaa(long *param_1,long param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}\n\n" (function_definition "long FUN_0014eaaa(long *param_1,long param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0014eaaa(long *param_1,long param_2,int param_3)" identifier (parameter_list "(long *param_1,long param_2,int param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "long *local_48;" (sized_type_specifier "long" long) (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }" { (expression_statement "lVar3 = FUN_0010ea3d(1,0x50);" (assignment_expression "lVar3 = FUN_0010ea3d(1,0x50)" identifier = (call_expression "FUN_0010ea3d(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal )))) ;) (expression_statement "*param_1 = lVar3;" (assignment_expression "*param_1 = lVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x48) = 0;" (assignment_expression "*(undefined8 *)(lVar3 + 0x48) = 0" (pointer_expression "*(undefined8 *)(lVar3 + 0x48)" * (cast_expression "(undefined8 *)(lVar3 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x48)" ( (binary_expression "lVar3 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x40) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x40) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x40)" * (cast_expression "(undefined8 *)(*param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x40)" ( (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x10) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x10) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x10)" * (cast_expression "(undefined8 *)(*param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 8) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 8) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 8)" * (cast_expression "(undefined8 *)(*param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x20) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x20) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x20)" * (cast_expression "(undefined8 *)(*param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x18)" * (cast_expression "(undefined8 *)(*param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x2c)" * (cast_expression "(undefined4 *)(*param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x2c)" ( (binary_expression "*param_1 + 0x2c" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x28)" * (cast_expression "(undefined4 *)(*param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x28)" ( (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x34)" * (cast_expression "(undefined4 *)(*param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x34)" ( (binary_expression "*param_1 + 0x34" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x30)" * (cast_expression "(undefined4 *)(*param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)*param_1 = 0;" (assignment_expression "*(undefined8 *)*param_1 = 0" (pointer_expression "*(undefined8 *)*param_1" * (cast_expression "(undefined8 *)*param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) = number_literal) ;) (expression_statement "*(long *)(*param_1 + 0x38) = param_2;" (assignment_expression "*(long *)(*param_1 + 0x38) = param_2" (pointer_expression "*(long *)(*param_1 + 0x38)" * (cast_expression "(long *)(*param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x38)" ( (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" else (compound_statement "{\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" { (expression_statement "plVar5 = (long *)*param_1;" (assignment_expression "plVar5 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (if_statement "if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" if (parenthesized_expression "(plVar5 == (long *)0x0)" ( (binary_expression "plVar5 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);" statement_identifier : (expression_statement "lVar3 = FUN_0010ea3d(1,0x50);" (assignment_expression "lVar3 = FUN_0010ea3d(1,0x50)" identifier = (call_expression "FUN_0010ea3d(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal )))) ;)) (expression_statement "*param_1 = lVar3;" (assignment_expression "*param_1 = lVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(long **)(lVar3 + 8) = plVar2;" (assignment_expression "*(long **)(lVar3 + 8) = plVar2" (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x28) = local_50;" (assignment_expression "*(undefined4 *)(*param_1 + 0x28) = local_50" (pointer_expression "*(undefined4 *)(*param_1 + 0x28)" * (cast_expression "(undefined4 *)(*param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x28)" ( (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(*param_1 + 0x38) = local_40;" (assignment_expression "*(long *)(*param_1 + 0x38) = local_40" (pointer_expression "*(long *)(*param_1 + 0x38)" * (cast_expression "(long *)(*param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x38)" ( (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(long **)(*param_1 + 0x10) = plVar5;" (assignment_expression "*(long **)(*param_1 + 0x10) = plVar5" (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)(*param_1 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)(*param_1 + 0x2c)" * (cast_expression "(undefined4 *)(*param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x2c)" ( (binary_expression "*param_1 + 0x2c" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x40) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x40) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x40)" * (cast_expression "(undefined8 *)(*param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x40)" ( (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x18)" * (cast_expression "(undefined8 *)(*param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x30)" * (cast_expression "(undefined4 *)(*param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x48) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x48) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x48)" * (cast_expression "(undefined8 *)(*param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x48)" ( (binary_expression "*param_1 + 0x48" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x20) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x20) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x20)" * (cast_expression "(undefined8 *)(*param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x34)" * (cast_expression "(undefined4 *)(*param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x34)" ( (binary_expression "*param_1 + 0x34" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)*param_1 = 0;" (assignment_expression "*(undefined8 *)*param_1 = 0" (pointer_expression "*(undefined8 *)*param_1" * (cast_expression "(undefined8 *)*param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) = number_literal) ;) (expression_statement "plVar5 = *(long **)(*param_1 + 8);" (assignment_expression "plVar5 = *(long **)(*param_1 + 8)" identifier = (pointer_expression "*(long **)(*param_1 + 8)" * (cast_expression "(long **)(*param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }" if (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *plVar5 = *param_1;\n      }" { (expression_statement "*plVar5 = *param_1;" (assignment_expression "*plVar5 = *param_1" (pointer_expression "*plVar5" * identifier) = (pointer_expression "*param_1" * identifier)) ;) })) (expression_statement "plVar5 = *(long **)(*param_1 + 0x10);" (assignment_expression "plVar5 = *(long **)(*param_1 + 0x10)" identifier = (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }" if (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *plVar5 = *param_1;\n      }" { (expression_statement "*plVar5 = *param_1;" (assignment_expression "*plVar5 = *param_1" (pointer_expression "*plVar5" * identifier) = (pointer_expression "*param_1" * identifier)) ;) })) }) (else_clause "else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" else (compound_statement "{\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" { (do_statement "do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);" do (compound_statement "{\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      }" { (expression_statement "plVar7 = plVar5;" (assignment_expression "plVar7 = plVar5" identifier = identifier) ;) (if_statement "if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2,plVar7[7])" identifier = (call_expression "(*(code *)param_1[1])(param_2,plVar7[7])" (parenthesized_expression "(*(code *)param_1[1])" ( (pointer_expression "*(code *)param_1[1]" * (cast_expression "(code *)param_1[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (argument_list "(param_2,plVar7[7])" ( identifier , (subscript_expression "plVar7[7]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 0;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" { (if_statement "if (iVar4 == 0) {\n              return plVar7[7];\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              return plVar7[7];\n            }" { (return_statement "return plVar7[7];" return (subscript_expression "plVar7[7]" identifier [ number_literal ]) ;) })) (if_statement "if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(plVar7[8] == 0)" ( (binary_expression "plVar7[8] == 0" (subscript_expression "plVar7[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              iVar4 = 1;\n            }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" { (expression_statement "iVar4 = (*(code *)param_1[1])(param_2);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2)" identifier = (call_expression "(*(code *)param_1[1])(param_2)" (parenthesized_expression "(*(code *)param_1[1])" ( (pointer_expression "*(code *)param_1[1]" * (cast_expression "(code *)param_1[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar4 = 1;\n              }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" else (compound_statement "{\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" { (if_statement "if (iVar4 == 0) {\n                  return plVar7[8];\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  return plVar7[8];\n                }" { (return_statement "return plVar7[8];" return (subscript_expression "plVar7[8]" identifier [ number_literal ]) ;) })) (if_statement "if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" if (parenthesized_expression "(plVar7[9] == 0)" ( (binary_expression "plVar7[9] == 0" (subscript_expression "plVar7[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  iVar4 = 2;\n                }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" else (compound_statement "{\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" { (expression_statement "iVar4 = (*(code *)param_1[1])(param_2);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2)" identifier = (call_expression "(*(code *)param_1[1])(param_2)" (parenthesized_expression "(*(code *)param_1[1])" ( (pointer_expression "*(code *)param_1[1]" * (cast_expression "(code *)param_1[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                    iVar4 = 2;\n                  }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" else (compound_statement "{\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" { (if_statement "if (iVar4 == 0) {\n                      return plVar7[9];\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      return plVar7[9];\n                    }" { (return_statement "return plVar7[9];" return (subscript_expression "plVar7[9]" identifier [ number_literal ]) ;) })) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) }))) }))) }))) }))) }))) }) (else_clause "else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" { (expression_statement "iVar4 = param_3;" (assignment_expression "iVar4 = param_3" identifier = identifier) ;) (if_statement "if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }" if (parenthesized_expression "(plVar7[1] != 0)" ( (binary_expression "plVar7[1] != 0" (subscript_expression "plVar7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }" { (if_statement "if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }" if (parenthesized_expression "((int)plVar7[5] < param_3)" ( (binary_expression "(int)plVar7[5] < param_3" (cast_expression "(int)plVar7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[5]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }" { (expression_statement "param_3 = param_3 - ((int)plVar7[5] + 1);" (assignment_expression "param_3 = param_3 - ((int)plVar7[5] + 1)" identifier = (binary_expression "param_3 - ((int)plVar7[5] + 1)" identifier - (parenthesized_expression "((int)plVar7[5] + 1)" ( (binary_expression "(int)plVar7[5] + 1" (cast_expression "(int)plVar7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[5]" identifier [ number_literal ])) + number_literal) )))) ;) (if_statement "if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }" if (parenthesized_expression "(*(int *)((long)plVar7 + 0x2c) < param_3)" ( (binary_expression "*(int *)((long)plVar7 + 0x2c) < param_3" (pointer_expression "*(int *)((long)plVar7 + 0x2c)" * (cast_expression "(int *)((long)plVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < identifier) )) (compound_statement "{\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }" { (expression_statement "param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);" (assignment_expression "param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1)" identifier = (binary_expression "param_3 - (*(int *)((long)plVar7 + 0x2c) + 1)" identifier - (parenthesized_expression "(*(int *)((long)plVar7 + 0x2c) + 1)" ( (binary_expression "*(int *)((long)plVar7 + 0x2c) + 1" (pointer_expression "*(int *)((long)plVar7 + 0x2c)" * (cast_expression "(int *)((long)plVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }" if (parenthesized_expression "((int)plVar7[6] < param_3)" ( (binary_expression "(int)plVar7[6] < param_3" (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }" { (expression_statement "param_3 = param_3 - ((int)plVar7[6] + 1);" (assignment_expression "param_3 = param_3 - ((int)plVar7[6] + 1)" identifier = (binary_expression "param_3 - ((int)plVar7[6] + 1)" identifier - (parenthesized_expression "((int)plVar7[6] + 1)" ( (binary_expression "(int)plVar7[6] + 1" (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ])) + number_literal) )))) ;) (if_statement "if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }" if (parenthesized_expression "(*(int *)((long)plVar7 + 0x34) < param_3)" ( (binary_expression "*(int *)((long)plVar7 + 0x34) < param_3" (pointer_expression "*(int *)((long)plVar7 + 0x34)" * (cast_expression "(int *)((long)plVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < identifier) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar4 = 2;\n                }" else (compound_statement "{\n                  iVar4 = 2;\n                }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n                iVar4 = 1;\n              }" else (compound_statement "{\n                iVar4 = 1;\n              }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n              iVar4 = 0;\n            }" else (compound_statement "{\n              iVar4 = 0;\n            }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }))) })) }))) (expression_statement "plVar5 = (long *)plVar7[(long)iVar4 + 1];" (assignment_expression "plVar5 = (long *)plVar7[(long)iVar4 + 1]" identifier = (cast_expression "(long *)plVar7[(long)iVar4 + 1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[(long)iVar4 + 1]" identifier [ (binary_expression "(long)iVar4 + 1" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]))) ;) }) while (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_58 = plVar7 + (long)iVar4 + 1;" (assignment_expression "local_58 = plVar7 + (long)iVar4 + 1" identifier = (binary_expression "plVar7 + (long)iVar4 + 1" (binary_expression "plVar7 + (long)iVar4" identifier + (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + number_literal)) ;) (expression_statement "lVar3 = plVar7[8];" (assignment_expression "lVar3 = plVar7[8]" identifier = (subscript_expression "plVar7[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar5 = (long *)0x0;" (assignment_expression "plVar5 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" statement_identifier : (if_statement "if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" if (parenthesized_expression "(local_58 == plVar7 + 1)" ( (binary_expression "local_58 == plVar7 + 1" identifier == (binary_expression "plVar7 + 1" identifier + number_literal)) )) (compound_statement "{\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }" { (expression_statement "plVar7[3] = plVar7[2];" (assignment_expression "plVar7[3] = plVar7[2]" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (subscript_expression "plVar7[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar7[8] = plVar7[7];" (assignment_expression "plVar7[8] = plVar7[7]" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = (subscript_expression "plVar7[7]" identifier [ number_literal ])) ;) (expression_statement "plVar7[2] = (long)plVar5;" (assignment_expression "plVar7[2] = (long)plVar5" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar7[7] = local_40;" (assignment_expression "plVar7[7] = local_40" (subscript_expression "plVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[1] = (long)plVar2;" (assignment_expression "plVar7[1] = (long)plVar2" (subscript_expression "plVar7[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 5)" * (cast_expression "(undefined4 *)(plVar7 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 5)" ( (binary_expression "plVar7 + 5" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" else (compound_statement "{\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" { (expression_statement "plVar7[3] = (long)plVar5;" (assignment_expression "plVar7[3] = (long)plVar5" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar7[8] = local_40;" (assignment_expression "plVar7[8] = local_40" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[2] = (long)plVar2;" (assignment_expression "plVar7[2] = (long)plVar2" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) })))) (if_statement "if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[1] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[1] = plVar7" (pointer_expression "*(undefined8 *)plVar7[1]" * (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[2] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[2] = plVar7" (pointer_expression "*(undefined8 *)plVar7[2]" * (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[3] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[3] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[3] = plVar7" (pointer_expression "*(undefined8 *)plVar7[3]" * (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ]))) = identifier) ;) })) }) (else_clause "else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" else (compound_statement "{\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" { (if_statement "if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" if (parenthesized_expression "(plVar7[9] == 0)" ( (binary_expression "plVar7[9] == 0" (subscript_expression "plVar7[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar5 = (long *)0x0;" (assignment_expression "plVar5 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" else (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar6 = (long *)0x0;" (assignment_expression "plVar6 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = plVar5;" (assignment_expression "local_48 = plVar5" identifier = identifier) ;) (do_statement "do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);" do (compound_statement "{\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          }" { (expression_statement "plVar5 = plVar7;" (assignment_expression "plVar5 = plVar7" identifier = identifier) ;) (expression_statement "plVar2 = (long *)FUN_0010ea3d(1,0x50);" (assignment_expression "plVar2 = (long *)FUN_0010ea3d(1,0x50)" identifier = (cast_expression "(long *)FUN_0010ea3d(1,0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010ea3d(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal ))))) ;) (expression_statement "*plVar2 = *plVar5;" (assignment_expression "*plVar2 = *plVar5" (pointer_expression "*plVar2" * identifier) = (pointer_expression "*plVar5" * identifier)) ;) (if_statement "if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" if (parenthesized_expression "(local_58 == plVar5 + 1)" ( (binary_expression "local_58 == plVar5 + 1" identifier == (binary_expression "plVar5 + 1" identifier + number_literal)) )) (compound_statement "{\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" { (expression_statement "plVar2[1] = (long)plVar6;" (assignment_expression "plVar2[1] = (long)plVar6" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar2 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar2 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar2 + 5)" * (cast_expression "(undefined4 *)(plVar2 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar2[7] = local_40;" (assignment_expression "plVar2[7] = local_40" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar2[2] = (long)local_48;" (assignment_expression "plVar2[2] = (long)local_48" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar2[8] = plVar5[7];" (assignment_expression "plVar2[8] = plVar5[7]" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[3] = plVar5[2];" (assignment_expression "plVar2[3] = plVar5[2]" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (subscript_expression "plVar5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar2 + 6)" * (cast_expression "(undefined4 *)(plVar2 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "local_40 = plVar5[8];" (assignment_expression "local_40 = plVar5[8]" identifier = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar5[1] = plVar5[3];" (assignment_expression "plVar5[1] = plVar5[3]" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar5 + 5) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar5 + 5) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar5 + 5)" * (cast_expression "(int *)(plVar5 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" else (if_statement "if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" if (parenthesized_expression "(local_58 == plVar5 + 2)" ( (binary_expression "local_58 == plVar5 + 2" identifier == (binary_expression "plVar5 + 2" identifier + number_literal)) )) (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" { (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" * (cast_expression "(int *)(plVar2 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[2] = (long)plVar6;" (assignment_expression "plVar2[2] = (long)plVar6" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar2[8] = local_40;" (assignment_expression "plVar2[8] = local_40" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar2[3] = (long)local_48;" (assignment_expression "plVar2[3] = (long)local_48" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar2 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar2 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar2 + 6)" * (cast_expression "(undefined4 *)(plVar2 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_40 = plVar5[8];" (assignment_expression "local_40 = plVar5[8]" identifier = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar5[1] = plVar5[3];" (assignment_expression "plVar5[1] = plVar5[3]" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar5 + 5) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar5 + 5) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar5 + 5)" * (cast_expression "(int *)(plVar5 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" else (if_statement "if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" if (parenthesized_expression "(local_58 == plVar5 + 3)" ( (binary_expression "local_58 == plVar5 + 3" identifier == (binary_expression "plVar5 + 3" identifier + number_literal)) )) (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" { (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" * (cast_expression "(int *)(plVar2 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[2] = plVar5[2];" (assignment_expression "plVar2[2] = plVar5[2]" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar2[8] = plVar5[8];" (assignment_expression "plVar2[8] = plVar5[8]" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar2[3] = (long)plVar6;" (assignment_expression "plVar2[3] = (long)plVar6" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar2 + 6) = local_50;" (assignment_expression "*(undefined4 *)(plVar2 + 6) = local_50" (pointer_expression "*(undefined4 *)(plVar2 + 6)" * (cast_expression "(undefined4 *)(plVar2 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar5[1] = (long)local_48;" (assignment_expression "plVar5[1] = (long)local_48" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar5 + 5) = local_4c;" (assignment_expression "*(undefined4 *)(plVar5 + 5) = local_4c" (pointer_expression "*(undefined4 *)(plVar5 + 5)" * (cast_expression "(undefined4 *)(plVar5 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" else (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" { (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" * (cast_expression "(int *)(plVar2 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[2] = plVar5[2];" (assignment_expression "plVar2[2] = plVar5[2]" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar2[8] = plVar5[8];" (assignment_expression "plVar2[8] = plVar5[8]" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar2[3] = plVar5[3];" (assignment_expression "plVar2[3] = plVar5[3]" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (subscript_expression "plVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 6) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar2 + 6) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar2 + 6)" * (cast_expression "(int *)(plVar2 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = (cast_expression "(int)plVar5[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar5[1] = (long)plVar6;" (assignment_expression "plVar5[1] = (long)plVar6" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar5 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar5 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar5 + 5)" * (cast_expression "(undefined4 *)(plVar5 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar5[7] = local_40;" (assignment_expression "plVar5[7] = local_40" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar5[2] = (long)local_48;" (assignment_expression "plVar5[2] = (long)local_48" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_40 = plVar5[9];" (assignment_expression "local_40 = plVar5[9]" identifier = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) }))))))) (expression_statement "plVar5[3] = 0;" (assignment_expression "plVar5[3] = 0" (subscript_expression "plVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar5[4] = 0;" (assignment_expression "plVar5[4] = 0" (subscript_expression "plVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar2[4] = 0;" (assignment_expression "plVar2[4] = 0" (subscript_expression "plVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(plVar5 + 6) = 0;" (assignment_expression "*(undefined4 *)(plVar5 + 6) = 0" (pointer_expression "*(undefined4 *)(plVar5 + 6)" * (cast_expression "(undefined4 *)(plVar5 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 6)" ( (binary_expression "plVar5 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x34) = 0" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x34) = 0" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x34)" ( (binary_expression "(long)plVar2 + 0x34" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "plVar5[8] = 0;" (assignment_expression "plVar5[8] = 0" (subscript_expression "plVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar5[9] = 0;" (assignment_expression "plVar5[9] = 0" (subscript_expression "plVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar2[9] = 0;" (assignment_expression "plVar2[9] = 0" (subscript_expression "plVar2[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }" if (parenthesized_expression "((undefined8 *)plVar2[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar2[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar2[1] = plVar2;\n            }" { (expression_statement "*(undefined8 *)plVar2[1] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[1] = plVar2" (pointer_expression "*(undefined8 *)plVar2[1]" * (cast_expression "(undefined8 *)plVar2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }" if (parenthesized_expression "((undefined8 *)plVar2[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar2[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar2[2] = plVar2;\n            }" { (expression_statement "*(undefined8 *)plVar2[2] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[2] = plVar2" (pointer_expression "*(undefined8 *)plVar2[2]" * (cast_expression "(undefined8 *)plVar2[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }" if (parenthesized_expression "((undefined8 *)plVar2[3] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar2[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar2[3] = plVar2;\n            }" { (expression_statement "*(undefined8 *)plVar2[3] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[3] = plVar2" (pointer_expression "*(undefined8 *)plVar2[3]" * (cast_expression "(undefined8 *)plVar2[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }" if (parenthesized_expression "((undefined8 *)plVar5[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar5[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar5[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar5[1] = plVar5;\n            }" { (expression_statement "*(undefined8 *)plVar5[1] = plVar5;" (assignment_expression "*(undefined8 *)plVar5[1] = plVar5" (pointer_expression "*(undefined8 *)plVar5[1]" * (cast_expression "(undefined8 *)plVar5[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }" if (parenthesized_expression "((undefined8 *)plVar5[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar5[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar5[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar5[2] = plVar5;\n            }" { (expression_statement "*(undefined8 *)plVar5[2] = plVar5;" (assignment_expression "*(undefined8 *)plVar5[2] = plVar5" (pointer_expression "*(undefined8 *)plVar5[2]" * (cast_expression "(undefined8 *)plVar5[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[2]" identifier [ number_literal ]))) = identifier) ;) })) (expression_statement "local_50 = FUN_0014ea7a(plVar2);" (assignment_expression "local_50 = FUN_0014ea7a(plVar2)" identifier = (call_expression "FUN_0014ea7a(plVar2)" identifier (argument_list "(plVar2)" ( identifier )))) ;) (expression_statement "local_4c = FUN_0014ea7a(plVar5);" (assignment_expression "local_4c = FUN_0014ea7a(plVar5)" identifier = (call_expression "FUN_0014ea7a(plVar5)" identifier (argument_list "(plVar5)" ( identifier )))) ;) (expression_statement "plVar7 = (long *)*plVar5;" (assignment_expression "plVar7 = (long *)*plVar5" identifier = (cast_expression "(long *)*plVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar5" * identifier))) ;) (if_statement "if (plVar7 == (long *)0x0) goto LAB_0014f1d8;" if (parenthesized_expression "(plVar7 == (long *)0x0)" ( (binary_expression "plVar7 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0014f1d8;" goto statement_identifier ;)) (if_statement "if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" if (parenthesized_expression "((long *)plVar7[1] == plVar5)" ( (binary_expression "(long *)plVar7[1] == plVar5" (cast_expression "(long *)plVar7[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              local_58 = plVar7 + 1;\n            }" { (expression_statement "local_58 = plVar7 + 1;" (assignment_expression "local_58 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ;) }) (else_clause "else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" else (if_statement "if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" if (parenthesized_expression "((long *)plVar7[2] == plVar5)" ( (binary_expression "(long *)plVar7[2] == plVar5" (cast_expression "(long *)plVar7[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              local_58 = plVar7 + 2;\n            }" { (expression_statement "local_58 = plVar7 + 2;" (assignment_expression "local_58 = plVar7 + 2" identifier = (binary_expression "plVar7 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" else (compound_statement "{\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" { (expression_statement "local_58 = plVar7 + 4;" (assignment_expression "local_58 = plVar7 + 4" identifier = (binary_expression "plVar7 + 4" identifier + number_literal)) ;) (if_statement "if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }" if (parenthesized_expression "((long *)plVar7[3] == plVar5)" ( (binary_expression "(long *)plVar7[3] == plVar5" (cast_expression "(long *)plVar7[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n                local_58 = plVar7 + 3;\n              }" { (expression_statement "local_58 = plVar7 + 3;" (assignment_expression "local_58 = plVar7 + 3" identifier = (binary_expression "plVar7 + 3" identifier + number_literal)) ;) })) }))))) (expression_statement "lVar3 = plVar7[8];" (assignment_expression "lVar3 = plVar7[8]" identifier = (subscript_expression "plVar7[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar3 == 0) goto LAB_0014ecd0;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0014ecd0;" goto statement_identifier ;)) (expression_statement "plVar6 = plVar2;" (assignment_expression "plVar6 = plVar2" identifier = identifier) ;) (expression_statement "local_48 = plVar5;" (assignment_expression "local_48 = plVar5" identifier = identifier) ;) }) while (parenthesized_expression "(plVar7[9] != 0)" ( (binary_expression "plVar7[9] != 0" (subscript_expression "plVar7[9]" identifier [ number_literal ]) != number_literal) )) ;) }))) (if_statement "if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" if (parenthesized_expression "(local_58 == plVar7 + 1)" ( (binary_expression "local_58 == plVar7 + 1" identifier == (binary_expression "plVar7 + 1" identifier + number_literal)) )) (compound_statement "{\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }" { (expression_statement "plVar7[4] = plVar7[3];" (assignment_expression "plVar7[4] = plVar7[3]" (subscript_expression "plVar7[4]" identifier [ number_literal ]) = (subscript_expression "plVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6];" (assignment_expression "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6]" (pointer_expression "*(int *)((long)plVar7 + 0x34)" * (cast_expression "(int *)((long)plVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar7[9] = lVar3;" (assignment_expression "plVar7[9] = lVar3" (subscript_expression "plVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[3] = plVar7[2];" (assignment_expression "plVar7[3] = plVar7[2]" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (subscript_expression "plVar7[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar7[8] = plVar7[7];" (assignment_expression "plVar7[8] = plVar7[7]" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = (subscript_expression "plVar7[7]" identifier [ number_literal ])) ;) (expression_statement "plVar7[2] = (long)plVar5;" (assignment_expression "plVar7[2] = (long)plVar5" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar7[7] = local_40;" (assignment_expression "plVar7[7] = local_40" (subscript_expression "plVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[1] = (long)plVar2;" (assignment_expression "plVar7[1] = (long)plVar2" (subscript_expression "plVar7[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 5)" * (cast_expression "(undefined4 *)(plVar7 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 5)" ( (binary_expression "plVar7 + 5" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" else (if_statement "if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" if (parenthesized_expression "(local_58 == plVar7 + 2)" ( (binary_expression "local_58 == plVar7 + 2" identifier == (binary_expression "plVar7 + 2" identifier + number_literal)) )) (compound_statement "{\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" { (expression_statement "plVar7[4] = plVar7[3];" (assignment_expression "plVar7[4] = plVar7[3]" (subscript_expression "plVar7[4]" identifier [ number_literal ]) = (subscript_expression "plVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6];" (assignment_expression "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6]" (pointer_expression "*(int *)((long)plVar7 + 0x34)" * (cast_expression "(int *)((long)plVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar7[9] = lVar3;" (assignment_expression "plVar7[9] = lVar3" (subscript_expression "plVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[3] = (long)plVar5;" (assignment_expression "plVar7[3] = (long)plVar5" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar7[8] = local_40;" (assignment_expression "plVar7[8] = local_40" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[2] = (long)plVar2;" (assignment_expression "plVar7[2] = (long)plVar2" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" else (compound_statement "{\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" { (expression_statement "plVar7[4] = (long)plVar5;" (assignment_expression "plVar7[4] = (long)plVar5" (subscript_expression "plVar7[4]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x34) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x34) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar7[9] = local_40;" (assignment_expression "plVar7[9] = local_40" (subscript_expression "plVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[3] = (long)plVar2;" (assignment_expression "plVar7[3] = (long)plVar2" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = identifier) ;) }))))) (if_statement "if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[1] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[1] = plVar7" (pointer_expression "*(undefined8 *)plVar7[1]" * (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[2] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[2] = plVar7" (pointer_expression "*(undefined8 *)plVar7[2]" * (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[3] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[3] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[3] = plVar7" (pointer_expression "*(undefined8 *)plVar7[3]" * (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[4] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[4] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[4]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[4]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[4] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[4] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[4] = plVar7" (pointer_expression "*(undefined8 *)plVar7[4]" * (cast_expression "(undefined8 *)plVar7[4]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[4]" identifier [ number_literal ]))) = identifier) ;) })) }))) (expression_statement "lVar3 = *plVar7;" (assignment_expression "lVar3 = *plVar7" identifier = (pointer_expression "*plVar7" * identifier)) ;) (while_statement "while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }" while (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }" { (expression_statement "uVar1 = FUN_0014ea7a(plVar7);" (assignment_expression "uVar1 = FUN_0014ea7a(plVar7)" identifier = (call_expression "FUN_0014ea7a(plVar7)" identifier (argument_list "(plVar7)" ( identifier )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }" if (parenthesized_expression "((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7))" ( (binary_expression "(*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)" (parenthesized_expression "(*(long **)(lVar3 + 8) != plVar7)" ( (binary_expression "*(long **)(lVar3 + 8) != plVar7" (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)" ( (comma_expression "iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7" (assignment_expression "iVar4 = 1" identifier = number_literal) , (binary_expression "*(long **)(lVar3 + 0x10) != plVar7" (pointer_expression "*(long **)(lVar3 + 0x10)" * (cast_expression "(long **)(lVar3 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }" { (expression_statement "iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;" (assignment_expression "iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2" identifier = (binary_expression "(*(long **)(lVar3 + 0x18) != plVar7) + 2" (parenthesized_expression "(*(long **)(lVar3 + 0x18) != plVar7)" ( (binary_expression "*(long **)(lVar3 + 0x18) != plVar7" (pointer_expression "*(long **)(lVar3 + 0x18)" * (cast_expression "(long **)(lVar3 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) != identifier) )) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;" (assignment_expression "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1" (pointer_expression "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4)" * (cast_expression "(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x28 + (long)iVar4 * 4)" ( (binary_expression "lVar3 + 0x28 + (long)iVar4 * 4" (binary_expression "lVar3 + 0x28" identifier + number_literal) + (binary_expression "(long)iVar4 * 4" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "plVar7 = (long *)*plVar7;" (assignment_expression "plVar7 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (expression_statement "lVar3 = *plVar7;" (assignment_expression "lVar3 = *plVar7" identifier = (pointer_expression "*plVar7" * identifier)) ;) })) }))) }))) (return_statement "return param_2;" return identifier ;) })))
(translation_unit "void * add234_internal(tree234 *t,void *e,int index)\n\n{\n  node234 *pnVar1;\n  int iVar2;\n  node234_conflict *pnVar3;\n  void *pvVar4;\n  node234_conflict *n;\n  node234_conflict *pnVar5;\n  int iVar6;\n  node234_conflict *pnVar7;\n  node234 **local_58;\n  int local_50;\n  int local_4c;\n  node234 *local_48;\n  void *local_40;\n  \n  if (t->root == (node234_conflict *)0x0) {\n    pnVar3 = (node234_conflict *)safemalloc(1,0x50);\n    t->root = pnVar3;\n    pnVar3->elems[2] = (void *)0x0;\n    t->root->elems[1] = (void *)0x0;\n    t->root->kids[1] = (node234 *)0x0;\n    t->root->kids[0] = (node234 *)0x0;\n    t->root->kids[3] = (node234 *)0x0;\n    t->root->kids[2] = (node234 *)0x0;\n    t->root->counts[1] = 0;\n    t->root->counts[0] = 0;\n    t->root->counts[3] = 0;\n    t->root->counts[2] = 0;\n    t->root->parent = (node234_conflict *)0x0;\n    t->root->elems[0] = e;\n  }\n  else {\n    pnVar3 = t->root;\n    local_40 = e;\n    if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }\n  }\n  return e;\n}\n\n" (function_definition "void * add234_internal(tree234 *t,void *e,int index)\n\n{\n  node234 *pnVar1;\n  int iVar2;\n  node234_conflict *pnVar3;\n  void *pvVar4;\n  node234_conflict *n;\n  node234_conflict *pnVar5;\n  int iVar6;\n  node234_conflict *pnVar7;\n  node234 **local_58;\n  int local_50;\n  int local_4c;\n  node234 *local_48;\n  void *local_40;\n  \n  if (t->root == (node234_conflict *)0x0) {\n    pnVar3 = (node234_conflict *)safemalloc(1,0x50);\n    t->root = pnVar3;\n    pnVar3->elems[2] = (void *)0x0;\n    t->root->elems[1] = (void *)0x0;\n    t->root->kids[1] = (node234 *)0x0;\n    t->root->kids[0] = (node234 *)0x0;\n    t->root->kids[3] = (node234 *)0x0;\n    t->root->kids[2] = (node234 *)0x0;\n    t->root->counts[1] = 0;\n    t->root->counts[0] = 0;\n    t->root->counts[3] = 0;\n    t->root->counts[2] = 0;\n    t->root->parent = (node234_conflict *)0x0;\n    t->root->elems[0] = e;\n  }\n  else {\n    pnVar3 = t->root;\n    local_40 = e;\n    if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }\n  }\n  return e;\n}" primitive_type (pointer_declarator "* add234_internal(tree234 *t,void *e,int index)" * (function_declarator "add234_internal(tree234 *t,void *e,int index)" identifier (parameter_list "(tree234 *t,void *e,int index)" ( (parameter_declaration "tree234 *t" type_identifier (pointer_declarator "*t" * identifier)) , (parameter_declaration "void *e" primitive_type (pointer_declarator "*e" * identifier)) , (parameter_declaration "int index" primitive_type identifier) )))) (compound_statement "{\n  node234 *pnVar1;\n  int iVar2;\n  node234_conflict *pnVar3;\n  void *pvVar4;\n  node234_conflict *n;\n  node234_conflict *pnVar5;\n  int iVar6;\n  node234_conflict *pnVar7;\n  node234 **local_58;\n  int local_50;\n  int local_4c;\n  node234 *local_48;\n  void *local_40;\n  \n  if (t->root == (node234_conflict *)0x0) {\n    pnVar3 = (node234_conflict *)safemalloc(1,0x50);\n    t->root = pnVar3;\n    pnVar3->elems[2] = (void *)0x0;\n    t->root->elems[1] = (void *)0x0;\n    t->root->kids[1] = (node234 *)0x0;\n    t->root->kids[0] = (node234 *)0x0;\n    t->root->kids[3] = (node234 *)0x0;\n    t->root->kids[2] = (node234 *)0x0;\n    t->root->counts[1] = 0;\n    t->root->counts[0] = 0;\n    t->root->counts[3] = 0;\n    t->root->counts[2] = 0;\n    t->root->parent = (node234_conflict *)0x0;\n    t->root->elems[0] = e;\n  }\n  else {\n    pnVar3 = t->root;\n    local_40 = e;\n    if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }\n  }\n  return e;\n}" { (declaration "node234 *pnVar1;" type_identifier (pointer_declarator "*pnVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "node234_conflict *pnVar3;" type_identifier (pointer_declarator "*pnVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "node234_conflict *n;" type_identifier (pointer_declarator "*n" * identifier) ;) (declaration "node234_conflict *pnVar5;" type_identifier (pointer_declarator "*pnVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "node234_conflict *pnVar7;" type_identifier (pointer_declarator "*pnVar7" * identifier) ;) (declaration "node234 **local_58;" type_identifier (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier)) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "node234 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "void *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (if_statement "if (t->root == (node234_conflict *)0x0) {\n    pnVar3 = (node234_conflict *)safemalloc(1,0x50);\n    t->root = pnVar3;\n    pnVar3->elems[2] = (void *)0x0;\n    t->root->elems[1] = (void *)0x0;\n    t->root->kids[1] = (node234 *)0x0;\n    t->root->kids[0] = (node234 *)0x0;\n    t->root->kids[3] = (node234 *)0x0;\n    t->root->kids[2] = (node234 *)0x0;\n    t->root->counts[1] = 0;\n    t->root->counts[0] = 0;\n    t->root->counts[3] = 0;\n    t->root->counts[2] = 0;\n    t->root->parent = (node234_conflict *)0x0;\n    t->root->elems[0] = e;\n  }\n  else {\n    pnVar3 = t->root;\n    local_40 = e;\n    if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }\n  }" if (parenthesized_expression "(t->root == (node234_conflict *)0x0)" ( (binary_expression "t->root == (node234_conflict *)0x0" (field_expression "t->root" identifier -> field_identifier) == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pnVar3 = (node234_conflict *)safemalloc(1,0x50);\n    t->root = pnVar3;\n    pnVar3->elems[2] = (void *)0x0;\n    t->root->elems[1] = (void *)0x0;\n    t->root->kids[1] = (node234 *)0x0;\n    t->root->kids[0] = (node234 *)0x0;\n    t->root->kids[3] = (node234 *)0x0;\n    t->root->kids[2] = (node234 *)0x0;\n    t->root->counts[1] = 0;\n    t->root->counts[0] = 0;\n    t->root->counts[3] = 0;\n    t->root->counts[2] = 0;\n    t->root->parent = (node234_conflict *)0x0;\n    t->root->elems[0] = e;\n  }" { (expression_statement "pnVar3 = (node234_conflict *)safemalloc(1,0x50);" (assignment_expression "pnVar3 = (node234_conflict *)safemalloc(1,0x50)" identifier = (cast_expression "(node234_conflict *)safemalloc(1,0x50)" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal ))))) ;) (expression_statement "t->root = pnVar3;" (assignment_expression "t->root = pnVar3" (field_expression "t->root" identifier -> field_identifier) = identifier) ;) (expression_statement "pnVar3->elems[2] = (void *)0x0;" (assignment_expression "pnVar3->elems[2] = (void *)0x0" (subscript_expression "pnVar3->elems[2]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->elems[1] = (void *)0x0;" (assignment_expression "t->root->elems[1] = (void *)0x0" (subscript_expression "t->root->elems[1]" (field_expression "t->root->elems" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->kids[1] = (node234 *)0x0;" (assignment_expression "t->root->kids[1] = (node234 *)0x0" (subscript_expression "t->root->kids[1]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->kids[0] = (node234 *)0x0;" (assignment_expression "t->root->kids[0] = (node234 *)0x0" (subscript_expression "t->root->kids[0]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->kids[3] = (node234 *)0x0;" (assignment_expression "t->root->kids[3] = (node234 *)0x0" (subscript_expression "t->root->kids[3]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->kids[2] = (node234 *)0x0;" (assignment_expression "t->root->kids[2] = (node234 *)0x0" (subscript_expression "t->root->kids[2]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->counts[1] = 0;" (assignment_expression "t->root->counts[1] = 0" (subscript_expression "t->root->counts[1]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "t->root->counts[0] = 0;" (assignment_expression "t->root->counts[0] = 0" (subscript_expression "t->root->counts[0]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "t->root->counts[3] = 0;" (assignment_expression "t->root->counts[3] = 0" (subscript_expression "t->root->counts[3]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "t->root->counts[2] = 0;" (assignment_expression "t->root->counts[2] = 0" (subscript_expression "t->root->counts[2]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "t->root->parent = (node234_conflict *)0x0;" (assignment_expression "t->root->parent = (node234_conflict *)0x0" (field_expression "t->root->parent" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->elems[0] = e;" (assignment_expression "t->root->elems[0] = e" (subscript_expression "t->root->elems[0]" (field_expression "t->root->elems" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    pnVar3 = t->root;\n    local_40 = e;\n    if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }\n  }" else (compound_statement "{\n    pnVar3 = t->root;\n    local_40 = e;\n    if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }\n  }" { (expression_statement "pnVar3 = t->root;" (assignment_expression "pnVar3 = t->root" identifier = (field_expression "t->root" identifier -> field_identifier)) ;) (expression_statement "local_40 = e;" (assignment_expression "local_40 = e" identifier = identifier) ;) (if_statement "if (pnVar3 == (node234_conflict *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }\n    else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }" if (parenthesized_expression "(pnVar3 == (node234_conflict *)0x0)" ( (binary_expression "pnVar3 == (node234_conflict *)0x0" identifier == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_4c = 0;\n      local_50 = 0;\n      n = (node234_conflict *)0x0;\nLAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);\n      t->root = pnVar5;\n      pnVar5->kids[0] = n;\n      t->root->counts[0] = local_50;\n      t->root->elems[0] = local_40;\n      t->root->kids[1] = pnVar3;\n      t->root->counts[1] = local_4c;\n      t->root->elems[1] = (void *)0x0;\n      t->root->kids[2] = (node234 *)0x0;\n      t->root->counts[2] = 0;\n      t->root->elems[2] = (void *)0x0;\n      t->root->kids[3] = (node234 *)0x0;\n      t->root->counts[3] = 0;\n      t->root->parent = (node234_conflict *)0x0;\n      pnVar1 = t->root->kids[0];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n      pnVar1 = t->root->kids[1];\n      if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "n = (node234_conflict *)0x0;" (assignment_expression "n = (node234_conflict *)0x0" identifier = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0014f1d8:\n      pnVar5 = (node234_conflict *)safemalloc(1,0x50);" statement_identifier : (expression_statement "pnVar5 = (node234_conflict *)safemalloc(1,0x50);" (assignment_expression "pnVar5 = (node234_conflict *)safemalloc(1,0x50)" identifier = (cast_expression "(node234_conflict *)safemalloc(1,0x50)" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal ))))) ;)) (expression_statement "t->root = pnVar5;" (assignment_expression "t->root = pnVar5" (field_expression "t->root" identifier -> field_identifier) = identifier) ;) (expression_statement "pnVar5->kids[0] = n;" (assignment_expression "pnVar5->kids[0] = n" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "t->root->counts[0] = local_50;" (assignment_expression "t->root->counts[0] = local_50" (subscript_expression "t->root->counts[0]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "t->root->elems[0] = local_40;" (assignment_expression "t->root->elems[0] = local_40" (subscript_expression "t->root->elems[0]" (field_expression "t->root->elems" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "t->root->kids[1] = pnVar3;" (assignment_expression "t->root->kids[1] = pnVar3" (subscript_expression "t->root->kids[1]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "t->root->counts[1] = local_4c;" (assignment_expression "t->root->counts[1] = local_4c" (subscript_expression "t->root->counts[1]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "t->root->elems[1] = (void *)0x0;" (assignment_expression "t->root->elems[1] = (void *)0x0" (subscript_expression "t->root->elems[1]" (field_expression "t->root->elems" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->kids[2] = (node234 *)0x0;" (assignment_expression "t->root->kids[2] = (node234 *)0x0" (subscript_expression "t->root->kids[2]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->counts[2] = 0;" (assignment_expression "t->root->counts[2] = 0" (subscript_expression "t->root->counts[2]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "t->root->elems[2] = (void *)0x0;" (assignment_expression "t->root->elems[2] = (void *)0x0" (subscript_expression "t->root->elems[2]" (field_expression "t->root->elems" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->kids[3] = (node234 *)0x0;" (assignment_expression "t->root->kids[3] = (node234 *)0x0" (subscript_expression "t->root->kids[3]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t->root->counts[3] = 0;" (assignment_expression "t->root->counts[3] = 0" (subscript_expression "t->root->counts[3]" (field_expression "t->root->counts" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "t->root->parent = (node234_conflict *)0x0;" (assignment_expression "t->root->parent = (node234_conflict *)0x0" (field_expression "t->root->parent" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar1 = t->root->kids[0];" (assignment_expression "pnVar1 = t->root->kids[0]" identifier = (subscript_expression "t->root->kids[0]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ])) ;) (if_statement "if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }" if (parenthesized_expression "(pnVar1 != (node234 *)0x0)" ( (binary_expression "pnVar1 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar1->parent = t->root;\n      }" { (expression_statement "pnVar1->parent = t->root;" (assignment_expression "pnVar1->parent = t->root" (field_expression "pnVar1->parent" identifier -> field_identifier) = (field_expression "t->root" identifier -> field_identifier)) ;) })) (expression_statement "pnVar1 = t->root->kids[1];" (assignment_expression "pnVar1 = t->root->kids[1]" identifier = (subscript_expression "t->root->kids[1]" (field_expression "t->root->kids" (field_expression "t->root" identifier -> field_identifier) -> field_identifier) [ number_literal ])) ;) (if_statement "if (pnVar1 != (node234 *)0x0) {\n        pnVar1->parent = t->root;\n      }" if (parenthesized_expression "(pnVar1 != (node234 *)0x0)" ( (binary_expression "pnVar1 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar1->parent = t->root;\n      }" { (expression_statement "pnVar1->parent = t->root;" (assignment_expression "pnVar1->parent = t->root" (field_expression "pnVar1->parent" identifier -> field_identifier) = (field_expression "t->root" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }" else (compound_statement "{\n      do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);\n      local_58 = pnVar5->kids + iVar2;\n      pvVar4 = pnVar5->elems[1];\n      if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }\n      pnVar3 = pnVar5->parent;\n      while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }\n    }" { (do_statement "do {\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      } while (pnVar3 != (node234 *)0x0);" do (compound_statement "{\n        pnVar5 = pnVar3;\n        if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }\n        pnVar3 = pnVar5->kids[iVar2];\n      }" { (expression_statement "pnVar5 = pnVar3;" (assignment_expression "pnVar5 = pnVar3" identifier = identifier) ;) (if_statement "if (index < 0) {\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }" if (parenthesized_expression "(index < 0)" ( (binary_expression "index < 0" identifier < number_literal) )) (compound_statement "{\n          iVar2 = (*t->cmp)(e,pnVar5->elems[0]);\n          if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar2 = (*t->cmp)(e,pnVar5->elems[0]);" (assignment_expression "iVar2 = (*t->cmp)(e,pnVar5->elems[0])" identifier = (call_expression "(*t->cmp)(e,pnVar5->elems[0])" (parenthesized_expression "(*t->cmp)" ( (pointer_expression "*t->cmp" * (field_expression "t->cmp" identifier -> field_identifier)) )) (argument_list "(e,pnVar5->elems[0])" ( identifier , (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) )))) ;) (if_statement "if (iVar2 < 0) {\n            iVar2 = 0;\n          }\n          else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar2 = 0;\n          }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }\n            if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }\n          }" { (if_statement "if (iVar2 == 0) {\n              return pnVar5->elems[0];\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              return pnVar5->elems[0];\n            }" { (return_statement "return pnVar5->elems[0];" return (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) ;) })) (if_statement "if (pnVar5->elems[1] == (void *)0x0) {\n              iVar2 = 1;\n            }\n            else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(pnVar5->elems[1] == (void *)0x0)" ( (binary_expression "pnVar5->elems[1] == (void *)0x0" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar2 = 1;\n            }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar2 = (*t->cmp)(e,pnVar5->elems[1]);\n              if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }\n            }" { (expression_statement "iVar2 = (*t->cmp)(e,pnVar5->elems[1]);" (assignment_expression "iVar2 = (*t->cmp)(e,pnVar5->elems[1])" identifier = (call_expression "(*t->cmp)(e,pnVar5->elems[1])" (parenthesized_expression "(*t->cmp)" ( (pointer_expression "*t->cmp" * (field_expression "t->cmp" identifier -> field_identifier)) )) (argument_list "(e,pnVar5->elems[1])" ( identifier , (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) )))) ;) (if_statement "if (iVar2 < 0) {\n                iVar2 = 1;\n              }\n              else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar2 = 1;\n              }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }" else (compound_statement "{\n                if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }\n                if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }\n              }" { (if_statement "if (iVar2 == 0) {\n                  return pnVar5->elems[1];\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return pnVar5->elems[1];\n                }" { (return_statement "return pnVar5->elems[1];" return (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) ;) })) (if_statement "if (pnVar5->elems[2] == (void *)0x0) {\n                  iVar2 = 2;\n                }\n                else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }" if (parenthesized_expression "(pnVar5->elems[2] == (void *)0x0)" ( (binary_expression "pnVar5->elems[2] == (void *)0x0" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar2 = 2;\n                }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }" else (compound_statement "{\n                  iVar2 = (*t->cmp)(e,pnVar5->elems[2]);\n                  if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }\n                }" { (expression_statement "iVar2 = (*t->cmp)(e,pnVar5->elems[2]);" (assignment_expression "iVar2 = (*t->cmp)(e,pnVar5->elems[2])" identifier = (call_expression "(*t->cmp)(e,pnVar5->elems[2])" (parenthesized_expression "(*t->cmp)" ( (pointer_expression "*t->cmp" * (field_expression "t->cmp" identifier -> field_identifier)) )) (argument_list "(e,pnVar5->elems[2])" ( identifier , (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) )))) ;) (if_statement "if (iVar2 < 0) {\n                    iVar2 = 2;\n                  }\n                  else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n                    iVar2 = 2;\n                  }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }" else (compound_statement "{\n                    if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }\n                    iVar2 = 3;\n                  }" { (if_statement "if (iVar2 == 0) {\n                      return pnVar5->elems[2];\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      return pnVar5->elems[2];\n                    }" { (return_statement "return pnVar5->elems[2];" return (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) ;) })) (expression_statement "iVar2 = 3;" (assignment_expression "iVar2 = 3" identifier = number_literal) ;) }))) }))) }))) }))) }))) }) (else_clause "else {\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar2 = index;\n          if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }\n        }" { (expression_statement "iVar2 = index;" (assignment_expression "iVar2 = index" identifier = identifier) ;) (if_statement "if (pnVar5->kids[0] != (node234 *)0x0) {\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }" if (parenthesized_expression "(pnVar5->kids[0] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[0] != (node234 *)0x0" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }\n          }" { (if_statement "if (pnVar5->counts[0] < index) {\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }\n            else {\n              iVar2 = 0;\n            }" if (parenthesized_expression "(pnVar5->counts[0] < index)" ( (binary_expression "pnVar5->counts[0] < index" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) < identifier) )) (compound_statement "{\n              index = index - (pnVar5->counts[0] + 1);\n              if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }\n            }" { (expression_statement "index = index - (pnVar5->counts[0] + 1);" (assignment_expression "index = index - (pnVar5->counts[0] + 1)" identifier = (binary_expression "index - (pnVar5->counts[0] + 1)" identifier - (parenthesized_expression "(pnVar5->counts[0] + 1)" ( (binary_expression "pnVar5->counts[0] + 1" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal) )))) ;) (if_statement "if (pnVar5->counts[1] < index) {\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }\n              else {\n                iVar2 = 1;\n              }" if (parenthesized_expression "(pnVar5->counts[1] < index)" ( (binary_expression "pnVar5->counts[1] < index" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) < identifier) )) (compound_statement "{\n                index = index - (pnVar5->counts[1] + 1);\n                if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }\n              }" { (expression_statement "index = index - (pnVar5->counts[1] + 1);" (assignment_expression "index = index - (pnVar5->counts[1] + 1)" identifier = (binary_expression "index - (pnVar5->counts[1] + 1)" identifier - (parenthesized_expression "(pnVar5->counts[1] + 1)" ( (binary_expression "pnVar5->counts[1] + 1" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal) )))) ;) (if_statement "if (pnVar5->counts[2] < index) {\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }\n                else {\n                  iVar2 = 2;\n                }" if (parenthesized_expression "(pnVar5->counts[2] < index)" ( (binary_expression "pnVar5->counts[2] < index" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) < identifier) )) (compound_statement "{\n                  index = index - (pnVar5->counts[2] + 1);\n                  if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }\n                  iVar2 = 3;\n                }" { (expression_statement "index = index - (pnVar5->counts[2] + 1);" (assignment_expression "index = index - (pnVar5->counts[2] + 1)" identifier = (binary_expression "index - (pnVar5->counts[2] + 1)" identifier - (parenthesized_expression "(pnVar5->counts[2] + 1)" ( (binary_expression "pnVar5->counts[2] + 1" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal) )))) ;) (if_statement "if (pnVar5->counts[3] < index) {\n                    return (void *)0x0;\n                  }" if (parenthesized_expression "(pnVar5->counts[3] < index)" ( (binary_expression "pnVar5->counts[3] < index" (subscript_expression "pnVar5->counts[3]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) < identifier) )) (compound_statement "{\n                    return (void *)0x0;\n                  }" { (return_statement "return (void *)0x0;" return (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar2 = 3;" (assignment_expression "iVar2 = 3" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar2 = 2;\n                }" else (compound_statement "{\n                  iVar2 = 2;\n                }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n                iVar2 = 1;\n              }" else (compound_statement "{\n                iVar2 = 1;\n              }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n              iVar2 = 0;\n            }" else (compound_statement "{\n              iVar2 = 0;\n            }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) })) }))) (expression_statement "pnVar3 = pnVar5->kids[iVar2];" (assignment_expression "pnVar3 = pnVar5->kids[iVar2]" identifier = (subscript_expression "pnVar5->kids[iVar2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ identifier ])) ;) }) while (parenthesized_expression "(pnVar3 != (node234 *)0x0)" ( (binary_expression "pnVar3 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_58 = pnVar5->kids + iVar2;" (assignment_expression "local_58 = pnVar5->kids + iVar2" identifier = (binary_expression "pnVar5->kids + iVar2" (field_expression "pnVar5->kids" identifier -> field_identifier) + identifier)) ;) (expression_statement "pvVar4 = pnVar5->elems[1];" (assignment_expression "pvVar4 = pnVar5->elems[1]" identifier = (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pvVar4 == (void *)0x0) {\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }\n      else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_4c = 0;\n        local_50 = 0;\n        pnVar3 = (node234 *)0x0;\n        n = (node234 *)0x0;\nLAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n      }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "pnVar3 = (node234 *)0x0;" (assignment_expression "pnVar3 = (node234 *)0x0" identifier = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "n = (node234 *)0x0;" (assignment_expression "n = (node234 *)0x0" identifier = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0014ecd0:\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }" statement_identifier : (if_statement "if (local_58 == pnVar5->kids) {\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }" if (parenthesized_expression "(local_58 == pnVar5->kids)" ( (binary_expression "local_58 == pnVar5->kids" identifier == (field_expression "pnVar5->kids" identifier -> field_identifier)) )) (compound_statement "{\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }" { (expression_statement "pnVar5->kids[2] = pnVar5->kids[1];" (assignment_expression "pnVar5->kids[2] = pnVar5->kids[1]" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->counts[2] = pnVar5->counts[1];" (assignment_expression "pnVar5->counts[2] = pnVar5->counts[1]" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->elems[1] = pnVar5->elems[0];" (assignment_expression "pnVar5->elems[1] = pnVar5->elems[0]" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->kids[1] = pnVar3;" (assignment_expression "pnVar5->kids[1] = pnVar3" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[1] = local_4c;" (assignment_expression "pnVar5->counts[1] = local_4c" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->elems[0] = local_40;" (assignment_expression "pnVar5->elems[0] = local_40" (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[0] = n;" (assignment_expression "pnVar5->kids[0] = n" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[0] = local_50;" (assignment_expression "pnVar5->counts[0] = local_50" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }" else (compound_statement "{\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }" { (expression_statement "pnVar5->kids[2] = pnVar3;" (assignment_expression "pnVar5->kids[2] = pnVar3" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[2] = local_4c;" (assignment_expression "pnVar5->counts[2] = local_4c" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->elems[1] = local_40;" (assignment_expression "pnVar5->elems[1] = local_40" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[1] = n;" (assignment_expression "pnVar5->kids[1] = n" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[1] = local_50;" (assignment_expression "pnVar5->counts[1] = local_50" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) })))) (if_statement "if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[0] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[0] != (node234 *)0x0" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[0]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[0]->parent = pnVar5;" (assignment_expression "pnVar5->kids[0]->parent = pnVar5" (field_expression "pnVar5->kids[0]->parent" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[1] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[1] != (node234 *)0x0" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[1]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[1]->parent = pnVar5;" (assignment_expression "pnVar5->kids[1]->parent = pnVar5" (field_expression "pnVar5->kids[1]->parent" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[2] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[2] != (node234 *)0x0" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[2]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[2]->parent = pnVar5;" (assignment_expression "pnVar5->kids[2]->parent = pnVar5" (field_expression "pnVar5->kids[2]->parent" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) }) (else_clause "else {\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }" else (compound_statement "{\n        if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }\n        if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }\n        if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }\n        if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }\n        if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }\n        if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }\n      }" { (if_statement "if (pnVar5->elems[2] == (void *)0x0) {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }" if (parenthesized_expression "(pnVar5->elems[2] == (void *)0x0)" ( (binary_expression "pnVar5->elems[2] == (void *)0x0" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          pnVar3 = (node234 *)0x0;\n          n = (node234 *)0x0;\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "pnVar3 = (node234 *)0x0;" (assignment_expression "pnVar3 = (node234 *)0x0" identifier = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "n = (node234 *)0x0;" (assignment_expression "n = (node234 *)0x0" identifier = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }" else (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          pnVar7 = (node234_conflict *)0x0;\n          local_48 = pnVar3;\n          do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "pnVar7 = (node234_conflict *)0x0;" (assignment_expression "pnVar7 = (node234_conflict *)0x0" identifier = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = pnVar3;" (assignment_expression "local_48 = pnVar3" identifier = identifier) ;) (do_statement "do {\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          } while (pnVar5->elems[2] != (void *)0x0);" do (compound_statement "{\n            pnVar3 = pnVar5;\n            n = (node234_conflict *)safemalloc(1,0x50);\n            n->parent = pnVar3->parent;\n            if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }\n            pnVar3->kids[2] = (node234 *)0x0;\n            pnVar3->kids[3] = (node234 *)0x0;\n            n->kids[3] = (node234 *)0x0;\n            pnVar3->counts[2] = 0;\n            pnVar3->counts[3] = 0;\n            n->counts[3] = 0;\n            pnVar3->elems[1] = (void *)0x0;\n            pnVar3->elems[2] = (void *)0x0;\n            n->elems[2] = (void *)0x0;\n            if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }\n            if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }\n            if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }\n            if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }\n            if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }\n            local_50 = countnode234(n);\n            local_4c = countnode234(pnVar3);\n            pnVar5 = pnVar3->parent;\n            if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;\n            if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }\n            pvVar4 = pnVar5->elems[1];\n            if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;\n            pnVar7 = n;\n            local_48 = pnVar3;\n          }" { (expression_statement "pnVar3 = pnVar5;" (assignment_expression "pnVar3 = pnVar5" identifier = identifier) ;) (expression_statement "n = (node234_conflict *)safemalloc(1,0x50);" (assignment_expression "n = (node234_conflict *)safemalloc(1,0x50)" identifier = (cast_expression "(node234_conflict *)safemalloc(1,0x50)" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal ))))) ;) (expression_statement "n->parent = pnVar3->parent;" (assignment_expression "n->parent = pnVar3->parent" (field_expression "n->parent" identifier -> field_identifier) = (field_expression "pnVar3->parent" identifier -> field_identifier)) ;) (if_statement "if (local_58 == pnVar3->kids) {\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" if (parenthesized_expression "(local_58 == pnVar3->kids)" ( (binary_expression "local_58 == pnVar3->kids" identifier == (field_expression "pnVar3->kids" identifier -> field_identifier)) )) (compound_statement "{\n              n->kids[0] = pnVar7;\n              n->counts[0] = local_50;\n              n->elems[0] = local_40;\n              n->kids[1] = local_48;\n              n->counts[1] = local_4c;\n              n->elems[1] = pnVar3->elems[0];\n              n->kids[2] = pnVar3->kids[1];\n              n->counts[2] = pnVar3->counts[1];\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }" { (expression_statement "n->kids[0] = pnVar7;" (assignment_expression "n->kids[0] = pnVar7" (subscript_expression "n->kids[0]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->counts[0] = local_50;" (assignment_expression "n->counts[0] = local_50" (subscript_expression "n->counts[0]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->elems[0] = local_40;" (assignment_expression "n->elems[0] = local_40" (subscript_expression "n->elems[0]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->kids[1] = local_48;" (assignment_expression "n->kids[1] = local_48" (subscript_expression "n->kids[1]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->counts[1] = local_4c;" (assignment_expression "n->counts[1] = local_4c" (subscript_expression "n->counts[1]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->elems[1] = pnVar3->elems[0];" (assignment_expression "n->elems[1] = pnVar3->elems[0]" (subscript_expression "n->elems[1]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->kids[2] = pnVar3->kids[1];" (assignment_expression "n->kids[2] = pnVar3->kids[1]" (subscript_expression "n->kids[2]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[2] = pnVar3->counts[1];" (assignment_expression "n->counts[2] = pnVar3->counts[1]" (subscript_expression "n->counts[2]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "local_40 = pnVar3->elems[1];" (assignment_expression "local_40 = pnVar3->elems[1]" identifier = (subscript_expression "pnVar3->elems[1]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->kids[0] = pnVar3->kids[2];" (assignment_expression "pnVar3->kids[0] = pnVar3->kids[2]" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[2]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->counts[0] = pnVar3->counts[2];" (assignment_expression "pnVar3->counts[0] = pnVar3->counts[2]" (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[2]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->elems[0] = pnVar3->elems[2];" (assignment_expression "pnVar3->elems[0] = pnVar3->elems[2]" (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[2]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->kids[1] = pnVar3->kids[3];" (assignment_expression "pnVar3->kids[1] = pnVar3->kids[3]" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[3]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->counts[1] = pnVar3->counts[3];" (assignment_expression "pnVar3->counts[1] = pnVar3->counts[3]" (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[3]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) }) (else_clause "else if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" else (if_statement "if (local_58 == pnVar3->kids + 1) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" if (parenthesized_expression "(local_58 == pnVar3->kids + 1)" ( (binary_expression "local_58 == pnVar3->kids + 1" identifier == (binary_expression "pnVar3->kids + 1" (field_expression "pnVar3->kids" identifier -> field_identifier) + number_literal)) )) (compound_statement "{\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar7;\n              n->counts[1] = local_50;\n              n->elems[1] = local_40;\n              n->kids[2] = local_48;\n              n->counts[2] = local_4c;\n              local_40 = pnVar3->elems[1];\n              pnVar3->kids[0] = pnVar3->kids[2];\n              pnVar3->counts[0] = pnVar3->counts[2];\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }" { (expression_statement "n->kids[0] = pnVar3->kids[0];" (assignment_expression "n->kids[0] = pnVar3->kids[0]" (subscript_expression "n->kids[0]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[0] = pnVar3->counts[0];" (assignment_expression "n->counts[0] = pnVar3->counts[0]" (subscript_expression "n->counts[0]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->elems[0] = pnVar3->elems[0];" (assignment_expression "n->elems[0] = pnVar3->elems[0]" (subscript_expression "n->elems[0]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->kids[1] = pnVar7;" (assignment_expression "n->kids[1] = pnVar7" (subscript_expression "n->kids[1]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->counts[1] = local_50;" (assignment_expression "n->counts[1] = local_50" (subscript_expression "n->counts[1]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->elems[1] = local_40;" (assignment_expression "n->elems[1] = local_40" (subscript_expression "n->elems[1]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->kids[2] = local_48;" (assignment_expression "n->kids[2] = local_48" (subscript_expression "n->kids[2]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->counts[2] = local_4c;" (assignment_expression "n->counts[2] = local_4c" (subscript_expression "n->counts[2]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "local_40 = pnVar3->elems[1];" (assignment_expression "local_40 = pnVar3->elems[1]" identifier = (subscript_expression "pnVar3->elems[1]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->kids[0] = pnVar3->kids[2];" (assignment_expression "pnVar3->kids[0] = pnVar3->kids[2]" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[2]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->counts[0] = pnVar3->counts[2];" (assignment_expression "pnVar3->counts[0] = pnVar3->counts[2]" (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[2]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->elems[0] = pnVar3->elems[2];" (assignment_expression "pnVar3->elems[0] = pnVar3->elems[2]" (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[2]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->kids[1] = pnVar3->kids[3];" (assignment_expression "pnVar3->kids[1] = pnVar3->kids[3]" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[3]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->counts[1] = pnVar3->counts[3];" (assignment_expression "pnVar3->counts[1] = pnVar3->counts[3]" (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[3]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) }) (else_clause "else if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" else (if_statement "if (local_58 == pnVar3->kids + 2) {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }\n            else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" if (parenthesized_expression "(local_58 == pnVar3->kids + 2)" ( (binary_expression "local_58 == pnVar3->kids + 2" identifier == (binary_expression "pnVar3->kids + 2" (field_expression "pnVar3->kids" identifier -> field_identifier) + number_literal)) )) (compound_statement "{\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar7;\n              n->counts[2] = local_50;\n              pnVar3->kids[0] = local_48;\n              pnVar3->counts[0] = local_4c;\n              pnVar3->elems[0] = pnVar3->elems[2];\n              pnVar3->kids[1] = pnVar3->kids[3];\n              pnVar3->counts[1] = pnVar3->counts[3];\n            }" { (expression_statement "n->kids[0] = pnVar3->kids[0];" (assignment_expression "n->kids[0] = pnVar3->kids[0]" (subscript_expression "n->kids[0]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[0] = pnVar3->counts[0];" (assignment_expression "n->counts[0] = pnVar3->counts[0]" (subscript_expression "n->counts[0]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->elems[0] = pnVar3->elems[0];" (assignment_expression "n->elems[0] = pnVar3->elems[0]" (subscript_expression "n->elems[0]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->kids[1] = pnVar3->kids[1];" (assignment_expression "n->kids[1] = pnVar3->kids[1]" (subscript_expression "n->kids[1]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[1] = pnVar3->counts[1];" (assignment_expression "n->counts[1] = pnVar3->counts[1]" (subscript_expression "n->counts[1]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->elems[1] = pnVar3->elems[1];" (assignment_expression "n->elems[1] = pnVar3->elems[1]" (subscript_expression "n->elems[1]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[1]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->kids[2] = pnVar7;" (assignment_expression "n->kids[2] = pnVar7" (subscript_expression "n->kids[2]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "n->counts[2] = local_50;" (assignment_expression "n->counts[2] = local_50" (subscript_expression "n->counts[2]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->kids[0] = local_48;" (assignment_expression "pnVar3->kids[0] = local_48" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->counts[0] = local_4c;" (assignment_expression "pnVar3->counts[0] = local_4c" (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->elems[0] = pnVar3->elems[2];" (assignment_expression "pnVar3->elems[0] = pnVar3->elems[2]" (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[2]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->kids[1] = pnVar3->kids[3];" (assignment_expression "pnVar3->kids[1] = pnVar3->kids[3]" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[3]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->counts[1] = pnVar3->counts[3];" (assignment_expression "pnVar3->counts[1] = pnVar3->counts[3]" (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[3]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) }) (else_clause "else {\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" else (compound_statement "{\n              n->kids[0] = pnVar3->kids[0];\n              n->counts[0] = pnVar3->counts[0];\n              n->elems[0] = pnVar3->elems[0];\n              n->kids[1] = pnVar3->kids[1];\n              n->counts[1] = pnVar3->counts[1];\n              n->elems[1] = pnVar3->elems[1];\n              n->kids[2] = pnVar3->kids[2];\n              n->counts[2] = pnVar3->counts[2];\n              pnVar3->kids[0] = pnVar7;\n              pnVar3->counts[0] = local_50;\n              pnVar3->elems[0] = local_40;\n              pnVar3->kids[1] = local_48;\n              pnVar3->counts[1] = local_4c;\n              local_40 = pnVar3->elems[2];\n            }" { (expression_statement "n->kids[0] = pnVar3->kids[0];" (assignment_expression "n->kids[0] = pnVar3->kids[0]" (subscript_expression "n->kids[0]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[0] = pnVar3->counts[0];" (assignment_expression "n->counts[0] = pnVar3->counts[0]" (subscript_expression "n->counts[0]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->elems[0] = pnVar3->elems[0];" (assignment_expression "n->elems[0] = pnVar3->elems[0]" (subscript_expression "n->elems[0]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->kids[1] = pnVar3->kids[1];" (assignment_expression "n->kids[1] = pnVar3->kids[1]" (subscript_expression "n->kids[1]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[1] = pnVar3->counts[1];" (assignment_expression "n->counts[1] = pnVar3->counts[1]" (subscript_expression "n->counts[1]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->elems[1] = pnVar3->elems[1];" (assignment_expression "n->elems[1] = pnVar3->elems[1]" (subscript_expression "n->elems[1]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->elems[1]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->kids[2] = pnVar3->kids[2];" (assignment_expression "n->kids[2] = pnVar3->kids[2]" (subscript_expression "n->kids[2]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->kids[2]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "n->counts[2] = pnVar3->counts[2];" (assignment_expression "n->counts[2] = pnVar3->counts[2]" (subscript_expression "n->counts[2]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar3->counts[2]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar3->kids[0] = pnVar7;" (assignment_expression "pnVar3->kids[0] = pnVar7" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->counts[0] = local_50;" (assignment_expression "pnVar3->counts[0] = local_50" (subscript_expression "pnVar3->counts[0]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->elems[0] = local_40;" (assignment_expression "pnVar3->elems[0] = local_40" (subscript_expression "pnVar3->elems[0]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->kids[1] = local_48;" (assignment_expression "pnVar3->kids[1] = local_48" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar3->counts[1] = local_4c;" (assignment_expression "pnVar3->counts[1] = local_4c" (subscript_expression "pnVar3->counts[1]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "local_40 = pnVar3->elems[2];" (assignment_expression "local_40 = pnVar3->elems[2]" identifier = (subscript_expression "pnVar3->elems[2]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ])) ;) }))))))) (expression_statement "pnVar3->kids[2] = (node234 *)0x0;" (assignment_expression "pnVar3->kids[2] = (node234 *)0x0" (subscript_expression "pnVar3->kids[2]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar3->kids[3] = (node234 *)0x0;" (assignment_expression "pnVar3->kids[3] = (node234 *)0x0" (subscript_expression "pnVar3->kids[3]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "n->kids[3] = (node234 *)0x0;" (assignment_expression "n->kids[3] = (node234 *)0x0" (subscript_expression "n->kids[3]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar3->counts[2] = 0;" (assignment_expression "pnVar3->counts[2] = 0" (subscript_expression "pnVar3->counts[2]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "pnVar3->counts[3] = 0;" (assignment_expression "pnVar3->counts[3] = 0" (subscript_expression "pnVar3->counts[3]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "n->counts[3] = 0;" (assignment_expression "n->counts[3] = 0" (subscript_expression "n->counts[3]" (field_expression "n->counts" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "pnVar3->elems[1] = (void *)0x0;" (assignment_expression "pnVar3->elems[1] = (void *)0x0" (subscript_expression "pnVar3->elems[1]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar3->elems[2] = (void *)0x0;" (assignment_expression "pnVar3->elems[2] = (void *)0x0" (subscript_expression "pnVar3->elems[2]" (field_expression "pnVar3->elems" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "n->elems[2] = (void *)0x0;" (assignment_expression "n->elems[2] = (void *)0x0" (subscript_expression "n->elems[2]" (field_expression "n->elems" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (n->kids[0] != (node234 *)0x0) {\n              n->kids[0]->parent = n;\n            }" if (parenthesized_expression "(n->kids[0] != (node234 *)0x0)" ( (binary_expression "n->kids[0] != (node234 *)0x0" (subscript_expression "n->kids[0]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              n->kids[0]->parent = n;\n            }" { (expression_statement "n->kids[0]->parent = n;" (assignment_expression "n->kids[0]->parent = n" (field_expression "n->kids[0]->parent" (subscript_expression "n->kids[0]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (n->kids[1] != (node234 *)0x0) {\n              n->kids[1]->parent = n;\n            }" if (parenthesized_expression "(n->kids[1] != (node234 *)0x0)" ( (binary_expression "n->kids[1] != (node234 *)0x0" (subscript_expression "n->kids[1]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              n->kids[1]->parent = n;\n            }" { (expression_statement "n->kids[1]->parent = n;" (assignment_expression "n->kids[1]->parent = n" (field_expression "n->kids[1]->parent" (subscript_expression "n->kids[1]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (n->kids[2] != (node234 *)0x0) {\n              n->kids[2]->parent = n;\n            }" if (parenthesized_expression "(n->kids[2] != (node234 *)0x0)" ( (binary_expression "n->kids[2] != (node234 *)0x0" (subscript_expression "n->kids[2]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              n->kids[2]->parent = n;\n            }" { (expression_statement "n->kids[2]->parent = n;" (assignment_expression "n->kids[2]->parent = n" (field_expression "n->kids[2]->parent" (subscript_expression "n->kids[2]" (field_expression "n->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar3->kids[0] != (node234 *)0x0) {\n              pnVar3->kids[0]->parent = pnVar3;\n            }" if (parenthesized_expression "(pnVar3->kids[0] != (node234 *)0x0)" ( (binary_expression "pnVar3->kids[0] != (node234 *)0x0" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pnVar3->kids[0]->parent = pnVar3;\n            }" { (expression_statement "pnVar3->kids[0]->parent = pnVar3;" (assignment_expression "pnVar3->kids[0]->parent = pnVar3" (field_expression "pnVar3->kids[0]->parent" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar3->kids[1] != (node234 *)0x0) {\n              pnVar3->kids[1]->parent = pnVar3;\n            }" if (parenthesized_expression "(pnVar3->kids[1] != (node234 *)0x0)" ( (binary_expression "pnVar3->kids[1] != (node234 *)0x0" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pnVar3->kids[1]->parent = pnVar3;\n            }" { (expression_statement "pnVar3->kids[1]->parent = pnVar3;" (assignment_expression "pnVar3->kids[1]->parent = pnVar3" (field_expression "pnVar3->kids[1]->parent" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (expression_statement "local_50 = countnode234(n);" (assignment_expression "local_50 = countnode234(n)" identifier = (call_expression "countnode234(n)" identifier (argument_list "(n)" ( identifier )))) ;) (expression_statement "local_4c = countnode234(pnVar3);" (assignment_expression "local_4c = countnode234(pnVar3)" identifier = (call_expression "countnode234(pnVar3)" identifier (argument_list "(pnVar3)" ( identifier )))) ;) (expression_statement "pnVar5 = pnVar3->parent;" (assignment_expression "pnVar5 = pnVar3->parent" identifier = (field_expression "pnVar3->parent" identifier -> field_identifier)) ;) (if_statement "if (pnVar5 == (node234_conflict *)0x0) goto LAB_0014f1d8;" if (parenthesized_expression "(pnVar5 == (node234_conflict *)0x0)" ( (binary_expression "pnVar5 == (node234_conflict *)0x0" identifier == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0014f1d8;" goto statement_identifier ;)) (if_statement "if (pnVar5->kids[0] == pnVar3) {\n              local_58 = pnVar5->kids;\n            }\n            else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }" if (parenthesized_expression "(pnVar5->kids[0] == pnVar3)" ( (binary_expression "pnVar5->kids[0] == pnVar3" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n              local_58 = pnVar5->kids;\n            }" { (expression_statement "local_58 = pnVar5->kids;" (assignment_expression "local_58 = pnVar5->kids" identifier = (field_expression "pnVar5->kids" identifier -> field_identifier)) ;) }) (else_clause "else if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }" else (if_statement "if (pnVar5->kids[1] == pnVar3) {\n              local_58 = pnVar5->kids + 1;\n            }\n            else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }" if (parenthesized_expression "(pnVar5->kids[1] == pnVar3)" ( (binary_expression "pnVar5->kids[1] == pnVar3" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n              local_58 = pnVar5->kids + 1;\n            }" { (expression_statement "local_58 = pnVar5->kids + 1;" (assignment_expression "local_58 = pnVar5->kids + 1" identifier = (binary_expression "pnVar5->kids + 1" (field_expression "pnVar5->kids" identifier -> field_identifier) + number_literal)) ;) }) (else_clause "else {\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }" else (compound_statement "{\n              local_58 = pnVar5->kids + 3;\n              if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }\n            }" { (expression_statement "local_58 = pnVar5->kids + 3;" (assignment_expression "local_58 = pnVar5->kids + 3" identifier = (binary_expression "pnVar5->kids + 3" (field_expression "pnVar5->kids" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (pnVar5->kids[2] == pnVar3) {\n                local_58 = pnVar5->kids + 2;\n              }" if (parenthesized_expression "(pnVar5->kids[2] == pnVar3)" ( (binary_expression "pnVar5->kids[2] == pnVar3" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n                local_58 = pnVar5->kids + 2;\n              }" { (expression_statement "local_58 = pnVar5->kids + 2;" (assignment_expression "local_58 = pnVar5->kids + 2" identifier = (binary_expression "pnVar5->kids + 2" (field_expression "pnVar5->kids" identifier -> field_identifier) + number_literal)) ;) })) }))))) (expression_statement "pvVar4 = pnVar5->elems[1];" (assignment_expression "pvVar4 = pnVar5->elems[1]" identifier = (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pvVar4 == (void *)0x0) goto LAB_0014ecd0;" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0014ecd0;" goto statement_identifier ;)) (expression_statement "pnVar7 = n;" (assignment_expression "pnVar7 = n" identifier = identifier) ;) (expression_statement "local_48 = pnVar3;" (assignment_expression "local_48 = pnVar3" identifier = identifier) ;) }) while (parenthesized_expression "(pnVar5->elems[2] != (void *)0x0)" ( (binary_expression "pnVar5->elems[2] != (void *)0x0" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (if_statement "if (local_58 == pnVar5->kids) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }\n        else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }" if (parenthesized_expression "(local_58 == pnVar5->kids)" ( (binary_expression "local_58 == pnVar5->kids" identifier == (field_expression "pnVar5->kids" identifier -> field_identifier)) )) (compound_statement "{\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar5->kids[1];\n          pnVar5->counts[2] = pnVar5->counts[1];\n          pnVar5->elems[1] = pnVar5->elems[0];\n          pnVar5->kids[1] = pnVar3;\n          pnVar5->counts[1] = local_4c;\n          pnVar5->elems[0] = local_40;\n          pnVar5->kids[0] = n;\n          pnVar5->counts[0] = local_50;\n        }" { (expression_statement "pnVar5->kids[3] = pnVar5->kids[2];" (assignment_expression "pnVar5->kids[3] = pnVar5->kids[2]" (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->counts[3] = pnVar5->counts[2];" (assignment_expression "pnVar5->counts[3] = pnVar5->counts[2]" (subscript_expression "pnVar5->counts[3]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->elems[2] = pvVar4;" (assignment_expression "pnVar5->elems[2] = pvVar4" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[2] = pnVar5->kids[1];" (assignment_expression "pnVar5->kids[2] = pnVar5->kids[1]" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->counts[2] = pnVar5->counts[1];" (assignment_expression "pnVar5->counts[2] = pnVar5->counts[1]" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->elems[1] = pnVar5->elems[0];" (assignment_expression "pnVar5->elems[1] = pnVar5->elems[0]" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->kids[1] = pnVar3;" (assignment_expression "pnVar5->kids[1] = pnVar3" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[1] = local_4c;" (assignment_expression "pnVar5->counts[1] = local_4c" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->elems[0] = local_40;" (assignment_expression "pnVar5->elems[0] = local_40" (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[0] = n;" (assignment_expression "pnVar5->kids[0] = n" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[0] = local_50;" (assignment_expression "pnVar5->counts[0] = local_50" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) }) (else_clause "else if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }" else (if_statement "if (local_58 == pnVar5->kids + 1) {\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }\n        else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }" if (parenthesized_expression "(local_58 == pnVar5->kids + 1)" ( (binary_expression "local_58 == pnVar5->kids + 1" identifier == (binary_expression "pnVar5->kids + 1" (field_expression "pnVar5->kids" identifier -> field_identifier) + number_literal)) )) (compound_statement "{\n          pnVar5->kids[3] = pnVar5->kids[2];\n          pnVar5->counts[3] = pnVar5->counts[2];\n          pnVar5->elems[2] = pvVar4;\n          pnVar5->kids[2] = pnVar3;\n          pnVar5->counts[2] = local_4c;\n          pnVar5->elems[1] = local_40;\n          pnVar5->kids[1] = n;\n          pnVar5->counts[1] = local_50;\n        }" { (expression_statement "pnVar5->kids[3] = pnVar5->kids[2];" (assignment_expression "pnVar5->kids[3] = pnVar5->kids[2]" (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->counts[3] = pnVar5->counts[2];" (assignment_expression "pnVar5->counts[3] = pnVar5->counts[2]" (subscript_expression "pnVar5->counts[3]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar5->elems[2] = pvVar4;" (assignment_expression "pnVar5->elems[2] = pvVar4" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[2] = pnVar3;" (assignment_expression "pnVar5->kids[2] = pnVar3" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[2] = local_4c;" (assignment_expression "pnVar5->counts[2] = local_4c" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->elems[1] = local_40;" (assignment_expression "pnVar5->elems[1] = local_40" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[1] = n;" (assignment_expression "pnVar5->kids[1] = n" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[1] = local_50;" (assignment_expression "pnVar5->counts[1] = local_50" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }" else (compound_statement "{\n          pnVar5->kids[3] = pnVar3;\n          pnVar5->counts[3] = local_4c;\n          pnVar5->elems[2] = local_40;\n          pnVar5->kids[2] = n;\n          pnVar5->counts[2] = local_50;\n        }" { (expression_statement "pnVar5->kids[3] = pnVar3;" (assignment_expression "pnVar5->kids[3] = pnVar3" (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[3] = local_4c;" (assignment_expression "pnVar5->counts[3] = local_4c" (subscript_expression "pnVar5->counts[3]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->elems[2] = local_40;" (assignment_expression "pnVar5->elems[2] = local_40" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->kids[2] = n;" (assignment_expression "pnVar5->kids[2] = n" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar5->counts[2] = local_50;" (assignment_expression "pnVar5->counts[2] = local_50" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) }))))) (if_statement "if (pnVar5->kids[0] != (node234 *)0x0) {\n          pnVar5->kids[0]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[0] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[0] != (node234 *)0x0" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[0]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[0]->parent = pnVar5;" (assignment_expression "pnVar5->kids[0]->parent = pnVar5" (field_expression "pnVar5->kids[0]->parent" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar5->kids[1] != (node234 *)0x0) {\n          pnVar5->kids[1]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[1] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[1] != (node234 *)0x0" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[1]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[1]->parent = pnVar5;" (assignment_expression "pnVar5->kids[1]->parent = pnVar5" (field_expression "pnVar5->kids[1]->parent" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar5->kids[2] != (node234 *)0x0) {\n          pnVar5->kids[2]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[2] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[2] != (node234 *)0x0" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[2]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[2]->parent = pnVar5;" (assignment_expression "pnVar5->kids[2]->parent = pnVar5" (field_expression "pnVar5->kids[2]->parent" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) (if_statement "if (pnVar5->kids[3] != (node234 *)0x0) {\n          pnVar5->kids[3]->parent = pnVar5;\n        }" if (parenthesized_expression "(pnVar5->kids[3] != (node234 *)0x0)" ( (binary_expression "pnVar5->kids[3] != (node234 *)0x0" (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar5->kids[3]->parent = pnVar5;\n        }" { (expression_statement "pnVar5->kids[3]->parent = pnVar5;" (assignment_expression "pnVar5->kids[3]->parent = pnVar5" (field_expression "pnVar5->kids[3]->parent" (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) -> field_identifier) = identifier) ;) })) }))) (expression_statement "pnVar3 = pnVar5->parent;" (assignment_expression "pnVar3 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;) (while_statement "while (pnVar3 != (node234_conflict *)0x0) {\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }" while (parenthesized_expression "(pnVar3 != (node234_conflict *)0x0)" ( (binary_expression "pnVar3 != (node234_conflict *)0x0" identifier != (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = countnode234(pnVar5);\n        iVar6 = 0;\n        if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }\n        pnVar3->counts[iVar6] = iVar2;\n        pnVar5 = pnVar5->parent;\n        pnVar3 = pnVar5->parent;\n      }" { (expression_statement "iVar2 = countnode234(pnVar5);" (assignment_expression "iVar2 = countnode234(pnVar5)" identifier = (call_expression "countnode234(pnVar5)" identifier (argument_list "(pnVar5)" ( identifier )))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)) {\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }" if (parenthesized_expression "((pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5))" ( (binary_expression "(pnVar3->kids[0] != pnVar5) && (iVar6 = 1, pnVar3->kids[1] != pnVar5)" (parenthesized_expression "(pnVar3->kids[0] != pnVar5)" ( (binary_expression "pnVar3->kids[0] != pnVar5" (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) != identifier) )) && (parenthesized_expression "(iVar6 = 1, pnVar3->kids[1] != pnVar5)" ( (comma_expression "iVar6 = 1, pnVar3->kids[1] != pnVar5" (assignment_expression "iVar6 = 1" identifier = number_literal) , (binary_expression "pnVar3->kids[1] != pnVar5" (subscript_expression "pnVar3->kids[1]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) != identifier)) ))) )) (compound_statement "{\n          iVar6 = (pnVar3->kids[2] != pnVar5) + 2;\n        }" { (expression_statement "iVar6 = (pnVar3->kids[2] != pnVar5) + 2;" (assignment_expression "iVar6 = (pnVar3->kids[2] != pnVar5) + 2" identifier = (binary_expression "(pnVar3->kids[2] != pnVar5) + 2" (parenthesized_expression "(pnVar3->kids[2] != pnVar5)" ( (binary_expression "pnVar3->kids[2] != pnVar5" (subscript_expression "pnVar3->kids[2]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ]) != identifier) )) + number_literal)) ;) })) (expression_statement "pnVar3->counts[iVar6] = iVar2;" (assignment_expression "pnVar3->counts[iVar6] = iVar2" (subscript_expression "pnVar3->counts[iVar6]" (field_expression "pnVar3->counts" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "pnVar5 = pnVar5->parent;" (assignment_expression "pnVar5 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;) (expression_statement "pnVar3 = pnVar5->parent;" (assignment_expression "pnVar3 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;) })) }))) }))) (return_statement "return e;" return identifier ;) })))
(translation_unit "long FUN_0014eaaa(long *param_1,long param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}\n\n" (function_definition "long FUN_0014eaaa(long *param_1,long param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0014eaaa(long *param_1,long param_2,int param_3)" identifier (parameter_list "(long *param_1,long param_2,int param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "long *local_48;" (sized_type_specifier "long" long) (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }" { (expression_statement "lVar3 = FUN_0010ea3d(1,0x50);" (assignment_expression "lVar3 = FUN_0010ea3d(1,0x50)" identifier = (call_expression "FUN_0010ea3d(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal )))) ;) (expression_statement "*param_1 = lVar3;" (assignment_expression "*param_1 = lVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x48) = 0;" (assignment_expression "*(undefined8 *)(lVar3 + 0x48) = 0" (pointer_expression "*(undefined8 *)(lVar3 + 0x48)" * (cast_expression "(undefined8 *)(lVar3 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x48)" ( (binary_expression "lVar3 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x40) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x40) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x40)" * (cast_expression "(undefined8 *)(*param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x40)" ( (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x10) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x10) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x10)" * (cast_expression "(undefined8 *)(*param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 8) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 8) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 8)" * (cast_expression "(undefined8 *)(*param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x20) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x20) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x20)" * (cast_expression "(undefined8 *)(*param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x18)" * (cast_expression "(undefined8 *)(*param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x2c)" * (cast_expression "(undefined4 *)(*param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x2c)" ( (binary_expression "*param_1 + 0x2c" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x28)" * (cast_expression "(undefined4 *)(*param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x28)" ( (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x34)" * (cast_expression "(undefined4 *)(*param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x34)" ( (binary_expression "*param_1 + 0x34" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x30)" * (cast_expression "(undefined4 *)(*param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)*param_1 = 0;" (assignment_expression "*(undefined8 *)*param_1 = 0" (pointer_expression "*(undefined8 *)*param_1" * (cast_expression "(undefined8 *)*param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) = number_literal) ;) (expression_statement "*(long *)(*param_1 + 0x38) = param_2;" (assignment_expression "*(long *)(*param_1 + 0x38) = param_2" (pointer_expression "*(long *)(*param_1 + 0x38)" * (cast_expression "(long *)(*param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x38)" ( (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" else (compound_statement "{\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" { (expression_statement "plVar5 = (long *)*param_1;" (assignment_expression "plVar5 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (if_statement "if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" if (parenthesized_expression "(plVar5 == (long *)0x0)" ( (binary_expression "plVar5 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);" statement_identifier : (expression_statement "lVar3 = FUN_0010ea3d(1,0x50);" (assignment_expression "lVar3 = FUN_0010ea3d(1,0x50)" identifier = (call_expression "FUN_0010ea3d(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal )))) ;)) (expression_statement "*param_1 = lVar3;" (assignment_expression "*param_1 = lVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(long **)(lVar3 + 8) = plVar2;" (assignment_expression "*(long **)(lVar3 + 8) = plVar2" (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x28) = local_50;" (assignment_expression "*(undefined4 *)(*param_1 + 0x28) = local_50" (pointer_expression "*(undefined4 *)(*param_1 + 0x28)" * (cast_expression "(undefined4 *)(*param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x28)" ( (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(*param_1 + 0x38) = local_40;" (assignment_expression "*(long *)(*param_1 + 0x38) = local_40" (pointer_expression "*(long *)(*param_1 + 0x38)" * (cast_expression "(long *)(*param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x38)" ( (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(long **)(*param_1 + 0x10) = plVar5;" (assignment_expression "*(long **)(*param_1 + 0x10) = plVar5" (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)(*param_1 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)(*param_1 + 0x2c)" * (cast_expression "(undefined4 *)(*param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x2c)" ( (binary_expression "*param_1 + 0x2c" (pointer_expression "*param_1" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x40) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x40) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x40)" * (cast_expression "(undefined8 *)(*param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x40)" ( (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x18)" * (cast_expression "(undefined8 *)(*param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x30)" * (cast_expression "(undefined4 *)(*param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x48) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x48) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x48)" * (cast_expression "(undefined8 *)(*param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x48)" ( (binary_expression "*param_1 + 0x48" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(*param_1 + 0x20) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x20) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x20)" * (cast_expression "(undefined8 *)(*param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(*param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x34)" * (cast_expression "(undefined4 *)(*param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x34)" ( (binary_expression "*param_1 + 0x34" (pointer_expression "*param_1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)*param_1 = 0;" (assignment_expression "*(undefined8 *)*param_1 = 0" (pointer_expression "*(undefined8 *)*param_1" * (cast_expression "(undefined8 *)*param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) = number_literal) ;) (expression_statement "plVar5 = *(long **)(*param_1 + 8);" (assignment_expression "plVar5 = *(long **)(*param_1 + 8)" identifier = (pointer_expression "*(long **)(*param_1 + 8)" * (cast_expression "(long **)(*param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }" if (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *plVar5 = *param_1;\n      }" { (expression_statement "*plVar5 = *param_1;" (assignment_expression "*plVar5 = *param_1" (pointer_expression "*plVar5" * identifier) = (pointer_expression "*param_1" * identifier)) ;) })) (expression_statement "plVar5 = *(long **)(*param_1 + 0x10);" (assignment_expression "plVar5 = *(long **)(*param_1 + 0x10)" identifier = (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }" if (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *plVar5 = *param_1;\n      }" { (expression_statement "*plVar5 = *param_1;" (assignment_expression "*plVar5 = *param_1" (pointer_expression "*plVar5" * identifier) = (pointer_expression "*param_1" * identifier)) ;) })) }) (else_clause "else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" else (compound_statement "{\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" { (do_statement "do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);" do (compound_statement "{\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      }" { (expression_statement "plVar7 = plVar5;" (assignment_expression "plVar7 = plVar5" identifier = identifier) ;) (if_statement "if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2,plVar7[7])" identifier = (call_expression "(*(code *)param_1[1])(param_2,plVar7[7])" (parenthesized_expression "(*(code *)param_1[1])" ( (pointer_expression "*(code *)param_1[1]" * (cast_expression "(code *)param_1[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (argument_list "(param_2,plVar7[7])" ( identifier , (subscript_expression "plVar7[7]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 0;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" { (if_statement "if (iVar4 == 0) {\n              return plVar7[7];\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              return plVar7[7];\n            }" { (return_statement "return plVar7[7];" return (subscript_expression "plVar7[7]" identifier [ number_literal ]) ;) })) (if_statement "if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(plVar7[8] == 0)" ( (binary_expression "plVar7[8] == 0" (subscript_expression "plVar7[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              iVar4 = 1;\n            }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" { (expression_statement "iVar4 = (*(code *)param_1[1])(param_2);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2)" identifier = (call_expression "(*(code *)param_1[1])(param_2)" (parenthesized_expression "(*(code *)param_1[1])" ( (pointer_expression "*(code *)param_1[1]" * (cast_expression "(code *)param_1[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar4 = 1;\n              }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" else (compound_statement "{\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" { (if_statement "if (iVar4 == 0) {\n                  return plVar7[8];\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  return plVar7[8];\n                }" { (return_statement "return plVar7[8];" return (subscript_expression "plVar7[8]" identifier [ number_literal ]) ;) })) (if_statement "if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" if (parenthesized_expression "(plVar7[9] == 0)" ( (binary_expression "plVar7[9] == 0" (subscript_expression "plVar7[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  iVar4 = 2;\n                }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" else (compound_statement "{\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" { (expression_statement "iVar4 = (*(code *)param_1[1])(param_2);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2)" identifier = (call_expression "(*(code *)param_1[1])(param_2)" (parenthesized_expression "(*(code *)param_1[1])" ( (pointer_expression "*(code *)param_1[1]" * (cast_expression "(code *)param_1[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                    iVar4 = 2;\n                  }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" else (compound_statement "{\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" { (if_statement "if (iVar4 == 0) {\n                      return plVar7[9];\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      return plVar7[9];\n                    }" { (return_statement "return plVar7[9];" return (subscript_expression "plVar7[9]" identifier [ number_literal ]) ;) })) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) }))) }))) }))) }))) }))) }) (else_clause "else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" { (expression_statement "iVar4 = param_3;" (assignment_expression "iVar4 = param_3" identifier = identifier) ;) (if_statement "if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }" if (parenthesized_expression "(plVar7[1] != 0)" ( (binary_expression "plVar7[1] != 0" (subscript_expression "plVar7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }" { (if_statement "if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }" if (parenthesized_expression "((int)plVar7[5] < param_3)" ( (binary_expression "(int)plVar7[5] < param_3" (cast_expression "(int)plVar7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[5]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }" { (expression_statement "param_3 = param_3 - ((int)plVar7[5] + 1);" (assignment_expression "param_3 = param_3 - ((int)plVar7[5] + 1)" identifier = (binary_expression "param_3 - ((int)plVar7[5] + 1)" identifier - (parenthesized_expression "((int)plVar7[5] + 1)" ( (binary_expression "(int)plVar7[5] + 1" (cast_expression "(int)plVar7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[5]" identifier [ number_literal ])) + number_literal) )))) ;) (if_statement "if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }" if (parenthesized_expression "(*(int *)((long)plVar7 + 0x2c) < param_3)" ( (binary_expression "*(int *)((long)plVar7 + 0x2c) < param_3" (pointer_expression "*(int *)((long)plVar7 + 0x2c)" * (cast_expression "(int *)((long)plVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < identifier) )) (compound_statement "{\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }" { (expression_statement "param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);" (assignment_expression "param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1)" identifier = (binary_expression "param_3 - (*(int *)((long)plVar7 + 0x2c) + 1)" identifier - (parenthesized_expression "(*(int *)((long)plVar7 + 0x2c) + 1)" ( (binary_expression "*(int *)((long)plVar7 + 0x2c) + 1" (pointer_expression "*(int *)((long)plVar7 + 0x2c)" * (cast_expression "(int *)((long)plVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }" if (parenthesized_expression "((int)plVar7[6] < param_3)" ( (binary_expression "(int)plVar7[6] < param_3" (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }" { (expression_statement "param_3 = param_3 - ((int)plVar7[6] + 1);" (assignment_expression "param_3 = param_3 - ((int)plVar7[6] + 1)" identifier = (binary_expression "param_3 - ((int)plVar7[6] + 1)" identifier - (parenthesized_expression "((int)plVar7[6] + 1)" ( (binary_expression "(int)plVar7[6] + 1" (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ])) + number_literal) )))) ;) (if_statement "if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }" if (parenthesized_expression "(*(int *)((long)plVar7 + 0x34) < param_3)" ( (binary_expression "*(int *)((long)plVar7 + 0x34) < param_3" (pointer_expression "*(int *)((long)plVar7 + 0x34)" * (cast_expression "(int *)((long)plVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < identifier) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar4 = 2;\n                }" else (compound_statement "{\n                  iVar4 = 2;\n                }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n                iVar4 = 1;\n              }" else (compound_statement "{\n                iVar4 = 1;\n              }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n              iVar4 = 0;\n            }" else (compound_statement "{\n              iVar4 = 0;\n            }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }))) })) }))) (expression_statement "plVar5 = (long *)plVar7[(long)iVar4 + 1];" (assignment_expression "plVar5 = (long *)plVar7[(long)iVar4 + 1]" identifier = (cast_expression "(long *)plVar7[(long)iVar4 + 1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[(long)iVar4 + 1]" identifier [ (binary_expression "(long)iVar4 + 1" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]))) ;) }) while (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_58 = plVar7 + (long)iVar4 + 1;" (assignment_expression "local_58 = plVar7 + (long)iVar4 + 1" identifier = (binary_expression "plVar7 + (long)iVar4 + 1" (binary_expression "plVar7 + (long)iVar4" identifier + (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + number_literal)) ;) (expression_statement "lVar3 = plVar7[8];" (assignment_expression "lVar3 = plVar7[8]" identifier = (subscript_expression "plVar7[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar5 = (long *)0x0;" (assignment_expression "plVar5 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" statement_identifier : (if_statement "if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" if (parenthesized_expression "(local_58 == plVar7 + 1)" ( (binary_expression "local_58 == plVar7 + 1" identifier == (binary_expression "plVar7 + 1" identifier + number_literal)) )) (compound_statement "{\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }" { (expression_statement "plVar7[3] = plVar7[2];" (assignment_expression "plVar7[3] = plVar7[2]" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (subscript_expression "plVar7[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar7[8] = plVar7[7];" (assignment_expression "plVar7[8] = plVar7[7]" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = (subscript_expression "plVar7[7]" identifier [ number_literal ])) ;) (expression_statement "plVar7[2] = (long)plVar5;" (assignment_expression "plVar7[2] = (long)plVar5" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar7[7] = local_40;" (assignment_expression "plVar7[7] = local_40" (subscript_expression "plVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[1] = (long)plVar2;" (assignment_expression "plVar7[1] = (long)plVar2" (subscript_expression "plVar7[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 5)" * (cast_expression "(undefined4 *)(plVar7 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 5)" ( (binary_expression "plVar7 + 5" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" else (compound_statement "{\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" { (expression_statement "plVar7[3] = (long)plVar5;" (assignment_expression "plVar7[3] = (long)plVar5" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar7[8] = local_40;" (assignment_expression "plVar7[8] = local_40" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[2] = (long)plVar2;" (assignment_expression "plVar7[2] = (long)plVar2" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) })))) (if_statement "if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[1] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[1] = plVar7" (pointer_expression "*(undefined8 *)plVar7[1]" * (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[2] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[2] = plVar7" (pointer_expression "*(undefined8 *)plVar7[2]" * (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[3] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[3] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[3] = plVar7" (pointer_expression "*(undefined8 *)plVar7[3]" * (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ]))) = identifier) ;) })) }) (else_clause "else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" else (compound_statement "{\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" { (if_statement "if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" if (parenthesized_expression "(plVar7[9] == 0)" ( (binary_expression "plVar7[9] == 0" (subscript_expression "plVar7[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar5 = (long *)0x0;" (assignment_expression "plVar5 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" else (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "plVar6 = (long *)0x0;" (assignment_expression "plVar6 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = plVar5;" (assignment_expression "local_48 = plVar5" identifier = identifier) ;) (do_statement "do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);" do (compound_statement "{\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          }" { (expression_statement "plVar5 = plVar7;" (assignment_expression "plVar5 = plVar7" identifier = identifier) ;) (expression_statement "plVar2 = (long *)FUN_0010ea3d(1,0x50);" (assignment_expression "plVar2 = (long *)FUN_0010ea3d(1,0x50)" identifier = (cast_expression "(long *)FUN_0010ea3d(1,0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010ea3d(1,0x50)" identifier (argument_list "(1,0x50)" ( number_literal , number_literal ))))) ;) (expression_statement "*plVar2 = *plVar5;" (assignment_expression "*plVar2 = *plVar5" (pointer_expression "*plVar2" * identifier) = (pointer_expression "*plVar5" * identifier)) ;) (if_statement "if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" if (parenthesized_expression "(local_58 == plVar5 + 1)" ( (binary_expression "local_58 == plVar5 + 1" identifier == (binary_expression "plVar5 + 1" identifier + number_literal)) )) (compound_statement "{\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" { (expression_statement "plVar2[1] = (long)plVar6;" (assignment_expression "plVar2[1] = (long)plVar6" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar2 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar2 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar2 + 5)" * (cast_expression "(undefined4 *)(plVar2 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar2[7] = local_40;" (assignment_expression "plVar2[7] = local_40" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar2[2] = (long)local_48;" (assignment_expression "plVar2[2] = (long)local_48" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar2[8] = plVar5[7];" (assignment_expression "plVar2[8] = plVar5[7]" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[3] = plVar5[2];" (assignment_expression "plVar2[3] = plVar5[2]" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (subscript_expression "plVar5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar2 + 6)" * (cast_expression "(undefined4 *)(plVar2 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "local_40 = plVar5[8];" (assignment_expression "local_40 = plVar5[8]" identifier = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar5[1] = plVar5[3];" (assignment_expression "plVar5[1] = plVar5[3]" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar5 + 5) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar5 + 5) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar5 + 5)" * (cast_expression "(int *)(plVar5 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" else (if_statement "if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" if (parenthesized_expression "(local_58 == plVar5 + 2)" ( (binary_expression "local_58 == plVar5 + 2" identifier == (binary_expression "plVar5 + 2" identifier + number_literal)) )) (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" { (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" * (cast_expression "(int *)(plVar2 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[2] = (long)plVar6;" (assignment_expression "plVar2[2] = (long)plVar6" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar2[8] = local_40;" (assignment_expression "plVar2[8] = local_40" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar2[3] = (long)local_48;" (assignment_expression "plVar2[3] = (long)local_48" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar2 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar2 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar2 + 6)" * (cast_expression "(undefined4 *)(plVar2 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_40 = plVar5[8];" (assignment_expression "local_40 = plVar5[8]" identifier = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar5[1] = plVar5[3];" (assignment_expression "plVar5[1] = plVar5[3]" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar5 + 5) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar5 + 5) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar5 + 5)" * (cast_expression "(int *)(plVar5 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" else (if_statement "if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" if (parenthesized_expression "(local_58 == plVar5 + 3)" ( (binary_expression "local_58 == plVar5 + 3" identifier == (binary_expression "plVar5 + 3" identifier + number_literal)) )) (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" { (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" * (cast_expression "(int *)(plVar2 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[2] = plVar5[2];" (assignment_expression "plVar2[2] = plVar5[2]" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar2[8] = plVar5[8];" (assignment_expression "plVar2[8] = plVar5[8]" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar2[3] = (long)plVar6;" (assignment_expression "plVar2[3] = (long)plVar6" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar2 + 6) = local_50;" (assignment_expression "*(undefined4 *)(plVar2 + 6) = local_50" (pointer_expression "*(undefined4 *)(plVar2 + 6)" * (cast_expression "(undefined4 *)(plVar2 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar5[1] = (long)local_48;" (assignment_expression "plVar5[1] = (long)local_48" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar5 + 5) = local_4c;" (assignment_expression "*(undefined4 *)(plVar5 + 5) = local_4c" (pointer_expression "*(undefined4 *)(plVar5 + 5)" * (cast_expression "(undefined4 *)(plVar5 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" else (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" { (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" * (cast_expression "(int *)(plVar2 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 5)" ( (binary_expression "plVar2 + 5" identifier + number_literal) )))) = (cast_expression "(int)plVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" identifier [ number_literal ]) = (subscript_expression "plVar5[7]" identifier [ number_literal ])) ;) (expression_statement "plVar2[2] = plVar5[2];" (assignment_expression "plVar2[2] = plVar5[2]" (subscript_expression "plVar2[2]" identifier [ number_literal ]) = (subscript_expression "plVar5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x2c)" ( (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar2[8] = plVar5[8];" (assignment_expression "plVar2[8] = plVar5[8]" (subscript_expression "plVar2[8]" identifier [ number_literal ]) = (subscript_expression "plVar5[8]" identifier [ number_literal ])) ;) (expression_statement "plVar2[3] = plVar5[3];" (assignment_expression "plVar2[3] = plVar5[3]" (subscript_expression "plVar2[3]" identifier [ number_literal ]) = (subscript_expression "plVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(plVar2 + 6) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar2 + 6) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar2 + 6)" * (cast_expression "(int *)(plVar2 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 6)" ( (binary_expression "plVar2 + 6" identifier + number_literal) )))) = (cast_expression "(int)plVar5[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar5[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar5[1] = (long)plVar6;" (assignment_expression "plVar5[1] = (long)plVar6" (subscript_expression "plVar5[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar5 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar5 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar5 + 5)" * (cast_expression "(undefined4 *)(plVar5 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 5)" ( (binary_expression "plVar5 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar5[7] = local_40;" (assignment_expression "plVar5[7] = local_40" (subscript_expression "plVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar5[2] = (long)local_48;" (assignment_expression "plVar5[2] = (long)local_48" (subscript_expression "plVar5[2]" identifier [ number_literal ]) = (cast_expression "(long)local_48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x2c)" ( (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_40 = plVar5[9];" (assignment_expression "local_40 = plVar5[9]" identifier = (subscript_expression "plVar5[9]" identifier [ number_literal ])) ;) }))))))) (expression_statement "plVar5[3] = 0;" (assignment_expression "plVar5[3] = 0" (subscript_expression "plVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar5[4] = 0;" (assignment_expression "plVar5[4] = 0" (subscript_expression "plVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar2[4] = 0;" (assignment_expression "plVar2[4] = 0" (subscript_expression "plVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(plVar5 + 6) = 0;" (assignment_expression "*(undefined4 *)(plVar5 + 6) = 0" (pointer_expression "*(undefined4 *)(plVar5 + 6)" * (cast_expression "(undefined4 *)(plVar5 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar5 + 6)" ( (binary_expression "plVar5 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)plVar5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x34) = 0" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar5 + 0x34)" ( (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)plVar2 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x34) = 0" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x34)" ( (binary_expression "(long)plVar2 + 0x34" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "plVar5[8] = 0;" (assignment_expression "plVar5[8] = 0" (subscript_expression "plVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar5[9] = 0;" (assignment_expression "plVar5[9] = 0" (subscript_expression "plVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar2[9] = 0;" (assignment_expression "plVar2[9] = 0" (subscript_expression "plVar2[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }" if (parenthesized_expression "((undefined8 *)plVar2[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar2[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar2[1] = plVar2;\n            }" { (expression_statement "*(undefined8 *)plVar2[1] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[1] = plVar2" (pointer_expression "*(undefined8 *)plVar2[1]" * (cast_expression "(undefined8 *)plVar2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }" if (parenthesized_expression "((undefined8 *)plVar2[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar2[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar2[2] = plVar2;\n            }" { (expression_statement "*(undefined8 *)plVar2[2] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[2] = plVar2" (pointer_expression "*(undefined8 *)plVar2[2]" * (cast_expression "(undefined8 *)plVar2[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }" if (parenthesized_expression "((undefined8 *)plVar2[3] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar2[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar2[3] = plVar2;\n            }" { (expression_statement "*(undefined8 *)plVar2[3] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[3] = plVar2" (pointer_expression "*(undefined8 *)plVar2[3]" * (cast_expression "(undefined8 *)plVar2[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }" if (parenthesized_expression "((undefined8 *)plVar5[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar5[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar5[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar5[1] = plVar5;\n            }" { (expression_statement "*(undefined8 *)plVar5[1] = plVar5;" (assignment_expression "*(undefined8 *)plVar5[1] = plVar5" (pointer_expression "*(undefined8 *)plVar5[1]" * (cast_expression "(undefined8 *)plVar5[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }" if (parenthesized_expression "((undefined8 *)plVar5[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar5[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar5[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined8 *)plVar5[2] = plVar5;\n            }" { (expression_statement "*(undefined8 *)plVar5[2] = plVar5;" (assignment_expression "*(undefined8 *)plVar5[2] = plVar5" (pointer_expression "*(undefined8 *)plVar5[2]" * (cast_expression "(undefined8 *)plVar5[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[2]" identifier [ number_literal ]))) = identifier) ;) })) (expression_statement "local_50 = FUN_0014ea7a(plVar2);" (assignment_expression "local_50 = FUN_0014ea7a(plVar2)" identifier = (call_expression "FUN_0014ea7a(plVar2)" identifier (argument_list "(plVar2)" ( identifier )))) ;) (expression_statement "local_4c = FUN_0014ea7a(plVar5);" (assignment_expression "local_4c = FUN_0014ea7a(plVar5)" identifier = (call_expression "FUN_0014ea7a(plVar5)" identifier (argument_list "(plVar5)" ( identifier )))) ;) (expression_statement "plVar7 = (long *)*plVar5;" (assignment_expression "plVar7 = (long *)*plVar5" identifier = (cast_expression "(long *)*plVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar5" * identifier))) ;) (if_statement "if (plVar7 == (long *)0x0) goto LAB_0014f1d8;" if (parenthesized_expression "(plVar7 == (long *)0x0)" ( (binary_expression "plVar7 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0014f1d8;" goto statement_identifier ;)) (if_statement "if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" if (parenthesized_expression "((long *)plVar7[1] == plVar5)" ( (binary_expression "(long *)plVar7[1] == plVar5" (cast_expression "(long *)plVar7[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              local_58 = plVar7 + 1;\n            }" { (expression_statement "local_58 = plVar7 + 1;" (assignment_expression "local_58 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ;) }) (else_clause "else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" else (if_statement "if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" if (parenthesized_expression "((long *)plVar7[2] == plVar5)" ( (binary_expression "(long *)plVar7[2] == plVar5" (cast_expression "(long *)plVar7[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              local_58 = plVar7 + 2;\n            }" { (expression_statement "local_58 = plVar7 + 2;" (assignment_expression "local_58 = plVar7 + 2" identifier = (binary_expression "plVar7 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" else (compound_statement "{\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" { (expression_statement "local_58 = plVar7 + 4;" (assignment_expression "local_58 = plVar7 + 4" identifier = (binary_expression "plVar7 + 4" identifier + number_literal)) ;) (if_statement "if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }" if (parenthesized_expression "((long *)plVar7[3] == plVar5)" ( (binary_expression "(long *)plVar7[3] == plVar5" (cast_expression "(long *)plVar7[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n                local_58 = plVar7 + 3;\n              }" { (expression_statement "local_58 = plVar7 + 3;" (assignment_expression "local_58 = plVar7 + 3" identifier = (binary_expression "plVar7 + 3" identifier + number_literal)) ;) })) }))))) (expression_statement "lVar3 = plVar7[8];" (assignment_expression "lVar3 = plVar7[8]" identifier = (subscript_expression "plVar7[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar3 == 0) goto LAB_0014ecd0;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0014ecd0;" goto statement_identifier ;)) (expression_statement "plVar6 = plVar2;" (assignment_expression "plVar6 = plVar2" identifier = identifier) ;) (expression_statement "local_48 = plVar5;" (assignment_expression "local_48 = plVar5" identifier = identifier) ;) }) while (parenthesized_expression "(plVar7[9] != 0)" ( (binary_expression "plVar7[9] != 0" (subscript_expression "plVar7[9]" identifier [ number_literal ]) != number_literal) )) ;) }))) (if_statement "if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" if (parenthesized_expression "(local_58 == plVar7 + 1)" ( (binary_expression "local_58 == plVar7 + 1" identifier == (binary_expression "plVar7 + 1" identifier + number_literal)) )) (compound_statement "{\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }" { (expression_statement "plVar7[4] = plVar7[3];" (assignment_expression "plVar7[4] = plVar7[3]" (subscript_expression "plVar7[4]" identifier [ number_literal ]) = (subscript_expression "plVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6];" (assignment_expression "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6]" (pointer_expression "*(int *)((long)plVar7 + 0x34)" * (cast_expression "(int *)((long)plVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar7[9] = lVar3;" (assignment_expression "plVar7[9] = lVar3" (subscript_expression "plVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[3] = plVar7[2];" (assignment_expression "plVar7[3] = plVar7[2]" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (subscript_expression "plVar7[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "plVar7[8] = plVar7[7];" (assignment_expression "plVar7[8] = plVar7[7]" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = (subscript_expression "plVar7[7]" identifier [ number_literal ])) ;) (expression_statement "plVar7[2] = (long)plVar5;" (assignment_expression "plVar7[2] = (long)plVar5" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar7[7] = local_40;" (assignment_expression "plVar7[7] = local_40" (subscript_expression "plVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[1] = (long)plVar2;" (assignment_expression "plVar7[1] = (long)plVar2" (subscript_expression "plVar7[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 5)" * (cast_expression "(undefined4 *)(plVar7 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 5)" ( (binary_expression "plVar7 + 5" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" else (if_statement "if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" if (parenthesized_expression "(local_58 == plVar7 + 2)" ( (binary_expression "local_58 == plVar7 + 2" identifier == (binary_expression "plVar7 + 2" identifier + number_literal)) )) (compound_statement "{\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" { (expression_statement "plVar7[4] = plVar7[3];" (assignment_expression "plVar7[4] = plVar7[3]" (subscript_expression "plVar7[4]" identifier [ number_literal ]) = (subscript_expression "plVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6];" (assignment_expression "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6]" (pointer_expression "*(int *)((long)plVar7 + 0x34)" * (cast_expression "(int *)((long)plVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(int)plVar7[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar7[6]" identifier [ number_literal ]))) ;) (expression_statement "plVar7[9] = lVar3;" (assignment_expression "plVar7[9] = lVar3" (subscript_expression "plVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[3] = (long)plVar5;" (assignment_expression "plVar7[3] = (long)plVar5" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar7[8] = local_40;" (assignment_expression "plVar7[8] = local_40" (subscript_expression "plVar7[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[2] = (long)plVar2;" (assignment_expression "plVar7[2] = (long)plVar2" (subscript_expression "plVar7[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x2c)" ( (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" else (compound_statement "{\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" { (expression_statement "plVar7[4] = (long)plVar5;" (assignment_expression "plVar7[4] = (long)plVar5" (subscript_expression "plVar7[4]" identifier [ number_literal ]) = (cast_expression "(long)plVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)((long)plVar7 + 0x34) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x34) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x34)" * (cast_expression "(undefined4 *)((long)plVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + 0x34)" ( (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "plVar7[9] = local_40;" (assignment_expression "plVar7[9] = local_40" (subscript_expression "plVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar7[3] = (long)plVar2;" (assignment_expression "plVar7[3] = (long)plVar2" (subscript_expression "plVar7[3]" identifier [ number_literal ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 6)" * (cast_expression "(undefined4 *)(plVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 6)" ( (binary_expression "plVar7 + 6" identifier + number_literal) )))) = identifier) ;) }))))) (if_statement "if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[1] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[1] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[1] = plVar7" (pointer_expression "*(undefined8 *)plVar7[1]" * (cast_expression "(undefined8 *)plVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[1]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[2] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[2] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[2] = plVar7" (pointer_expression "*(undefined8 *)plVar7[2]" * (cast_expression "(undefined8 *)plVar7[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[2]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[3] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[3] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[3] = plVar7" (pointer_expression "*(undefined8 *)plVar7[3]" * (cast_expression "(undefined8 *)plVar7[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[3]" identifier [ number_literal ]))) = identifier) ;) })) (if_statement "if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }" if (parenthesized_expression "((undefined8 *)plVar7[4] != (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)plVar7[4] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[4]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[4]" identifier [ number_literal ])) != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined8 *)plVar7[4] = plVar7;\n        }" { (expression_statement "*(undefined8 *)plVar7[4] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[4] = plVar7" (pointer_expression "*(undefined8 *)plVar7[4]" * (cast_expression "(undefined8 *)plVar7[4]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar7[4]" identifier [ number_literal ]))) = identifier) ;) })) }))) (expression_statement "lVar3 = *plVar7;" (assignment_expression "lVar3 = *plVar7" identifier = (pointer_expression "*plVar7" * identifier)) ;) (while_statement "while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }" while (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }" { (expression_statement "uVar1 = FUN_0014ea7a(plVar7);" (assignment_expression "uVar1 = FUN_0014ea7a(plVar7)" identifier = (call_expression "FUN_0014ea7a(plVar7)" identifier (argument_list "(plVar7)" ( identifier )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }" if (parenthesized_expression "((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7))" ( (binary_expression "(*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)" (parenthesized_expression "(*(long **)(lVar3 + 8) != plVar7)" ( (binary_expression "*(long **)(lVar3 + 8) != plVar7" (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)" ( (comma_expression "iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7" (assignment_expression "iVar4 = 1" identifier = number_literal) , (binary_expression "*(long **)(lVar3 + 0x10) != plVar7" (pointer_expression "*(long **)(lVar3 + 0x10)" * (cast_expression "(long **)(lVar3 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }" { (expression_statement "iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;" (assignment_expression "iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2" identifier = (binary_expression "(*(long **)(lVar3 + 0x18) != plVar7) + 2" (parenthesized_expression "(*(long **)(lVar3 + 0x18) != plVar7)" ( (binary_expression "*(long **)(lVar3 + 0x18) != plVar7" (pointer_expression "*(long **)(lVar3 + 0x18)" * (cast_expression "(long **)(lVar3 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) != identifier) )) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;" (assignment_expression "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1" (pointer_expression "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4)" * (cast_expression "(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x28 + (long)iVar4 * 4)" ( (binary_expression "lVar3 + 0x28 + (long)iVar4 * 4" (binary_expression "lVar3 + 0x28" identifier + number_literal) + (binary_expression "(long)iVar4 * 4" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "plVar7 = (long *)*plVar7;" (assignment_expression "plVar7 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (expression_statement "lVar3 = *plVar7;" (assignment_expression "lVar3 = *plVar7" identifier = (pointer_expression "*plVar7" * identifier)) ;) })) }))) }))) (return_statement "return param_2;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) })) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (subscript_expression IDENT [ LIT ]) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (subscript_expression IDENT [ LIT ]) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (subscript_expression IDENT [ LIT ]) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }))) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))))))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) }))) }))) (return_statement return IDENT ;) })))
(function_definition "long FUN_0014eaaa(long *param_1,long param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0014eaaa(long *param_1,long param_2,int param_3)" (identifier "FUN_0014eaaa") (parameter_list "(long *param_1,long param_2,int param_3)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  long *plVar2;\n  long lVar3;\n  int iVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  long *local_58;\n  undefined4 local_50;\n  undefined4 local_4c;\n  long *local_48;\n  long local_40;\n  \n  if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }\n  return param_2;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "long *plVar5;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar5" (* "*") (identifier "plVar5")) (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "long *local_58;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "long *local_48;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (if_statement "if (*param_1 == 0) {\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }\n  else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar3 = FUN_0010ea3d(1,0x50);\n    *param_1 = lVar3;\n    *(undefined8 *)(lVar3 + 0x48) = 0;\n    *(undefined8 *)(*param_1 + 0x40) = 0;\n    *(undefined8 *)(*param_1 + 0x10) = 0;\n    *(undefined8 *)(*param_1 + 8) = 0;\n    *(undefined8 *)(*param_1 + 0x20) = 0;\n    *(undefined8 *)(*param_1 + 0x18) = 0;\n    *(undefined4 *)(*param_1 + 0x2c) = 0;\n    *(undefined4 *)(*param_1 + 0x28) = 0;\n    *(undefined4 *)(*param_1 + 0x34) = 0;\n    *(undefined4 *)(*param_1 + 0x30) = 0;\n    *(undefined8 *)*param_1 = 0;\n    *(long *)(*param_1 + 0x38) = param_2;\n  }" ({ "{") (expression_statement "lVar3 = FUN_0010ea3d(1,0x50);" (assignment_expression "lVar3 = FUN_0010ea3d(1,0x50)" (identifier "lVar3") (= "=") (call_expression "FUN_0010ea3d(1,0x50)" (identifier "FUN_0010ea3d") (argument_list "(1,0x50)" (( "(") (number_literal "1") (, ",") (number_literal "0x50") () ")")))) (; ";")) (expression_statement "*param_1 = lVar3;" (assignment_expression "*param_1 = lVar3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "*(undefined8 *)(lVar3 + 0x48) = 0;" (assignment_expression "*(undefined8 *)(lVar3 + 0x48) = 0" (pointer_expression "*(undefined8 *)(lVar3 + 0x48)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x48)" (( "(") (binary_expression "lVar3 + 0x48" (identifier "lVar3") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x40) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x40) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x40)" (( "(") (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x10) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x10) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 8) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 8) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 8)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x20) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x20) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x20)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x20)" (( "(") (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x18)" (( "(") (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x2c)" (( "(") (binary_expression "*param_1 + 0x2c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x28)" (( "(") (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x34)" (( "(") (binary_expression "*param_1 + 0x34" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x30)" (( "(") (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)*param_1 = 0;" (assignment_expression "*(undefined8 *)*param_1 = 0" (pointer_expression "*(undefined8 *)*param_1" (* "*") (cast_expression "(undefined8 *)*param_1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(long *)(*param_1 + 0x38) = param_2;" (assignment_expression "*(long *)(*param_1 + 0x38) = param_2" (pointer_expression "*(long *)(*param_1 + 0x38)" (* "*") (cast_expression "(long *)(*param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x38)" (( "(") (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    plVar5 = (long *)*param_1;\n    local_40 = param_2;\n    if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }\n  }" ({ "{") (expression_statement "plVar5 = (long *)*param_1;" (assignment_expression "plVar5 = (long *)*param_1" (identifier "plVar5") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" (identifier "local_40") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (plVar5 == (long *)0x0) {\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }\n    else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" (if "if") (parenthesized_expression "(plVar5 == (long *)0x0)" (( "(") (binary_expression "plVar5 == (long *)0x0" (identifier "plVar5") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_4c = 0;\n      local_50 = 0;\n      plVar2 = (long *)0x0;\nLAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);\n      *param_1 = lVar3;\n      *(long **)(lVar3 + 8) = plVar2;\n      *(undefined4 *)(*param_1 + 0x28) = local_50;\n      *(long *)(*param_1 + 0x38) = local_40;\n      *(long **)(*param_1 + 0x10) = plVar5;\n      *(undefined4 *)(*param_1 + 0x2c) = local_4c;\n      *(undefined8 *)(*param_1 + 0x40) = 0;\n      *(undefined8 *)(*param_1 + 0x18) = 0;\n      *(undefined4 *)(*param_1 + 0x30) = 0;\n      *(undefined8 *)(*param_1 + 0x48) = 0;\n      *(undefined8 *)(*param_1 + 0x20) = 0;\n      *(undefined4 *)(*param_1 + 0x34) = 0;\n      *(undefined8 *)*param_1 = 0;\n      plVar5 = *(long **)(*param_1 + 8);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n      plVar5 = *(long **)(*param_1 + 0x10);\n      if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }\n    }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" (identifier "plVar2") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0014f1d8:\n      lVar3 = FUN_0010ea3d(1,0x50);" (statement_identifier "LAB_0014f1d8") (: ":") (expression_statement "lVar3 = FUN_0010ea3d(1,0x50);" (assignment_expression "lVar3 = FUN_0010ea3d(1,0x50)" (identifier "lVar3") (= "=") (call_expression "FUN_0010ea3d(1,0x50)" (identifier "FUN_0010ea3d") (argument_list "(1,0x50)" (( "(") (number_literal "1") (, ",") (number_literal "0x50") () ")")))) (; ";"))) (expression_statement "*param_1 = lVar3;" (assignment_expression "*param_1 = lVar3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "*(long **)(lVar3 + 8) = plVar2;" (assignment_expression "*(long **)(lVar3 + 8) = plVar2" (pointer_expression "*(long **)(lVar3 + 8)" (* "*") (cast_expression "(long **)(lVar3 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "plVar2")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x28) = local_50;" (assignment_expression "*(undefined4 *)(*param_1 + 0x28) = local_50" (pointer_expression "*(undefined4 *)(*param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x28)" (( "(") (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(long *)(*param_1 + 0x38) = local_40;" (assignment_expression "*(long *)(*param_1 + 0x38) = local_40" (pointer_expression "*(long *)(*param_1 + 0x38)" (* "*") (cast_expression "(long *)(*param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x38)" (( "(") (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(long **)(*param_1 + 0x10) = plVar5;" (assignment_expression "*(long **)(*param_1 + 0x10) = plVar5" (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "plVar5")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)(*param_1 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)(*param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x2c)" (( "(") (binary_expression "*param_1 + 0x2c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x40) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x40) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x40)" (( "(") (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x18)" (( "(") (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x30)" (( "(") (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x48) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x48) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x48)" (( "(") (binary_expression "*param_1 + 0x48" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(*param_1 + 0x20) = 0;" (assignment_expression "*(undefined8 *)(*param_1 + 0x20) = 0" (pointer_expression "*(undefined8 *)(*param_1 + 0x20)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x20)" (( "(") (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(*param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(*param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x34)" (( "(") (binary_expression "*param_1 + 0x34" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)*param_1 = 0;" (assignment_expression "*(undefined8 *)*param_1 = 0" (pointer_expression "*(undefined8 *)*param_1" (* "*") (cast_expression "(undefined8 *)*param_1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar5 = *(long **)(*param_1 + 8);" (assignment_expression "plVar5 = *(long **)(*param_1 + 8)" (identifier "plVar5") (= "=") (pointer_expression "*(long **)(*param_1 + 8)" (* "*") (cast_expression "(long **)(*param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }" (if "if") (parenthesized_expression "(plVar5 != (long *)0x0)" (( "(") (binary_expression "plVar5 != (long *)0x0" (identifier "plVar5") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *plVar5 = *param_1;\n      }" ({ "{") (expression_statement "*plVar5 = *param_1;" (assignment_expression "*plVar5 = *param_1" (pointer_expression "*plVar5" (* "*") (identifier "plVar5")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}"))) (expression_statement "plVar5 = *(long **)(*param_1 + 0x10);" (assignment_expression "plVar5 = *(long **)(*param_1 + 0x10)" (identifier "plVar5") (= "=") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (plVar5 != (long *)0x0) {\n        *plVar5 = *param_1;\n      }" (if "if") (parenthesized_expression "(plVar5 != (long *)0x0)" (( "(") (binary_expression "plVar5 != (long *)0x0" (identifier "plVar5") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *plVar5 = *param_1;\n      }" ({ "{") (expression_statement "*plVar5 = *param_1;" (assignment_expression "*plVar5 = *param_1" (pointer_expression "*plVar5" (* "*") (identifier "plVar5")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);\n      local_58 = plVar7 + (long)iVar4 + 1;\n      lVar3 = plVar7[8];\n      if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }\n      lVar3 = *plVar7;\n      while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }\n    }" ({ "{") (do_statement "do {\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      } while (plVar5 != (long *)0x0);" (do "do") (compound_statement "{\n        plVar7 = plVar5;\n        if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }\n        plVar5 = (long *)plVar7[(long)iVar4 + 1];\n      }" ({ "{") (expression_statement "plVar7 = plVar5;" (assignment_expression "plVar7 = plVar5" (identifier "plVar7") (= "=") (identifier "plVar5")) (; ";")) (if_statement "if (param_3 < 0) {\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }\n        else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);\n          if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2,plVar7[7])" (identifier "iVar4") (= "=") (call_expression "(*(code *)param_1[1])(param_2,plVar7[7])" (parenthesized_expression "(*(code *)param_1[1])" (( "(") (pointer_expression "*(code *)param_1[1]" (* "*") (cast_expression "(code *)param_1[1]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (argument_list "(param_2,plVar7[7])" (( "(") (identifier "param_2") (, ",") (subscript_expression "plVar7[7]" (identifier "plVar7") ([ "[") (number_literal "7") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar4 < 0) {\n            iVar4 = 0;\n          }\n          else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar4 = 0;\n          }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" (else "else") (compound_statement "{\n            if (iVar4 == 0) {\n              return plVar7[7];\n            }\n            if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }\n          }" ({ "{") (if_statement "if (iVar4 == 0) {\n              return plVar7[7];\n            }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return plVar7[7];\n            }" ({ "{") (return_statement "return plVar7[7];" (return "return") (subscript_expression "plVar7[7]" (identifier "plVar7") ([ "[") (number_literal "7") (] "]")) (; ";")) (} "}"))) (if_statement "if (plVar7[8] == 0) {\n              iVar4 = 1;\n            }\n            else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(plVar7[8] == 0)" (( "(") (binary_expression "plVar7[8] == 0" (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar4 = 1;\n            }" ({ "{") (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\n              iVar4 = (*(code *)param_1[1])(param_2);\n              if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "iVar4 = (*(code *)param_1[1])(param_2);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2)" (identifier "iVar4") (= "=") (call_expression "(*(code *)param_1[1])(param_2)" (parenthesized_expression "(*(code *)param_1[1])" (( "(") (pointer_expression "*(code *)param_1[1]" (* "*") (cast_expression "(code *)param_1[1]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) {\n                iVar4 = 1;\n              }\n              else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                iVar4 = 1;\n              }" ({ "{") (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                if (iVar4 == 0) {\n                  return plVar7[8];\n                }\n                if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }\n              }" ({ "{") (if_statement "if (iVar4 == 0) {\n                  return plVar7[8];\n                }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return plVar7[8];\n                }" ({ "{") (return_statement "return plVar7[8];" (return "return") (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]")) (; ";")) (} "}"))) (if_statement "if (plVar7[9] == 0) {\n                  iVar4 = 2;\n                }\n                else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" (if "if") (parenthesized_expression "(plVar7[9] == 0)" (( "(") (binary_expression "plVar7[9] == 0" (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar4 = 2;\n                }" ({ "{") (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" (identifier "iVar4") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar4 = (*(code *)param_1[1])(param_2);\n                  if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }\n                }" ({ "{") (expression_statement "iVar4 = (*(code *)param_1[1])(param_2);" (assignment_expression "iVar4 = (*(code *)param_1[1])(param_2)" (identifier "iVar4") (= "=") (call_expression "(*(code *)param_1[1])(param_2)" (parenthesized_expression "(*(code *)param_1[1])" (( "(") (pointer_expression "*(code *)param_1[1]" (* "*") (cast_expression "(code *)param_1[1]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) {\n                    iVar4 = 2;\n                  }\n                  else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar4 = 2;\n                  }" ({ "{") (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" (identifier "iVar4") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" (else "else") (compound_statement "{\n                    if (iVar4 == 0) {\n                      return plVar7[9];\n                    }\n                    iVar4 = 3;\n                  }" ({ "{") (if_statement "if (iVar4 == 0) {\n                      return plVar7[9];\n                    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      return plVar7[9];\n                    }" ({ "{") (return_statement "return plVar7[9];" (return "return") (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (; ";")) (} "}"))) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" (identifier "iVar4") (= "=") (number_literal "3")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar4 = param_3;\n          if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar4 = param_3;" (assignment_expression "iVar4 = param_3" (identifier "iVar4") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (plVar7[1] != 0) {\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(plVar7[1] != 0)" (( "(") (binary_expression "plVar7[1] != 0" (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }\n          }" ({ "{") (if_statement "if ((int)plVar7[5] < param_3) {\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0;\n            }" (if "if") (parenthesized_expression "((int)plVar7[5] < param_3)" (( "(") (binary_expression "(int)plVar7[5] < param_3" (cast_expression "(int)plVar7[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar7[5]" (identifier "plVar7") ([ "[") (number_literal "5") (] "]"))) (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n              param_3 = param_3 - ((int)plVar7[5] + 1);\n              if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }\n            }" ({ "{") (expression_statement "param_3 = param_3 - ((int)plVar7[5] + 1);" (assignment_expression "param_3 = param_3 - ((int)plVar7[5] + 1)" (identifier "param_3") (= "=") (binary_expression "param_3 - ((int)plVar7[5] + 1)" (identifier "param_3") (- "-") (parenthesized_expression "((int)plVar7[5] + 1)" (( "(") (binary_expression "(int)plVar7[5] + 1" (cast_expression "(int)plVar7[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar7[5]" (identifier "plVar7") ([ "[") (number_literal "5") (] "]"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*(int *)((long)plVar7 + 0x2c) < param_3) {\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }\n              else {\n                iVar4 = 1;\n              }" (if "if") (parenthesized_expression "(*(int *)((long)plVar7 + 0x2c) < param_3)" (( "(") (binary_expression "*(int *)((long)plVar7 + 0x2c) < param_3" (pointer_expression "*(int *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(int *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);\n                if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }\n              }" ({ "{") (expression_statement "param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);" (assignment_expression "param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1)" (identifier "param_3") (= "=") (binary_expression "param_3 - (*(int *)((long)plVar7 + 0x2c) + 1)" (identifier "param_3") (- "-") (parenthesized_expression "(*(int *)((long)plVar7 + 0x2c) + 1)" (( "(") (binary_expression "*(int *)((long)plVar7 + 0x2c) + 1" (pointer_expression "*(int *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(int *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int)plVar7[6] < param_3) {\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }\n                else {\n                  iVar4 = 2;\n                }" (if "if") (parenthesized_expression "((int)plVar7[6] < param_3)" (( "(") (binary_expression "(int)plVar7[6] < param_3" (cast_expression "(int)plVar7[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar7[6]" (identifier "plVar7") ([ "[") (number_literal "6") (] "]"))) (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n                  param_3 = param_3 - ((int)plVar7[6] + 1);\n                  if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }\n                  iVar4 = 3;\n                }" ({ "{") (expression_statement "param_3 = param_3 - ((int)plVar7[6] + 1);" (assignment_expression "param_3 = param_3 - ((int)plVar7[6] + 1)" (identifier "param_3") (= "=") (binary_expression "param_3 - ((int)plVar7[6] + 1)" (identifier "param_3") (- "-") (parenthesized_expression "((int)plVar7[6] + 1)" (( "(") (binary_expression "(int)plVar7[6] + 1" (cast_expression "(int)plVar7[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar7[6]" (identifier "plVar7") ([ "[") (number_literal "6") (] "]"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*(int *)((long)plVar7 + 0x34) < param_3) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(*(int *)((long)plVar7 + 0x34) < param_3)" (( "(") (binary_expression "*(int *)((long)plVar7 + 0x34) < param_3" (pointer_expression "*(int *)((long)plVar7 + 0x34)" (* "*") (cast_expression "(int *)((long)plVar7 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x34)" (( "(") (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x34")) () ")")))) (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" (identifier "iVar4") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n                  iVar4 = 2;\n                }" (else "else") (compound_statement "{\n                  iVar4 = 2;\n                }" ({ "{") (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" (identifier "iVar4") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                iVar4 = 1;\n              }" (else "else") (compound_statement "{\n                iVar4 = 1;\n              }" ({ "{") (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              iVar4 = 0;\n            }" (else "else") (compound_statement "{\n              iVar4 = 0;\n            }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "plVar5 = (long *)plVar7[(long)iVar4 + 1];" (assignment_expression "plVar5 = (long *)plVar7[(long)iVar4 + 1]" (identifier "plVar5") (= "=") (cast_expression "(long *)plVar7[(long)iVar4 + 1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[(long)iVar4 + 1]" (identifier "plVar7") ([ "[") (binary_expression "(long)iVar4 + 1" (cast_expression "(long)iVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar4")) (+ "+") (number_literal "1")) (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar5 != (long *)0x0)" (( "(") (binary_expression "plVar5 != (long *)0x0" (identifier "plVar5") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "local_58 = plVar7 + (long)iVar4 + 1;" (assignment_expression "local_58 = plVar7 + (long)iVar4 + 1" (identifier "local_58") (= "=") (binary_expression "plVar7 + (long)iVar4 + 1" (binary_expression "plVar7 + (long)iVar4" (identifier "plVar7") (+ "+") (cast_expression "(long)iVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar4"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar3 = plVar7[8];" (assignment_expression "lVar3 = plVar7[8]" (identifier "lVar3") (= "=") (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (lVar3 == 0) {\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }\n      else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_4c = 0;\n        local_50 = 0;\n        plVar5 = (long *)0x0;\n        plVar2 = (long *)0x0;\nLAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n      }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar5 = (long *)0x0;" (assignment_expression "plVar5 = (long *)0x0" (identifier "plVar5") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" (identifier "plVar2") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0014ecd0:\n        if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" (statement_identifier "LAB_0014ecd0") (: ":") (if_statement "if (local_58 == plVar7 + 1) {\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" (if "if") (parenthesized_expression "(local_58 == plVar7 + 1)" (( "(") (binary_expression "local_58 == plVar7 + 1" (identifier "local_58") (== "==") (binary_expression "plVar7 + 1" (identifier "plVar7") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }" ({ "{") (expression_statement "plVar7[3] = plVar7[2];" (assignment_expression "plVar7[3] = plVar7[2]" (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar7 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 6)" (( "(") (binary_expression "plVar7 + 6" (identifier "plVar7") (+ "+") (number_literal "6")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "plVar7[8] = plVar7[7];" (assignment_expression "plVar7[8] = plVar7[7]" (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "plVar7[7]" (identifier "plVar7") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "plVar7[2] = (long)plVar5;" (assignment_expression "plVar7[2] = (long)plVar5" (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar7[7] = local_40;" (assignment_expression "plVar7[7] = local_40" (subscript_expression "plVar7[7]" (identifier "plVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar7[1] = (long)plVar2;" (assignment_expression "plVar7[1] = (long)plVar2" (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 5)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 5)" (( "(") (binary_expression "plVar7 + 5" (identifier "plVar7") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" (else "else") (compound_statement "{\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" ({ "{") (expression_statement "plVar7[3] = (long)plVar5;" (assignment_expression "plVar7[3] = (long)plVar5" (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar7 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 6)" (( "(") (binary_expression "plVar7 + 6" (identifier "plVar7") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar7[8] = local_40;" (assignment_expression "plVar7[8] = local_40" (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar7[2] = (long)plVar2;" (assignment_expression "plVar7[2] = (long)plVar2" (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}"))))) (if_statement "if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[1] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[1] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[1] = plVar7" (pointer_expression "*(undefined8 *)plVar7[1]" (* "*") (cast_expression "(undefined8 *)plVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[2] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[2] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[2] = plVar7" (pointer_expression "*(undefined8 *)plVar7[2]" (* "*") (cast_expression "(undefined8 *)plVar7[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[3] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[3] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[3] = plVar7" (pointer_expression "*(undefined8 *)plVar7[3]" (* "*") (cast_expression "(undefined8 *)plVar7[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" (else "else") (compound_statement "{\n        if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }\n        if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }\n        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }\n        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }\n        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }\n        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }\n      }" ({ "{") (if_statement "if (plVar7[9] == 0) {\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }\n        else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" (if "if") (parenthesized_expression "(plVar7[9] == 0)" (( "(") (binary_expression "plVar7[9] == 0" (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          plVar5 = (long *)0x0;\n          plVar2 = (long *)0x0;\n        }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar5 = (long *)0x0;" (assignment_expression "plVar5 = (long *)0x0" (identifier "plVar5") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar2 = (long *)0x0;" (assignment_expression "plVar2 = (long *)0x0" (identifier "plVar2") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" (else "else") (compound_statement "{\n          local_4c = 0;\n          local_50 = 0;\n          plVar6 = (long *)0x0;\n          local_48 = plVar5;\n          do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);\n        }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar6 = (long *)0x0;" (assignment_expression "plVar6 = (long *)0x0" (identifier "plVar6") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = plVar5;" (assignment_expression "local_48 = plVar5" (identifier "local_48") (= "=") (identifier "plVar5")) (; ";")) (do_statement "do {\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          } while (plVar7[9] != 0);" (do "do") (compound_statement "{\n            plVar5 = plVar7;\n            plVar2 = (long *)FUN_0010ea3d(1,0x50);\n            *plVar2 = *plVar5;\n            if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }\n            plVar5[3] = 0;\n            plVar5[4] = 0;\n            plVar2[4] = 0;\n            *(undefined4 *)(plVar5 + 6) = 0;\n            *(undefined4 *)((long)plVar5 + 0x34) = 0;\n            *(undefined4 *)((long)plVar2 + 0x34) = 0;\n            plVar5[8] = 0;\n            plVar5[9] = 0;\n            plVar2[9] = 0;\n            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }\n            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }\n            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }\n            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }\n            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }\n            local_50 = FUN_0014ea7a(plVar2);\n            local_4c = FUN_0014ea7a(plVar5);\n            plVar7 = (long *)*plVar5;\n            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;\n            if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }\n            lVar3 = plVar7[8];\n            if (lVar3 == 0) goto LAB_0014ecd0;\n            plVar6 = plVar2;\n            local_48 = plVar5;\n          }" ({ "{") (expression_statement "plVar5 = plVar7;" (assignment_expression "plVar5 = plVar7" (identifier "plVar5") (= "=") (identifier "plVar7")) (; ";")) (expression_statement "plVar2 = (long *)FUN_0010ea3d(1,0x50);" (assignment_expression "plVar2 = (long *)FUN_0010ea3d(1,0x50)" (identifier "plVar2") (= "=") (cast_expression "(long *)FUN_0010ea3d(1,0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010ea3d(1,0x50)" (identifier "FUN_0010ea3d") (argument_list "(1,0x50)" (( "(") (number_literal "1") (, ",") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "*plVar2 = *plVar5;" (assignment_expression "*plVar2 = *plVar5" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (= "=") (pointer_expression "*plVar5" (* "*") (identifier "plVar5"))) (; ";")) (if_statement "if (local_58 == plVar5 + 1) {\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" (if "if") (parenthesized_expression "(local_58 == plVar5 + 1)" (( "(") (binary_expression "local_58 == plVar5 + 1" (identifier "local_58") (== "==") (binary_expression "plVar5 + 1" (identifier "plVar5") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n              plVar2[1] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 5) = local_50;\n              plVar2[7] = local_40;\n              plVar2[2] = (long)local_48;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;\n              plVar2[8] = plVar5[7];\n              plVar2[3] = plVar5[2];\n              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" ({ "{") (expression_statement "plVar2[1] = (long)plVar6;" (assignment_expression "plVar2[1] = (long)plVar6" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar6"))) (; ";")) (expression_statement "*(undefined4 *)(plVar2 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar2 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar2 + 5)" (* "*") (cast_expression "(undefined4 *)(plVar2 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 5)" (( "(") (binary_expression "plVar2 + 5" (identifier "plVar2") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "plVar2[7] = local_40;" (assignment_expression "plVar2[7] = local_40" (subscript_expression "plVar2[7]" (identifier "plVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar2[2] = (long)local_48;" (assignment_expression "plVar2[2] = (long)local_48" (subscript_expression "plVar2[2]" (identifier "plVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)local_48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_48"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar2 + 0x2c)" (( "(") (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar2[8] = plVar5[7];" (assignment_expression "plVar2[8] = plVar5[7]" (subscript_expression "plVar2[8]" (identifier "plVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "plVar2[3] = plVar5[2];" (assignment_expression "plVar2[3] = plVar5[2]" (subscript_expression "plVar2[3]" (identifier "plVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar2 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar2 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 6)" (( "(") (binary_expression "plVar2 + 6" (identifier "plVar2") (+ "+") (number_literal "6")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "local_40 = plVar5[8];" (assignment_expression "local_40 = plVar5[8]" (identifier "local_40") (= "=") (subscript_expression "plVar5[8]" (identifier "plVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "plVar5[1] = plVar5[3];" (assignment_expression "plVar5[1] = plVar5[3]" (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar5[3]" (identifier "plVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(int *)(plVar5 + 5) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar5 + 5) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar5 + 5)" (* "*") (cast_expression "(int *)(plVar5 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar5 + 5)" (( "(") (binary_expression "plVar5 + 5" (identifier "plVar5") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(int)plVar5[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar5[6]" (identifier "plVar5") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "plVar5[9]" (identifier "plVar5") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar5[4]" (identifier "plVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x34)" (( "(") (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" (else "else") (if_statement "if (local_58 == plVar5 + 2) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" (if "if") (parenthesized_expression "(local_58 == plVar5 + 2)" (( "(") (binary_expression "local_58 == plVar5 + 2" (identifier "local_58") (== "==") (binary_expression "plVar5 + 2" (identifier "plVar5") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = (long)plVar6;\n              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;\n              plVar2[8] = local_40;\n              plVar2[3] = (long)local_48;\n              *(undefined4 *)(plVar2 + 6) = local_4c;\n              local_40 = plVar5[8];\n              plVar5[1] = plVar5[3];\n              *(int *)(plVar5 + 5) = (int)plVar5[6];\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" ({ "{") (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" (* "*") (cast_expression "(int *)(plVar2 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 5)" (( "(") (binary_expression "plVar2 + 5" (identifier "plVar2") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(int)plVar5[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar5[5]" (identifier "plVar5") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" (identifier "plVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "plVar2[2] = (long)plVar6;" (assignment_expression "plVar2[2] = (long)plVar6" (subscript_expression "plVar2[2]" (identifier "plVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)plVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar6"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar2 + 0x2c)" (( "(") (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "plVar2[8] = local_40;" (assignment_expression "plVar2[8] = local_40" (subscript_expression "plVar2[8]" (identifier "plVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar2[3] = (long)local_48;" (assignment_expression "plVar2[3] = (long)local_48" (subscript_expression "plVar2[3]" (identifier "plVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(long)local_48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_48"))) (; ";")) (expression_statement "*(undefined4 *)(plVar2 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar2 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar2 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar2 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 6)" (( "(") (binary_expression "plVar2 + 6" (identifier "plVar2") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "local_40 = plVar5[8];" (assignment_expression "local_40 = plVar5[8]" (identifier "local_40") (= "=") (subscript_expression "plVar5[8]" (identifier "plVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "plVar5[1] = plVar5[3];" (assignment_expression "plVar5[1] = plVar5[3]" (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar5[3]" (identifier "plVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(int *)(plVar5 + 5) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar5 + 5) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar5 + 5)" (* "*") (cast_expression "(int *)(plVar5 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar5 + 5)" (( "(") (binary_expression "plVar5 + 5" (identifier "plVar5") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(int)plVar5[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar5[6]" (identifier "plVar5") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "plVar5[9]" (identifier "plVar5") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar5[4]" (identifier "plVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x34)" (( "(") (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" (else "else") (if_statement "if (local_58 == plVar5 + 3) {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }\n            else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" (if "if") (parenthesized_expression "(local_58 == plVar5 + 3)" (( "(") (binary_expression "local_58 == plVar5 + 3" (identifier "local_58") (== "==") (binary_expression "plVar5 + 3" (identifier "plVar5") (+ "+") (number_literal "3"))) () ")")) (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = (long)plVar6;\n              *(undefined4 *)(plVar2 + 6) = local_50;\n              plVar5[1] = (long)local_48;\n              *(undefined4 *)(plVar5 + 5) = local_4c;\n              plVar5[7] = plVar5[9];\n              plVar5[2] = plVar5[4];\n              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);\n            }" ({ "{") (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" (* "*") (cast_expression "(int *)(plVar2 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 5)" (( "(") (binary_expression "plVar2 + 5" (identifier "plVar2") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(int)plVar5[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar5[5]" (identifier "plVar5") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" (identifier "plVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "plVar2[2] = plVar5[2];" (assignment_expression "plVar2[2] = plVar5[2]" (subscript_expression "plVar2[2]" (identifier "plVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar2 + 0x2c)" (( "(") (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "plVar2[8] = plVar5[8];" (assignment_expression "plVar2[8] = plVar5[8]" (subscript_expression "plVar2[8]" (identifier "plVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "plVar5[8]" (identifier "plVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "plVar2[3] = (long)plVar6;" (assignment_expression "plVar2[3] = (long)plVar6" (subscript_expression "plVar2[3]" (identifier "plVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(long)plVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar6"))) (; ";")) (expression_statement "*(undefined4 *)(plVar2 + 6) = local_50;" (assignment_expression "*(undefined4 *)(plVar2 + 6) = local_50" (pointer_expression "*(undefined4 *)(plVar2 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar2 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 6)" (( "(") (binary_expression "plVar2 + 6" (identifier "plVar2") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "plVar5[1] = (long)local_48;" (assignment_expression "plVar5[1] = (long)local_48" (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)local_48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_48"))) (; ";")) (expression_statement "*(undefined4 *)(plVar5 + 5) = local_4c;" (assignment_expression "*(undefined4 *)(plVar5 + 5) = local_4c" (pointer_expression "*(undefined4 *)(plVar5 + 5)" (* "*") (cast_expression "(undefined4 *)(plVar5 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar5 + 5)" (( "(") (binary_expression "plVar5 + 5" (identifier "plVar5") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar5[7] = plVar5[9];" (assignment_expression "plVar5[7] = plVar5[9]" (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "plVar5[9]" (identifier "plVar5") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "plVar5[2] = plVar5[4];" (assignment_expression "plVar5[2] = plVar5[4]" (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar5[4]" (identifier "plVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34)" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x34)" (( "(") (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" (else "else") (compound_statement "{\n              plVar2[1] = plVar5[1];\n              *(int *)(plVar2 + 5) = (int)plVar5[5];\n              plVar2[7] = plVar5[7];\n              plVar2[2] = plVar5[2];\n              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);\n              plVar2[8] = plVar5[8];\n              plVar2[3] = plVar5[3];\n              *(int *)(plVar2 + 6) = (int)plVar5[6];\n              plVar5[1] = (long)plVar6;\n              *(undefined4 *)(plVar5 + 5) = local_50;\n              plVar5[7] = local_40;\n              plVar5[2] = (long)local_48;\n              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;\n              local_40 = plVar5[9];\n            }" ({ "{") (expression_statement "plVar2[1] = plVar5[1];" (assignment_expression "plVar2[1] = plVar5[1]" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)(plVar2 + 5) = (int)plVar5[5];" (assignment_expression "*(int *)(plVar2 + 5) = (int)plVar5[5]" (pointer_expression "*(int *)(plVar2 + 5)" (* "*") (cast_expression "(int *)(plVar2 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 5)" (( "(") (binary_expression "plVar2 + 5" (identifier "plVar2") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(int)plVar5[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar5[5]" (identifier "plVar5") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "plVar2[7] = plVar5[7];" (assignment_expression "plVar2[7] = plVar5[7]" (subscript_expression "plVar2[7]" (identifier "plVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "plVar2[2] = plVar5[2];" (assignment_expression "plVar2[2] = plVar5[2]" (subscript_expression "plVar2[2]" (identifier "plVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c)" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar2 + 0x2c)" (( "(") (binary_expression "(long)plVar2 + 0x2c" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "plVar2[8] = plVar5[8];" (assignment_expression "plVar2[8] = plVar5[8]" (subscript_expression "plVar2[8]" (identifier "plVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "plVar5[8]" (identifier "plVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "plVar2[3] = plVar5[3];" (assignment_expression "plVar2[3] = plVar5[3]" (subscript_expression "plVar2[3]" (identifier "plVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "plVar5[3]" (identifier "plVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(int *)(plVar2 + 6) = (int)plVar5[6];" (assignment_expression "*(int *)(plVar2 + 6) = (int)plVar5[6]" (pointer_expression "*(int *)(plVar2 + 6)" (* "*") (cast_expression "(int *)(plVar2 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 6)" (( "(") (binary_expression "plVar2 + 6" (identifier "plVar2") (+ "+") (number_literal "6")) () ")")))) (= "=") (cast_expression "(int)plVar5[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar5[6]" (identifier "plVar5") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "plVar5[1] = (long)plVar6;" (assignment_expression "plVar5[1] = (long)plVar6" (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar6"))) (; ";")) (expression_statement "*(undefined4 *)(plVar5 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar5 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar5 + 5)" (* "*") (cast_expression "(undefined4 *)(plVar5 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar5 + 5)" (( "(") (binary_expression "plVar5 + 5" (identifier "plVar5") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "plVar5[7] = local_40;" (assignment_expression "plVar5[7] = local_40" (subscript_expression "plVar5[7]" (identifier "plVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar5[2] = (long)local_48;" (assignment_expression "plVar5[2] = (long)local_48" (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)local_48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_48"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar5 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x2c)" (( "(") (binary_expression "(long)plVar5 + 0x2c" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "local_40 = plVar5[9];" (assignment_expression "local_40 = plVar5[9]" (identifier "local_40") (= "=") (subscript_expression "plVar5[9]" (identifier "plVar5") ([ "[") (number_literal "9") (] "]"))) (; ";")) (} "}")))))))) (expression_statement "plVar5[3] = 0;" (assignment_expression "plVar5[3] = 0" (subscript_expression "plVar5[3]" (identifier "plVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar5[4] = 0;" (assignment_expression "plVar5[4] = 0" (subscript_expression "plVar5[4]" (identifier "plVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar2[4] = 0;" (assignment_expression "plVar2[4] = 0" (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(plVar5 + 6) = 0;" (assignment_expression "*(undefined4 *)(plVar5 + 6) = 0" (pointer_expression "*(undefined4 *)(plVar5 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar5 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar5 + 6)" (( "(") (binary_expression "plVar5 + 6" (identifier "plVar5") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)plVar5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((long)plVar5 + 0x34) = 0" (pointer_expression "*(undefined4 *)((long)plVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)((long)plVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar5 + 0x34)" (( "(") (binary_expression "(long)plVar5 + 0x34" (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)plVar2 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((long)plVar2 + 0x34) = 0" (pointer_expression "*(undefined4 *)((long)plVar2 + 0x34)" (* "*") (cast_expression "(undefined4 *)((long)plVar2 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar2 + 0x34)" (( "(") (binary_expression "(long)plVar2 + 0x34" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar5[8] = 0;" (assignment_expression "plVar5[8] = 0" (subscript_expression "plVar5[8]" (identifier "plVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar5[9] = 0;" (assignment_expression "plVar5[9] = 0" (subscript_expression "plVar5[9]" (identifier "plVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar2[9] = 0;" (assignment_expression "plVar2[9] = 0" (subscript_expression "plVar2[9]" (identifier "plVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[1] = plVar2;\n            }" (if "if") (parenthesized_expression "((undefined8 *)plVar2[1] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar2[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined8 *)plVar2[1] = plVar2;\n            }" ({ "{") (expression_statement "*(undefined8 *)plVar2[1] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[1] = plVar2" (pointer_expression "*(undefined8 *)plVar2[1]" (* "*") (cast_expression "(undefined8 *)plVar2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")))) (= "=") (identifier "plVar2")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[2] = plVar2;\n            }" (if "if") (parenthesized_expression "((undefined8 *)plVar2[2] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar2[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[2]" (identifier "plVar2") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined8 *)plVar2[2] = plVar2;\n            }" ({ "{") (expression_statement "*(undefined8 *)plVar2[2] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[2] = plVar2" (pointer_expression "*(undefined8 *)plVar2[2]" (* "*") (cast_expression "(undefined8 *)plVar2[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[2]" (identifier "plVar2") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "plVar2")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar2[3] = plVar2;\n            }" (if "if") (parenthesized_expression "((undefined8 *)plVar2[3] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar2[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar2[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[3]" (identifier "plVar2") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined8 *)plVar2[3] = plVar2;\n            }" ({ "{") (expression_statement "*(undefined8 *)plVar2[3] = plVar2;" (assignment_expression "*(undefined8 *)plVar2[3] = plVar2" (pointer_expression "*(undefined8 *)plVar2[3]" (* "*") (cast_expression "(undefined8 *)plVar2[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[3]" (identifier "plVar2") ([ "[") (number_literal "3") (] "]")))) (= "=") (identifier "plVar2")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[1] = plVar5;\n            }" (if "if") (parenthesized_expression "((undefined8 *)plVar5[1] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar5[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar5[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined8 *)plVar5[1] = plVar5;\n            }" ({ "{") (expression_statement "*(undefined8 *)plVar5[1] = plVar5;" (assignment_expression "*(undefined8 *)plVar5[1] = plVar5" (pointer_expression "*(undefined8 *)plVar5[1]" (* "*") (cast_expression "(undefined8 *)plVar5[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]")))) (= "=") (identifier "plVar5")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {\n              *(undefined8 *)plVar5[2] = plVar5;\n            }" (if "if") (parenthesized_expression "((undefined8 *)plVar5[2] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar5[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar5[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined8 *)plVar5[2] = plVar5;\n            }" ({ "{") (expression_statement "*(undefined8 *)plVar5[2] = plVar5;" (assignment_expression "*(undefined8 *)plVar5[2] = plVar5" (pointer_expression "*(undefined8 *)plVar5[2]" (* "*") (cast_expression "(undefined8 *)plVar5[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar5[2]" (identifier "plVar5") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "plVar5")) (; ";")) (} "}"))) (expression_statement "local_50 = FUN_0014ea7a(plVar2);" (assignment_expression "local_50 = FUN_0014ea7a(plVar2)" (identifier "local_50") (= "=") (call_expression "FUN_0014ea7a(plVar2)" (identifier "FUN_0014ea7a") (argument_list "(plVar2)" (( "(") (identifier "plVar2") () ")")))) (; ";")) (expression_statement "local_4c = FUN_0014ea7a(plVar5);" (assignment_expression "local_4c = FUN_0014ea7a(plVar5)" (identifier "local_4c") (= "=") (call_expression "FUN_0014ea7a(plVar5)" (identifier "FUN_0014ea7a") (argument_list "(plVar5)" (( "(") (identifier "plVar5") () ")")))) (; ";")) (expression_statement "plVar7 = (long *)*plVar5;" (assignment_expression "plVar7 = (long *)*plVar5" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar5" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar5" (* "*") (identifier "plVar5")))) (; ";")) (if_statement "if (plVar7 == (long *)0x0) goto LAB_0014f1d8;" (if "if") (parenthesized_expression "(plVar7 == (long *)0x0)" (( "(") (binary_expression "plVar7 == (long *)0x0" (identifier "plVar7") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0014f1d8;" (goto "goto") (statement_identifier "LAB_0014f1d8") (; ";"))) (if_statement "if ((long *)plVar7[1] == plVar5) {\n              local_58 = plVar7 + 1;\n            }\n            else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" (if "if") (parenthesized_expression "((long *)plVar7[1] == plVar5)" (( "(") (binary_expression "(long *)plVar7[1] == plVar5" (cast_expression "(long *)plVar7[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]"))) (== "==") (identifier "plVar5")) () ")")) (compound_statement "{\n              local_58 = plVar7 + 1;\n            }" ({ "{") (expression_statement "local_58 = plVar7 + 1;" (assignment_expression "local_58 = plVar7 + 1" (identifier "local_58") (= "=") (binary_expression "plVar7 + 1" (identifier "plVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" (else "else") (if_statement "if ((long *)plVar7[2] == plVar5) {\n              local_58 = plVar7 + 2;\n            }\n            else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" (if "if") (parenthesized_expression "((long *)plVar7[2] == plVar5)" (( "(") (binary_expression "(long *)plVar7[2] == plVar5" (cast_expression "(long *)plVar7[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]"))) (== "==") (identifier "plVar5")) () ")")) (compound_statement "{\n              local_58 = plVar7 + 2;\n            }" ({ "{") (expression_statement "local_58 = plVar7 + 2;" (assignment_expression "local_58 = plVar7 + 2" (identifier "local_58") (= "=") (binary_expression "plVar7 + 2" (identifier "plVar7") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" (else "else") (compound_statement "{\n              local_58 = plVar7 + 4;\n              if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }\n            }" ({ "{") (expression_statement "local_58 = plVar7 + 4;" (assignment_expression "local_58 = plVar7 + 4" (identifier "local_58") (= "=") (binary_expression "plVar7 + 4" (identifier "plVar7") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((long *)plVar7[3] == plVar5) {\n                local_58 = plVar7 + 3;\n              }" (if "if") (parenthesized_expression "((long *)plVar7[3] == plVar5)" (( "(") (binary_expression "(long *)plVar7[3] == plVar5" (cast_expression "(long *)plVar7[3]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]"))) (== "==") (identifier "plVar5")) () ")")) (compound_statement "{\n                local_58 = plVar7 + 3;\n              }" ({ "{") (expression_statement "local_58 = plVar7 + 3;" (assignment_expression "local_58 = plVar7 + 3" (identifier "local_58") (= "=") (binary_expression "plVar7 + 3" (identifier "plVar7") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (} "}")))))) (expression_statement "lVar3 = plVar7[8];" (assignment_expression "lVar3 = plVar7[8]" (identifier "lVar3") (= "=") (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (lVar3 == 0) goto LAB_0014ecd0;" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0014ecd0;" (goto "goto") (statement_identifier "LAB_0014ecd0") (; ";"))) (expression_statement "plVar6 = plVar2;" (assignment_expression "plVar6 = plVar2" (identifier "plVar6") (= "=") (identifier "plVar2")) (; ";")) (expression_statement "local_48 = plVar5;" (assignment_expression "local_48 = plVar5" (identifier "local_48") (= "=") (identifier "plVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar7[9] != 0)" (( "(") (binary_expression "plVar7[9] != 0" (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (if_statement "if (local_58 == plVar7 + 1) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }\n        else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" (if "if") (parenthesized_expression "(local_58 == plVar7 + 1)" (( "(") (binary_expression "local_58 == plVar7 + 1" (identifier "local_58") (== "==") (binary_expression "plVar7 + 1" (identifier "plVar7") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = plVar7[2];\n          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);\n          plVar7[8] = plVar7[7];\n          plVar7[2] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;\n          plVar7[7] = local_40;\n          plVar7[1] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 5) = local_50;\n        }" ({ "{") (expression_statement "plVar7[4] = plVar7[3];" (assignment_expression "plVar7[4] = plVar7[3]" (subscript_expression "plVar7[4]" (identifier "plVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6];" (assignment_expression "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6]" (pointer_expression "*(int *)((long)plVar7 + 0x34)" (* "*") (cast_expression "(int *)((long)plVar7 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x34)" (( "(") (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (cast_expression "(int)plVar7[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar7[6]" (identifier "plVar7") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "plVar7[9] = lVar3;" (assignment_expression "plVar7[9] = lVar3" (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "plVar7[3] = plVar7[2];" (assignment_expression "plVar7[3] = plVar7[2]" (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(plVar7 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 6)" (( "(") (binary_expression "plVar7 + 6" (identifier "plVar7") (+ "+") (number_literal "6")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "plVar7[8] = plVar7[7];" (assignment_expression "plVar7[8] = plVar7[7]" (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "plVar7[7]" (identifier "plVar7") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "plVar7[2] = (long)plVar5;" (assignment_expression "plVar7[2] = (long)plVar5" (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar7[7] = local_40;" (assignment_expression "plVar7[7] = local_40" (subscript_expression "plVar7[7]" (identifier "plVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar7[1] = (long)plVar2;" (assignment_expression "plVar7[1] = (long)plVar2" (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 5) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 5) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 5)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 5)" (( "(") (binary_expression "plVar7 + 5" (identifier "plVar7") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" (else "else") (if_statement "if (local_58 == plVar7 + 2) {\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }\n        else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" (if "if") (parenthesized_expression "(local_58 == plVar7 + 2)" (( "(") (binary_expression "local_58 == plVar7 + 2" (identifier "local_58") (== "==") (binary_expression "plVar7 + 2" (identifier "plVar7") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n          plVar7[4] = plVar7[3];\n          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];\n          plVar7[9] = lVar3;\n          plVar7[3] = (long)plVar5;\n          *(undefined4 *)(plVar7 + 6) = local_4c;\n          plVar7[8] = local_40;\n          plVar7[2] = (long)plVar2;\n          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;\n        }" ({ "{") (expression_statement "plVar7[4] = plVar7[3];" (assignment_expression "plVar7[4] = plVar7[3]" (subscript_expression "plVar7[4]" (identifier "plVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6];" (assignment_expression "*(int *)((long)plVar7 + 0x34) = (int)plVar7[6]" (pointer_expression "*(int *)((long)plVar7 + 0x34)" (* "*") (cast_expression "(int *)((long)plVar7 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x34)" (( "(") (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (cast_expression "(int)plVar7[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar7[6]" (identifier "plVar7") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "plVar7[9] = lVar3;" (assignment_expression "plVar7[9] = lVar3" (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "plVar7[3] = (long)plVar5;" (assignment_expression "plVar7[3] = (long)plVar5" (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_4c;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_4c" (pointer_expression "*(undefined4 *)(plVar7 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 6)" (( "(") (binary_expression "plVar7 + 6" (identifier "plVar7") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar7[8] = local_40;" (assignment_expression "plVar7[8] = local_40" (subscript_expression "plVar7[8]" (identifier "plVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar7[2] = (long)plVar2;" (assignment_expression "plVar7[2] = (long)plVar2" (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar7 + 0x2c) = local_50;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x2c) = local_50" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x2c)" (( "(") (binary_expression "(long)plVar7 + 0x2c" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" (else "else") (compound_statement "{\n          plVar7[4] = (long)plVar5;\n          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;\n          plVar7[9] = local_40;\n          plVar7[3] = (long)plVar2;\n          *(undefined4 *)(plVar7 + 6) = local_50;\n        }" ({ "{") (expression_statement "plVar7[4] = (long)plVar5;" (assignment_expression "plVar7[4] = (long)plVar5" (subscript_expression "plVar7[4]" (identifier "plVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(long)plVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar5"))) (; ";")) (expression_statement "*(undefined4 *)((long)plVar7 + 0x34) = local_4c;" (assignment_expression "*(undefined4 *)((long)plVar7 + 0x34) = local_4c" (pointer_expression "*(undefined4 *)((long)plVar7 + 0x34)" (* "*") (cast_expression "(undefined4 *)((long)plVar7 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + 0x34)" (( "(") (binary_expression "(long)plVar7 + 0x34" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "plVar7[9] = local_40;" (assignment_expression "plVar7[9] = local_40" (subscript_expression "plVar7[9]" (identifier "plVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "plVar7[3] = (long)plVar2;" (assignment_expression "plVar7[3] = (long)plVar2" (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2"))) (; ";")) (expression_statement "*(undefined4 *)(plVar7 + 6) = local_50;" (assignment_expression "*(undefined4 *)(plVar7 + 6) = local_50" (pointer_expression "*(undefined4 *)(plVar7 + 6)" (* "*") (cast_expression "(undefined4 *)(plVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 6)" (( "(") (binary_expression "plVar7 + 6" (identifier "plVar7") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}")))))) (if_statement "if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[1] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[1] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[1] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[1] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[1] = plVar7" (pointer_expression "*(undefined8 *)plVar7[1]" (* "*") (cast_expression "(undefined8 *)plVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[2] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[2] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[2] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[2] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[2] = plVar7" (pointer_expression "*(undefined8 *)plVar7[2]" (* "*") (cast_expression "(undefined8 *)plVar7[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[2]" (identifier "plVar7") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[3] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[3] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[3] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[3] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[3] = plVar7" (pointer_expression "*(undefined8 *)plVar7[3]" (* "*") (cast_expression "(undefined8 *)plVar7[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {\n          *(undefined8 *)plVar7[4] = plVar7;\n        }" (if "if") (parenthesized_expression "((undefined8 *)plVar7[4] != (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)plVar7[4] != (undefined8 *)0x0" (cast_expression "(undefined8 *)plVar7[4]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[4]" (identifier "plVar7") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined8 *)plVar7[4] = plVar7;\n        }" ({ "{") (expression_statement "*(undefined8 *)plVar7[4] = plVar7;" (assignment_expression "*(undefined8 *)plVar7[4] = plVar7" (pointer_expression "*(undefined8 *)plVar7[4]" (* "*") (cast_expression "(undefined8 *)plVar7[4]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar7[4]" (identifier "plVar7") ([ "[") (number_literal "4") (] "]")))) (= "=") (identifier "plVar7")) (; ";")) (} "}"))) (} "}")))) (expression_statement "lVar3 = *plVar7;" (assignment_expression "lVar3 = *plVar7" (identifier "lVar3") (= "=") (pointer_expression "*plVar7" (* "*") (identifier "plVar7"))) (; ";")) (while_statement "while (lVar3 != 0) {\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }" (while "while") (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar1 = FUN_0014ea7a(plVar7);\n        iVar4 = 0;\n        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }\n        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;\n        plVar7 = (long *)*plVar7;\n        lVar3 = *plVar7;\n      }" ({ "{") (expression_statement "uVar1 = FUN_0014ea7a(plVar7);" (assignment_expression "uVar1 = FUN_0014ea7a(plVar7)" (identifier "uVar1") (= "=") (call_expression "FUN_0014ea7a(plVar7)" (identifier "FUN_0014ea7a") (argument_list "(plVar7)" (( "(") (identifier "plVar7") () ")")))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }" (if "if") (parenthesized_expression "((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7))" (( "(") (binary_expression "(*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)" (parenthesized_expression "(*(long **)(lVar3 + 8) != plVar7)" (( "(") (binary_expression "*(long **)(lVar3 + 8) != plVar7" (pointer_expression "*(long **)(lVar3 + 8)" (* "*") (cast_expression "(long **)(lVar3 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (identifier "plVar7")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)" (( "(") (comma_expression "iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (, ",") (binary_expression "*(long **)(lVar3 + 0x10) != plVar7" (pointer_expression "*(long **)(lVar3 + 0x10)" (* "*") (cast_expression "(long **)(lVar3 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (identifier "plVar7"))) () ")"))) () ")")) (compound_statement "{\n          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;\n        }" ({ "{") (expression_statement "iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;" (assignment_expression "iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2" (identifier "iVar4") (= "=") (binary_expression "(*(long **)(lVar3 + 0x18) != plVar7) + 2" (parenthesized_expression "(*(long **)(lVar3 + 0x18) != plVar7)" (( "(") (binary_expression "*(long **)(lVar3 + 0x18) != plVar7" (pointer_expression "*(long **)(lVar3 + 0x18)" (* "*") (cast_expression "(long **)(lVar3 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x18)" (( "(") (binary_expression "lVar3 + 0x18" (identifier "lVar3") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "plVar7")) () ")")) (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;" (assignment_expression "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1" (pointer_expression "*(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x28 + (long)iVar4 * 4)" (( "(") (binary_expression "lVar3 + 0x28 + (long)iVar4 * 4" (binary_expression "lVar3 + 0x28" (identifier "lVar3") (+ "+") (number_literal "0x28")) (+ "+") (binary_expression "(long)iVar4 * 4" (cast_expression "(long)iVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar4")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "plVar7 = (long *)*plVar7;" (assignment_expression "plVar7 = (long *)*plVar7" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";")) (expression_statement "lVar3 = *plVar7;" (assignment_expression "lVar3 = *plVar7" (identifier "lVar3") (= "=") (pointer_expression "*plVar7" (* "*") (identifier "plVar7"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}")))

void * function_1(type_1 *t,void *e,int var_4)

{
  type_2 *var_3;
  int var_5;
  type_3 *var_2;
  void *var_6;
  type_3 *n;
  type_3 *var_9;
  int iVar6;
  type_3 *pnVar7;
  type_2 **var_7;
  int local_50;
  int local_4c;
  type_2 *local_48;
  void *local_40;
  
  if (t->root == (type_3 *)0x0) {
    var_2 = (type_3 *)var_1(1,0x50);
    t->root = var_2;
    var_2->elems[2] = (void *)0x0;
    t->root->elems[1] = (void *)0x0;
    t->root->kids[1] = (type_2 *)0x0;
    t->root->kids[0] = (type_2 *)0x0;
    t->root->kids[3] = (type_2 *)0x0;
    t->root->kids[2] = (type_2 *)0x0;
    t->root->counts[1] = 0;
    t->root->counts[0] = 0;
    t->root->counts[3] = 0;
    t->root->counts[2] = 0;
    t->root->parent = (type_3 *)0x0;
    t->root->elems[0] = e;
  }
  else {
    var_2 = t->root;
    local_40 = e;
    if (var_2 == (type_3 *)0x0) {
      local_4c = 0;
      local_50 = 0;
      n = (type_3 *)0x0;
LAB_0014f1d8:
      var_9 = (type_3 *)var_1(1,0x50);
      t->root = var_9;
      var_9->kids[0] = n;
      t->root->counts[0] = local_50;
      t->root->elems[0] = local_40;
      t->root->kids[1] = var_2;
      t->root->counts[1] = local_4c;
      t->root->elems[1] = (void *)0x0;
      t->root->kids[2] = (type_2 *)0x0;
      t->root->counts[2] = 0;
      t->root->elems[2] = (void *)0x0;
      t->root->kids[3] = (type_2 *)0x0;
      t->root->counts[3] = 0;
      t->root->parent = (type_3 *)0x0;
      var_3 = t->root->kids[0];
      if (var_3 != (type_2 *)0x0) {
        var_3->parent = t->root;
      }
      var_3 = t->root->kids[1];
      if (var_3 != (type_2 *)0x0) {
        var_3->parent = t->root;
      }
    }
    else {
      do {
        var_9 = var_2;
        if (var_4 < 0) {
          var_5 = (*t->cmp)(e,var_9->elems[0]);
          if (var_5 < 0) {
            var_5 = 0;
          }
          else {
            if (var_5 == 0) {
              return var_9->elems[0];
            }
            if (var_9->elems[1] == (void *)0x0) {
              var_5 = 1;
            }
            else {
              var_5 = (*t->cmp)(e,var_9->elems[1]);
              if (var_5 < 0) {
                var_5 = 1;
              }
              else {
                if (var_5 == 0) {
                  return var_9->elems[1];
                }
                if (var_9->elems[2] == (void *)0x0) {
                  var_5 = 2;
                }
                else {
                  var_5 = (*t->cmp)(e,var_9->elems[2]);
                  if (var_5 < 0) {
                    var_5 = 2;
                  }
                  else {
                    if (var_5 == 0) {
                      return var_9->elems[2];
                    }
                    var_5 = 3;
                  }
                }
              }
            }
          }
        }
        else {
          var_5 = var_4;
          if (var_9->kids[0] != (type_2 *)0x0) {
            if (var_9->counts[0] < var_4) {
              var_4 = var_4 - (var_9->counts[0] + 1);
              if (var_9->counts[1] < var_4) {
                var_4 = var_4 - (var_9->counts[1] + 1);
                if (var_9->counts[2] < var_4) {
                  var_4 = var_4 - (var_9->counts[2] + 1);
                  if (var_9->counts[3] < var_4) {
                    return (void *)0x0;
                  }
                  var_5 = 3;
                }
                else {
                  var_5 = 2;
                }
              }
              else {
                var_5 = 1;
              }
            }
            else {
              var_5 = 0;
            }
          }
        }
        var_2 = var_9->kids[var_5];
      } while (var_2 != (type_2 *)0x0);
      var_7 = var_9->kids + var_5;
      var_6 = var_9->elems[1];
      if (var_6 == (void *)0x0) {
        local_4c = 0;
        local_50 = 0;
        var_2 = (type_2 *)0x0;
        n = (type_2 *)0x0;
LAB_0014ecd0:
        if (var_7 == var_9->kids) {
          var_9->kids[2] = var_9->kids[1];
          var_9->counts[2] = var_9->counts[1];
          var_9->elems[1] = var_9->elems[0];
          var_9->kids[1] = var_2;
          var_9->counts[1] = local_4c;
          var_9->elems[0] = local_40;
          var_9->kids[0] = n;
          var_9->counts[0] = local_50;
        }
        else {
          var_9->kids[2] = var_2;
          var_9->counts[2] = local_4c;
          var_9->elems[1] = local_40;
          var_9->kids[1] = n;
          var_9->counts[1] = local_50;
        }
        if (var_9->kids[0] != (type_2 *)0x0) {
          var_9->kids[0]->parent = var_9;
        }
        if (var_9->kids[1] != (type_2 *)0x0) {
          var_9->kids[1]->parent = var_9;
        }
        if (var_9->kids[2] != (type_2 *)0x0) {
          var_9->kids[2]->parent = var_9;
        }
      }
      else {
        if (var_9->elems[2] == (void *)0x0) {
          local_4c = 0;
          local_50 = 0;
          var_2 = (type_2 *)0x0;
          n = (type_2 *)0x0;
        }
        else {
          local_4c = 0;
          local_50 = 0;
          pnVar7 = (type_3 *)0x0;
          local_48 = var_2;
          do {
            var_2 = var_9;
            n = (type_3 *)var_1(1,0x50);
            n->parent = var_2->parent;
            if (var_7 == var_2->kids) {
              n->kids[0] = pnVar7;
              n->counts[0] = local_50;
              n->elems[0] = local_40;
              n->kids[1] = local_48;
              n->counts[1] = local_4c;
              n->elems[1] = var_2->elems[0];
              n->kids[2] = var_2->kids[1];
              n->counts[2] = var_2->counts[1];
              local_40 = var_2->elems[1];
              var_2->kids[0] = var_2->kids[2];
              var_2->counts[0] = var_2->counts[2];
              var_2->elems[0] = var_2->elems[2];
              var_2->kids[1] = var_2->kids[3];
              var_2->counts[1] = var_2->counts[3];
            }
            else if (var_7 == var_2->kids + 1) {
              n->kids[0] = var_2->kids[0];
              n->counts[0] = var_2->counts[0];
              n->elems[0] = var_2->elems[0];
              n->kids[1] = pnVar7;
              n->counts[1] = local_50;
              n->elems[1] = local_40;
              n->kids[2] = local_48;
              n->counts[2] = local_4c;
              local_40 = var_2->elems[1];
              var_2->kids[0] = var_2->kids[2];
              var_2->counts[0] = var_2->counts[2];
              var_2->elems[0] = var_2->elems[2];
              var_2->kids[1] = var_2->kids[3];
              var_2->counts[1] = var_2->counts[3];
            }
            else if (var_7 == var_2->kids + 2) {
              n->kids[0] = var_2->kids[0];
              n->counts[0] = var_2->counts[0];
              n->elems[0] = var_2->elems[0];
              n->kids[1] = var_2->kids[1];
              n->counts[1] = var_2->counts[1];
              n->elems[1] = var_2->elems[1];
              n->kids[2] = pnVar7;
              n->counts[2] = local_50;
              var_2->kids[0] = local_48;
              var_2->counts[0] = local_4c;
              var_2->elems[0] = var_2->elems[2];
              var_2->kids[1] = var_2->kids[3];
              var_2->counts[1] = var_2->counts[3];
            }
            else {
              n->kids[0] = var_2->kids[0];
              n->counts[0] = var_2->counts[0];
              n->elems[0] = var_2->elems[0];
              n->kids[1] = var_2->kids[1];
              n->counts[1] = var_2->counts[1];
              n->elems[1] = var_2->elems[1];
              n->kids[2] = var_2->kids[2];
              n->counts[2] = var_2->counts[2];
              var_2->kids[0] = pnVar7;
              var_2->counts[0] = local_50;
              var_2->elems[0] = local_40;
              var_2->kids[1] = local_48;
              var_2->counts[1] = local_4c;
              local_40 = var_2->elems[2];
            }
            var_2->kids[2] = (type_2 *)0x0;
            var_2->kids[3] = (type_2 *)0x0;
            n->kids[3] = (type_2 *)0x0;
            var_2->counts[2] = 0;
            var_2->counts[3] = 0;
            n->counts[3] = 0;
            var_2->elems[1] = (void *)0x0;
            var_2->elems[2] = (void *)0x0;
            n->elems[2] = (void *)0x0;
            if (n->kids[0] != (type_2 *)0x0) {
              n->kids[0]->parent = n;
            }
            if (n->kids[1] != (type_2 *)0x0) {
              n->kids[1]->parent = n;
            }
            if (n->kids[2] != (type_2 *)0x0) {
              n->kids[2]->parent = n;
            }
            if (var_2->kids[0] != (type_2 *)0x0) {
              var_2->kids[0]->parent = var_2;
            }
            if (var_2->kids[1] != (type_2 *)0x0) {
              var_2->kids[1]->parent = var_2;
            }
            local_50 = var_8(n);
            local_4c = var_8(var_2);
            var_9 = var_2->parent;
            if (var_9 == (type_3 *)0x0) goto LAB_0014f1d8;
            if (var_9->kids[0] == var_2) {
              var_7 = var_9->kids;
            }
            else if (var_9->kids[1] == var_2) {
              var_7 = var_9->kids + 1;
            }
            else {
              var_7 = var_9->kids + 3;
              if (var_9->kids[2] == var_2) {
                var_7 = var_9->kids + 2;
              }
            }
            var_6 = var_9->elems[1];
            if (var_6 == (void *)0x0) goto LAB_0014ecd0;
            pnVar7 = n;
            local_48 = var_2;
          } while (var_9->elems[2] != (void *)0x0);
        }
        if (var_7 == var_9->kids) {
          var_9->kids[3] = var_9->kids[2];
          var_9->counts[3] = var_9->counts[2];
          var_9->elems[2] = var_6;
          var_9->kids[2] = var_9->kids[1];
          var_9->counts[2] = var_9->counts[1];
          var_9->elems[1] = var_9->elems[0];
          var_9->kids[1] = var_2;
          var_9->counts[1] = local_4c;
          var_9->elems[0] = local_40;
          var_9->kids[0] = n;
          var_9->counts[0] = local_50;
        }
        else if (var_7 == var_9->kids + 1) {
          var_9->kids[3] = var_9->kids[2];
          var_9->counts[3] = var_9->counts[2];
          var_9->elems[2] = var_6;
          var_9->kids[2] = var_2;
          var_9->counts[2] = local_4c;
          var_9->elems[1] = local_40;
          var_9->kids[1] = n;
          var_9->counts[1] = local_50;
        }
        else {
          var_9->kids[3] = var_2;
          var_9->counts[3] = local_4c;
          var_9->elems[2] = local_40;
          var_9->kids[2] = n;
          var_9->counts[2] = local_50;
        }
        if (var_9->kids[0] != (type_2 *)0x0) {
          var_9->kids[0]->parent = var_9;
        }
        if (var_9->kids[1] != (type_2 *)0x0) {
          var_9->kids[1]->parent = var_9;
        }
        if (var_9->kids[2] != (type_2 *)0x0) {
          var_9->kids[2]->parent = var_9;
        }
        if (var_9->kids[3] != (type_2 *)0x0) {
          var_9->kids[3]->parent = var_9;
        }
      }
      var_2 = var_9->parent;
      while (var_2 != (type_3 *)0x0) {
        var_5 = var_8(var_9);
        iVar6 = 0;
        if ((var_2->kids[0] != var_9) && (iVar6 = 1, var_2->kids[1] != var_9)) {
          iVar6 = (var_2->kids[2] != var_9) + 2;
        }
        var_2->counts[iVar6] = var_5;
        var_9 = var_9->parent;
        var_2 = var_9->parent;
      }
    }
  }
  return e;
}


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

long MASKED(long *param_1,long param_2,int param_3)

{
  undefined4 uVar1;
  long *plVar2;
  long lVar3;
  int iVar4;
  long *plVar5;
  long *plVar6;
  long *plVar7;
  long *local_58;
  undefined4 local_50;
  undefined4 local_4c;
  long *local_48;
  long local_40;
  
  if (*param_1 == 0) {
    lVar3 = FUN_0010ea3d(1,0x50);
    *param_1 = lVar3;
    *(undefined8 *)(lVar3 + 0x48) = 0;
    *(undefined8 *)(*param_1 + 0x40) = 0;
    *(undefined8 *)(*param_1 + 0x10) = 0;
    *(undefined8 *)(*param_1 + 8) = 0;
    *(undefined8 *)(*param_1 + 0x20) = 0;
    *(undefined8 *)(*param_1 + 0x18) = 0;
    *(undefined4 *)(*param_1 + 0x2c) = 0;
    *(undefined4 *)(*param_1 + 0x28) = 0;
    *(undefined4 *)(*param_1 + 0x34) = 0;
    *(undefined4 *)(*param_1 + 0x30) = 0;
    *(undefined8 *)*param_1 = 0;
    *(long *)(*param_1 + 0x38) = param_2;
  }
  else {
    plVar5 = (long *)*param_1;
    local_40 = param_2;
    if (plVar5 == (long *)0x0) {
      local_4c = 0;
      local_50 = 0;
      plVar2 = (long *)0x0;
LAB_0014f1d8:
      lVar3 = FUN_0010ea3d(1,0x50);
      *param_1 = lVar3;
      *(long **)(lVar3 + 8) = plVar2;
      *(undefined4 *)(*param_1 + 0x28) = local_50;
      *(long *)(*param_1 + 0x38) = local_40;
      *(long **)(*param_1 + 0x10) = plVar5;
      *(undefined4 *)(*param_1 + 0x2c) = local_4c;
      *(undefined8 *)(*param_1 + 0x40) = 0;
      *(undefined8 *)(*param_1 + 0x18) = 0;
      *(undefined4 *)(*param_1 + 0x30) = 0;
      *(undefined8 *)(*param_1 + 0x48) = 0;
      *(undefined8 *)(*param_1 + 0x20) = 0;
      *(undefined4 *)(*param_1 + 0x34) = 0;
      *(undefined8 *)*param_1 = 0;
      plVar5 = *(long **)(*param_1 + 8);
      if (plVar5 != (long *)0x0) {
        *plVar5 = *param_1;
      }
      plVar5 = *(long **)(*param_1 + 0x10);
      if (plVar5 != (long *)0x0) {
        *plVar5 = *param_1;
      }
    }
    else {
      do {
        plVar7 = plVar5;
        if (param_3 < 0) {
          iVar4 = (*(code *)param_1[1])(param_2,plVar7[7]);
          if (iVar4 < 0) {
            iVar4 = 0;
          }
          else {
            if (iVar4 == 0) {
              return plVar7[7];
            }
            if (plVar7[8] == 0) {
              iVar4 = 1;
            }
            else {
              iVar4 = (*(code *)param_1[1])(param_2);
              if (iVar4 < 0) {
                iVar4 = 1;
              }
              else {
                if (iVar4 == 0) {
                  return plVar7[8];
                }
                if (plVar7[9] == 0) {
                  iVar4 = 2;
                }
                else {
                  iVar4 = (*(code *)param_1[1])(param_2);
                  if (iVar4 < 0) {
                    iVar4 = 2;
                  }
                  else {
                    if (iVar4 == 0) {
                      return plVar7[9];
                    }
                    iVar4 = 3;
                  }
                }
              }
            }
          }
        }
        else {
          iVar4 = param_3;
          if (plVar7[1] != 0) {
            if ((int)plVar7[5] < param_3) {
              param_3 = param_3 - ((int)plVar7[5] + 1);
              if (*(int *)((long)plVar7 + 0x2c) < param_3) {
                param_3 = param_3 - (*(int *)((long)plVar7 + 0x2c) + 1);
                if ((int)plVar7[6] < param_3) {
                  param_3 = param_3 - ((int)plVar7[6] + 1);
                  if (*(int *)((long)plVar7 + 0x34) < param_3) {
                    return 0;
                  }
                  iVar4 = 3;
                }
                else {
                  iVar4 = 2;
                }
              }
              else {
                iVar4 = 1;
              }
            }
            else {
              iVar4 = 0;
            }
          }
        }
        plVar5 = (long *)plVar7[(long)iVar4 + 1];
      } while (plVar5 != (long *)0x0);
      local_58 = plVar7 + (long)iVar4 + 1;
      lVar3 = plVar7[8];
      if (lVar3 == 0) {
        local_4c = 0;
        local_50 = 0;
        plVar5 = (long *)0x0;
        plVar2 = (long *)0x0;
LAB_0014ecd0:
        if (local_58 == plVar7 + 1) {
          plVar7[3] = plVar7[2];
          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);
          plVar7[8] = plVar7[7];
          plVar7[2] = (long)plVar5;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;
          plVar7[7] = local_40;
          plVar7[1] = (long)plVar2;
          *(undefined4 *)(plVar7 + 5) = local_50;
        }
        else {
          plVar7[3] = (long)plVar5;
          *(undefined4 *)(plVar7 + 6) = local_4c;
          plVar7[8] = local_40;
          plVar7[2] = (long)plVar2;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;
        }
        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[1] = plVar7;
        }
        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[2] = plVar7;
        }
        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[3] = plVar7;
        }
      }
      else {
        if (plVar7[9] == 0) {
          local_4c = 0;
          local_50 = 0;
          plVar5 = (long *)0x0;
          plVar2 = (long *)0x0;
        }
        else {
          local_4c = 0;
          local_50 = 0;
          plVar6 = (long *)0x0;
          local_48 = plVar5;
          do {
            plVar5 = plVar7;
            plVar2 = (long *)FUN_0010ea3d(1,0x50);
            *plVar2 = *plVar5;
            if (local_58 == plVar5 + 1) {
              plVar2[1] = (long)plVar6;
              *(undefined4 *)(plVar2 + 5) = local_50;
              plVar2[7] = local_40;
              plVar2[2] = (long)local_48;
              *(undefined4 *)((long)plVar2 + 0x2c) = local_4c;
              plVar2[8] = plVar5[7];
              plVar2[3] = plVar5[2];
              *(undefined4 *)(plVar2 + 6) = *(undefined4 *)((long)plVar5 + 0x2c);
              local_40 = plVar5[8];
              plVar5[1] = plVar5[3];
              *(int *)(plVar5 + 5) = (int)plVar5[6];
              plVar5[7] = plVar5[9];
              plVar5[2] = plVar5[4];
              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);
            }
            else if (local_58 == plVar5 + 2) {
              plVar2[1] = plVar5[1];
              *(int *)(plVar2 + 5) = (int)plVar5[5];
              plVar2[7] = plVar5[7];
              plVar2[2] = (long)plVar6;
              *(undefined4 *)((long)plVar2 + 0x2c) = local_50;
              plVar2[8] = local_40;
              plVar2[3] = (long)local_48;
              *(undefined4 *)(plVar2 + 6) = local_4c;
              local_40 = plVar5[8];
              plVar5[1] = plVar5[3];
              *(int *)(plVar5 + 5) = (int)plVar5[6];
              plVar5[7] = plVar5[9];
              plVar5[2] = plVar5[4];
              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);
            }
            else if (local_58 == plVar5 + 3) {
              plVar2[1] = plVar5[1];
              *(int *)(plVar2 + 5) = (int)plVar5[5];
              plVar2[7] = plVar5[7];
              plVar2[2] = plVar5[2];
              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);
              plVar2[8] = plVar5[8];
              plVar2[3] = (long)plVar6;
              *(undefined4 *)(plVar2 + 6) = local_50;
              plVar5[1] = (long)local_48;
              *(undefined4 *)(plVar5 + 5) = local_4c;
              plVar5[7] = plVar5[9];
              plVar5[2] = plVar5[4];
              *(undefined4 *)((long)plVar5 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x34);
            }
            else {
              plVar2[1] = plVar5[1];
              *(int *)(plVar2 + 5) = (int)plVar5[5];
              plVar2[7] = plVar5[7];
              plVar2[2] = plVar5[2];
              *(undefined4 *)((long)plVar2 + 0x2c) = *(undefined4 *)((long)plVar5 + 0x2c);
              plVar2[8] = plVar5[8];
              plVar2[3] = plVar5[3];
              *(int *)(plVar2 + 6) = (int)plVar5[6];
              plVar5[1] = (long)plVar6;
              *(undefined4 *)(plVar5 + 5) = local_50;
              plVar5[7] = local_40;
              plVar5[2] = (long)local_48;
              *(undefined4 *)((long)plVar5 + 0x2c) = local_4c;
              local_40 = plVar5[9];
            }
            plVar5[3] = 0;
            plVar5[4] = 0;
            plVar2[4] = 0;
            *(undefined4 *)(plVar5 + 6) = 0;
            *(undefined4 *)((long)plVar5 + 0x34) = 0;
            *(undefined4 *)((long)plVar2 + 0x34) = 0;
            plVar5[8] = 0;
            plVar5[9] = 0;
            plVar2[9] = 0;
            if ((undefined8 *)plVar2[1] != (undefined8 *)0x0) {
              *(undefined8 *)plVar2[1] = plVar2;
            }
            if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {
              *(undefined8 *)plVar2[2] = plVar2;
            }
            if ((undefined8 *)plVar2[3] != (undefined8 *)0x0) {
              *(undefined8 *)plVar2[3] = plVar2;
            }
            if ((undefined8 *)plVar5[1] != (undefined8 *)0x0) {
              *(undefined8 *)plVar5[1] = plVar5;
            }
            if ((undefined8 *)plVar5[2] != (undefined8 *)0x0) {
              *(undefined8 *)plVar5[2] = plVar5;
            }
            local_50 = FUN_0014ea7a(plVar2);
            local_4c = FUN_0014ea7a(plVar5);
            plVar7 = (long *)*plVar5;
            if (plVar7 == (long *)0x0) goto LAB_0014f1d8;
            if ((long *)plVar7[1] == plVar5) {
              local_58 = plVar7 + 1;
            }
            else if ((long *)plVar7[2] == plVar5) {
              local_58 = plVar7 + 2;
            }
            else {
              local_58 = plVar7 + 4;
              if ((long *)plVar7[3] == plVar5) {
                local_58 = plVar7 + 3;
              }
            }
            lVar3 = plVar7[8];
            if (lVar3 == 0) goto LAB_0014ecd0;
            plVar6 = plVar2;
            local_48 = plVar5;
          } while (plVar7[9] != 0);
        }
        if (local_58 == plVar7 + 1) {
          plVar7[4] = plVar7[3];
          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];
          plVar7[9] = lVar3;
          plVar7[3] = plVar7[2];
          *(undefined4 *)(plVar7 + 6) = *(undefined4 *)((long)plVar7 + 0x2c);
          plVar7[8] = plVar7[7];
          plVar7[2] = (long)plVar5;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_4c;
          plVar7[7] = local_40;
          plVar7[1] = (long)plVar2;
          *(undefined4 *)(plVar7 + 5) = local_50;
        }
        else if (local_58 == plVar7 + 2) {
          plVar7[4] = plVar7[3];
          *(int *)((long)plVar7 + 0x34) = (int)plVar7[6];
          plVar7[9] = lVar3;
          plVar7[3] = (long)plVar5;
          *(undefined4 *)(plVar7 + 6) = local_4c;
          plVar7[8] = local_40;
          plVar7[2] = (long)plVar2;
          *(undefined4 *)((long)plVar7 + 0x2c) = local_50;
        }
        else {
          plVar7[4] = (long)plVar5;
          *(undefined4 *)((long)plVar7 + 0x34) = local_4c;
          plVar7[9] = local_40;
          plVar7[3] = (long)plVar2;
          *(undefined4 *)(plVar7 + 6) = local_50;
        }
        if ((undefined8 *)plVar7[1] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[1] = plVar7;
        }
        if ((undefined8 *)plVar7[2] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[2] = plVar7;
        }
        if ((undefined8 *)plVar7[3] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[3] = plVar7;
        }
        if ((undefined8 *)plVar7[4] != (undefined8 *)0x0) {
          *(undefined8 *)plVar7[4] = plVar7;
        }
      }
      lVar3 = *plVar7;
      while (lVar3 != 0) {
        uVar1 = FUN_0014ea7a(plVar7);
        iVar4 = 0;
        if ((*(long **)(lVar3 + 8) != plVar7) && (iVar4 = 1, *(long **)(lVar3 + 0x10) != plVar7)) {
          iVar4 = (*(long **)(lVar3 + 0x18) != plVar7) + 2;
        }
        *(undefined4 *)(lVar3 + 0x28 + (long)iVar4 * 4) = uVar1;
        plVar7 = (long *)*plVar7;
        lVar3 = *plVar7;
      }
    }
  }
  return param_2;
}

