
char * macro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,
                        macro_entry *macro)

{
  sb *psVar1;
  byte bVar2;
  char cVar3;
  ushort uVar4;
  formal_struct *pfVar5;
  bool bVar6;
  int iVar7;
  ulong uVar8;
  char *pcVar9;
  char *format;
  formal_entry *formal;
  void *pvVar10;
  formal_struct *pfVar11;
  int iVar12;
  ulong uVar13;
  ulong idx;
  int local_9c;
  formal_entry *local_80;
  char buffer [12];
  sb t;
  
  idx = 0;
  pfVar11 = (formal_struct *)0x0;
  sb_new(&t);
  uVar8 = in->len;
  local_9c = 0;
  bVar6 = false;
  formal = (formal_entry *)0x0;
LAB_00121040:
  uVar13 = idx;
  if (pfVar11 != (formal_struct *)0x0) {
LAB_001210c0:
    sb_kill(&t);
    while (formal != (formal_entry *)0x0) {
      pfVar5 = formal->next;
      pcVar9 = sb_terminate(&formal->name);
      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));
      del_formal(formal);
      formal = pfVar5;
    }
    return (char *)pfVar11;
  }
  do {
    if (uVar8 <= uVar13) goto LAB_001210c0;
    pcVar9 = in->ptr;
    bVar2 = pcVar9[uVar13];
    if (bVar2 == 0x26) {
      idx = uVar13 + 1;
      sb_reset(&t);
      if (macro_mri == 0) {
        iVar7 = 0x26;
        iVar12 = 0;
      }
      else {
        if ((in->len <= idx) || (in->ptr[idx] != '&')) {
          pfVar11 = (formal_struct *)0x0;
          sb_add_char(out,(long)in->ptr[uVar13]);
          uVar8 = in->len;
          goto LAB_00121040;
        }
        idx = uVar13 + 2;
        iVar12 = 1;
        iVar7 = 0x27;
      }
LAB_0012120b:
      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);
      pfVar11 = (formal_struct *)0x0;
      uVar8 = in->len;
      goto LAB_00121040;
    }
    if (bVar2 == 0x5c) {
      idx = uVar13 + 1;
      if (uVar8 <= idx) goto LAB_001211e1;
      bVar2 = pcVar9[uVar13 + 1];
      if (bVar2 == 0x28) {
        idx = uVar13 + 2;
        if (uVar8 <= idx) goto LAB_00121548;
        cVar3 = pcVar9[idx];
        break;
      }
      if (bVar2 == 0x40) {
        idx = uVar13 + 2;
        sprintf(buffer,"%d",(ulong)(uint)macro_number);
        pfVar11 = (formal_struct *)0x0;
        sb_add_string(out,buffer);
        uVar8 = in->len;
        goto LAB_00121040;
      }
      if (bVar2 == 0x26) {
        idx = uVar13 + 2;
        sb_add_char(out,0x5c);
        pfVar11 = (formal_struct *)0x0;
        sb_add_char(out,0x26);
        uVar8 = in->len;
        goto LAB_00121040;
      }
      if (macro_mri != 0) {
        iVar7 = (int)(char)bVar2;
        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);
        if ((uVar4 & 0x8c) != 0) {
          iVar12 = iVar7 + -0x30;
          if ((uVar4 & 4) == 0) {
            iVar12 = iVar7 + -0x57;
            if ((uVar4 & 0x80) != 0) {
              iVar12 = iVar7 + -0x37;
            }
          }
          idx = uVar13 + 2;
          if (formals == (formal_entry *)0x0) goto LAB_001213b6;
          iVar7 = formals->index;
          pfVar11 = formals;
          goto joined_r0x00121481;
        }
      }
LAB_001211e1:
      sb_reset(&t);
      iVar12 = 0;
      iVar7 = 0x27;
      goto LAB_0012120b;
    }
    if (macro_mri == 0 && macro_alternate == 0) {
      if (bVar2 == 0x22) {
LAB_001212f0:
        bVar6 = (bool)(bVar6 ^ 1);
      }
      else if (bVar2 == 0x40) {
LAB_001213a0:
        idx = uVar13 + 1;
        if (macro_strip_at != 0) {
          if ((idx < uVar8) && (pcVar9[idx] == '@')) {
            idx = uVar13 + 2;
            pfVar11 = (formal_struct *)0x0;
            sb_add_char(out,0x40);
            uVar8 = in->len;
          }
          else {
LAB_001213b6:
            pfVar11 = (formal_struct *)0x0;
          }
          goto LAB_00121040;
        }
      }
      else {
LAB_00121096:
        local_9c = local_9c + (uint)(bVar2 == 10);
      }
LAB_001210a6:
      idx = uVar13 + 1;
      sb_add_char(out,(long)(char)bVar2);
    }
    else {
      if ((lex_type[bVar2] & 2) == 0) {
LAB_00121240:
        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;
        if (bVar2 == 0x40) goto LAB_001213a0;
        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;
        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;
        sb_reset(&t);
        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);
        pcVar9 = sb_terminate(&t);
        pvVar10 = hash_find(formal_hash,pcVar9);
        if (pvVar10 == (void *)0x0) {
          sb_add_char(out,0x3d);
          sb_add_char(out,0x3d);
          sb_add_sb(out,&t);
          uVar8 = in->len;
          pfVar11 = (formal_struct *)0x0;
        }
        else if (*(long *)((long)pvVar10 + 0x40) == 0) {
          pfVar11 = (formal_struct *)0x0;
          sb_add_char(out,0x30);
          uVar8 = in->len;
        }
        else {
          pfVar11 = (formal_struct *)0x0;
          sb_add_string(out,"-1");
          uVar8 = in->len;
        }
        goto LAB_00121040;
      }
      if (!bVar6) {
        if (macro == (macro_entry *)0x0) {
          sb_reset(&t);
          iVar7 = 0x27;
        }
        else {
          if (uVar13 + 5 < uVar8) goto LAB_00121348;
          sb_reset(&t);
LAB_0012131f:
          iVar7 = 0x27;
        }
LAB_00121325:
        iVar12 = 1;
        idx = uVar13;
        goto LAB_0012120b;
      }
      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))
      goto LAB_00121240;
      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {
LAB_00121161:
        sb_reset(&t);
        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;
LAB_00121184:
        iVar7 = 0x40;
        goto LAB_00121325;
      }
LAB_00121348:
      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);
      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))
      goto LAB_00121161;
      if (bVar6) {
        sb_reset(&t);
        if (macro_strip_at == 0) goto LAB_0012131f;
        goto LAB_00121184;
      }
      idx = sb_skip_white(uVar13 + 5,in);
      local_80 = formal;
      if (in->ptr[idx] != '\n') goto LAB_00121701;
    }
    pfVar11 = (formal_struct *)0x0;
    uVar8 = in->len;
    uVar13 = idx;
  } while( true );
joined_r0x00121513:
  if (cVar3 == ')') goto LAB_001215cd;
  idx = idx + 1;
  sb_add_char(out,(long)cVar3);
  uVar8 = in->len;
  if (uVar8 <= idx) goto LAB_00121548;
  cVar3 = in->ptr[idx];
  goto joined_r0x00121513;
LAB_001215cd:
  idx = idx + 1;
  pfVar11 = (formal_struct *)0x0;
  goto LAB_00121040;
LAB_00121548:
  if (macro == (macro_entry *)0x0) {
    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);
    uVar8 = in->len;
  }
  else {
    pfVar11 = (formal_struct *)0x0;
    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);
    as_bad_where(macro->file,local_9c + macro->line,pcVar9);
    uVar8 = in->len;
  }
  goto LAB_00121040;
joined_r0x00121481:
  if (iVar12 + -1 == iVar7) goto LAB_001214a2;
  pfVar11 = pfVar11->next;
  if (pfVar11 == (formal_struct *)0x0) goto LAB_00121040;
  iVar7 = pfVar11->index;
  goto joined_r0x00121481;
LAB_001214a2:
  if ((pfVar11->actual).len == 0) {
    psVar1 = &pfVar11->def;
    pfVar11 = (formal_struct *)0x0;
    sb_add_sb(out,psVar1);
    uVar8 = in->len;
  }
  else {
    psVar1 = &pfVar11->actual;
    pfVar11 = (formal_struct *)0x0;
    sb_add_sb(out,psVar1);
    uVar8 = in->len;
  }
  goto LAB_00121040;
LAB_00121701:
  do {
    formal = new_formal();
    idx = get_token(idx,in,(sb *)&in->len,&formal->name);
    pcVar9 = sb_terminate(&formal->name);
    pvVar10 = hash_find(formal_hash,pcVar9);
    if (pvVar10 == (void *)0x0) {
      formal->index = -3;
      formal->next = local_80;
      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =
           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;
      sprintf(buffer,".LL%04x");
      sb_add_string(&formal->actual,buffer);
      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);
      local_80 = formal;
      if (pfVar11 != (formal_struct *)0x0) {
        uVar8 = in->len;
        goto LAB_00121040;
      }
    }
    else {
      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);
      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);
      del_formal(formal);
    }
    idx = sb_skip_comma(idx,in);
  } while (in->ptr[idx] != '\n');
  uVar8 = in->len;
  pfVar11 = (formal_struct *)0x0;
  formal = local_80;
  goto LAB_00121040;
}



long FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)

{
  byte bVar1;
  char cVar2;
  ushort uVar3;
  long *plVar4;
  bool bVar5;
  int iVar6;
  ulong uVar7;
  undefined8 uVar8;
  long *plVar9;
  long lVar10;
  long *plVar11;
  int iVar12;
  ulong uVar13;
  ulong uVar14;
  undefined8 uVar15;
  int local_9c;
  long *local_80;
  char local_78 [32];
  undefined1 local_58 [40];
  
  uVar14 = 0;
  plVar11 = (long *)0x0;
  FUN_0012c630(local_58);
  uVar7 = param_1[1];
  local_9c = 0;
  bVar5 = false;
  plVar9 = (long *)0x0;
LAB_00121040:
  uVar13 = uVar14;
  if (plVar11 != (long *)0x0) {
LAB_001210c0:
    FUN_0012c660(local_58);
    while (plVar9 != (long *)0x0) {
      plVar4 = (long *)*plVar9;
      uVar8 = FUN_0012c7c0(plVar9 + 1);
      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);
      FUN_00120ce0(plVar9);
      plVar9 = plVar4;
    }
    return (long)plVar11;
  }
  do {
    if (uVar7 <= uVar13) goto LAB_001210c0;
    lVar10 = *param_1;
    bVar1 = *(byte *)(lVar10 + uVar13);
    if (bVar1 == 0x26) {
      uVar14 = uVar13 + 1;
      FUN_0012c710(local_58);
      if (DAT_0016d9e4 == 0) {
        uVar8 = 0x26;
        uVar15 = 0;
      }
      else {
        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {
          plVar11 = (long *)0x0;
          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));
          uVar7 = param_1[1];
          goto LAB_00121040;
        }
        uVar14 = uVar13 + 2;
        uVar15 = 1;
        uVar8 = 0x27;
      }
LAB_0012120b:
      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);
      plVar11 = (long *)0x0;
      uVar7 = param_1[1];
      goto LAB_00121040;
    }
    if (bVar1 == 0x5c) {
      uVar14 = uVar13 + 1;
      if (uVar7 <= uVar14) goto LAB_001211e1;
      bVar1 = *(byte *)(lVar10 + 1 + uVar13);
      if (bVar1 == 0x28) {
        uVar14 = uVar13 + 2;
        if (uVar7 <= uVar14) goto LAB_00121548;
        cVar2 = *(char *)(lVar10 + uVar14);
        break;
      }
      if (bVar1 == 0x40) {
        uVar14 = uVar13 + 2;
        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);
        plVar11 = (long *)0x0;
        FUN_0012c750(param_2,local_78);
        uVar7 = param_1[1];
        goto LAB_00121040;
      }
      if (bVar1 == 0x26) {
        uVar14 = uVar13 + 2;
        FUN_0012c720(param_2,0x5c);
        plVar11 = (long *)0x0;
        FUN_0012c720(param_2,0x26);
        uVar7 = param_1[1];
        goto LAB_00121040;
      }
      if (DAT_0016d9e4 != 0) {
        iVar6 = (int)(char)bVar1;
        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);
        if ((uVar3 & 0x8c) != 0) {
          iVar12 = iVar6 + -0x30;
          if ((uVar3 & 4) == 0) {
            iVar12 = iVar6 + -0x57;
            if ((uVar3 & 0x80) != 0) {
              iVar12 = iVar6 + -0x37;
            }
          }
          uVar14 = uVar13 + 2;
          if (param_3 == (long *)0x0) goto LAB_001213b6;
          iVar6 = (int)param_3[10];
          plVar11 = param_3;
          goto joined_r0x00121481;
        }
      }
LAB_001211e1:
      FUN_0012c710(local_58);
      uVar15 = 0;
      uVar8 = 0x27;
      goto LAB_0012120b;
    }
    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {
      if (bVar1 == 0x22) {
LAB_001212f0:
        bVar5 = (bool)(bVar5 ^ 1);
      }
      else if (bVar1 == 0x40) {
LAB_001213a0:
        uVar14 = uVar13 + 1;
        if (DAT_0016d9e0 != 0) {
          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {
            uVar14 = uVar13 + 2;
            plVar11 = (long *)0x0;
            FUN_0012c720(param_2,0x40);
            uVar7 = param_1[1];
          }
          else {
LAB_001213b6:
            plVar11 = (long *)0x0;
          }
          goto LAB_00121040;
        }
      }
      else {
LAB_00121096:
        local_9c = local_9c + (uint)(bVar1 == 10);
      }
LAB_001210a6:
      uVar14 = uVar13 + 1;
      FUN_0012c720(param_2,(long)(char)bVar1);
    }
    else {
      if (((&DAT_00164680)[bVar1] & 2) == 0) {
LAB_00121240:
        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;
        if (bVar1 == 0x40) goto LAB_001213a0;
        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;
        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;
        FUN_0012c710(local_58);
        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);
        uVar8 = FUN_0012c7c0(local_58);
        lVar10 = FUN_0011d830(param_4,uVar8);
        if (lVar10 == 0) {
          FUN_0012c720(param_2,0x3d);
          FUN_0012c720(param_2,0x3d);
          FUN_0012c670(param_2,local_58);
          uVar7 = param_1[1];
          plVar11 = (long *)0x0;
        }
        else if (*(long *)(lVar10 + 0x40) == 0) {
          plVar11 = (long *)0x0;
          FUN_0012c720(param_2,0x30);
          uVar7 = param_1[1];
        }
        else {
          plVar11 = (long *)0x0;
          FUN_0012c750(param_2,&DAT_00148e9e);
          uVar7 = param_1[1];
        }
        goto LAB_00121040;
      }
      if (!bVar5) {
        if (param_5 == 0) {
          FUN_0012c710(local_58);
          uVar8 = 0x27;
        }
        else {
          if (uVar13 + 5 < uVar7) goto LAB_00121348;
          FUN_0012c710(local_58);
LAB_0012131f:
          uVar8 = 0x27;
        }
LAB_00121325:
        uVar15 = 1;
        uVar14 = uVar13;
        goto LAB_0012120b;
      }
      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))
      goto LAB_00121240;
      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {
LAB_00121161:
        FUN_0012c710(local_58);
        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;
LAB_00121184:
        uVar8 = 0x40;
        goto LAB_00121325;
      }
LAB_00121348:
      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);
      if ((iVar6 != 0) ||
         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))
      goto LAB_00121161;
      if (bVar5) {
        FUN_0012c710(local_58);
        if (DAT_0016d9e0 == 0) goto LAB_0012131f;
        goto LAB_00121184;
      }
      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);
      local_80 = plVar9;
      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;
    }
    plVar11 = (long *)0x0;
    uVar7 = param_1[1];
    uVar13 = uVar14;
  } while( true );
joined_r0x00121513:
  if (cVar2 == ')') goto LAB_001215cd;
  uVar14 = uVar14 + 1;
  FUN_0012c720(param_2);
  uVar7 = param_1[1];
  if (uVar7 <= uVar14) goto LAB_00121548;
  cVar2 = *(char *)(*param_1 + uVar14);
  goto joined_r0x00121513;
LAB_001215cd:
  uVar14 = uVar14 + 1;
  plVar11 = (long *)0x0;
  goto LAB_00121040;
LAB_00121548:
  if (param_5 == 0) {
    plVar11 = (long *)dcgettext(0,"missing `)\'",5);
    uVar7 = param_1[1];
  }
  else {
    plVar11 = (long *)0x0;
    uVar8 = dcgettext(0,"missing `)\'",5);
    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);
    uVar7 = param_1[1];
  }
  goto LAB_00121040;
joined_r0x00121481:
  if (iVar12 + -1 == iVar6) goto LAB_001214a2;
  plVar11 = (long *)*plVar11;
  if (plVar11 == (long *)0x0) goto LAB_00121040;
  iVar6 = *(int *)(plVar11 + 10);
  goto joined_r0x00121481;
LAB_001214a2:
  if (plVar11[8] == 0) {
    plVar4 = plVar11 + 4;
    plVar11 = (long *)0x0;
    FUN_0012c670(param_2,plVar4);
    uVar7 = param_1[1];
  }
  else {
    plVar4 = plVar11 + 7;
    plVar11 = (long *)0x0;
    FUN_0012c670(param_2,plVar4);
    uVar7 = param_1[1];
  }
  goto LAB_00121040;
LAB_00121701:
  do {
    plVar9 = (long *)FUN_00120ca0();
    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);
    uVar8 = FUN_0012c7c0(plVar9 + 1);
    lVar10 = FUN_0011d830(param_4,uVar8);
    if (lVar10 == 0) {
      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;
      *plVar9 = (long)local_80;
      DAT_0016d9d0 = DAT_0016d9d0 + 1;
      sprintf(local_78,".LL%04x");
      FUN_0012c750(plVar9 + 7,local_78);
      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);
      local_80 = plVar9;
      if (plVar11 != (long *)0x0) {
        uVar7 = param_1[1];
        goto LAB_00121040;
      }
    }
    else {
      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);
      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)
      ;
      FUN_00120ce0(plVar9);
    }
    uVar14 = FUN_0012c800(uVar14,param_1);
  } while (*(char *)(*param_1 + uVar14) != '\n');
  uVar7 = param_1[1];
  plVar11 = (long *)0x0;
  plVar9 = local_80;
  goto LAB_00121040;
}


PUSH R15
XOR R15D,R15D
PUSH R14
XOR R14D,R14D
PUSH R13
PUSH R12
MOV R12,RCX
PUSH RBP
MOV RBP,RDI
PUSH RBX
XOR EBX,EBX
SUB RSP,0x88
LEA RAX,[RSP + 0x60]
MOV qword ptr [RSP],RSI
MOV RDI,RAX
MOV qword ptr [RSP + 0x8],RAX
MOV qword ptr [RSP + 0x28],RDX
MOV qword ptr [RSP + 0x10],R8
CALL 0x0012c630
LEA RCX,[RSP + 0x40]
MOV RAX,qword ptr [RBP + 0x8]
MOV dword ptr [RSP + 0x1c],0x0
MOV dword ptr [RSP + 0x18],0x0
MOV qword ptr [RSP + 0x20],RCX
NOP dword ptr [RAX]
TEST R14,R14
JNZ 0x001210c0
CMP R15,RAX
JNC 0x001210c0
MOV R13,qword ptr [RBP]
LEA RDI,[R13 + R15*0x1]
MOVZX ESI,byte ptr [RDI]
CMP SIL,0x26
JZ 0x001212a0
CMP SIL,0x5c
JZ 0x00121190
MOV EDX,dword ptr [0x0016d9e4]
MOV ECX,EDX
OR ECX,dword ptr [0x0016d9e8]
JNZ 0x00121118
CMP SIL,0x22
JZ 0x001212f0
LEA RDX,[R15 + 0x1]
CMP SIL,0x40
JZ 0x001213a0
XOR EAX,EAX
CMP SIL,0xa
MOV R15,RDX
SETZ AL
ADD dword ptr [RSP + 0x1c],EAX
MOV RDI,qword ptr [RSP]
MOVSX RSI,SIL
CALL 0x0012c720
XOR R14D,R14D
MOV RAX,qword ptr [RBP + 0x8]
TEST R14,R14
JZ 0x00121045
NOP
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0012c660
TEST RBX,RBX
JZ 0x001210ff
NOP
MOV RBP,qword ptr [RBX]
LEA RDI,[RBX + 0x8]
CALL 0x0012c7c0
XOR EDX,EDX
MOV RDI,R12
TEST RBP,RBP
MOV RSI,RAX
SETZ DL
CALL 0x0011d8a0
MOV RDI,RBX
MOV RBX,RBP
CALL 0x00120ce0
TEST RBP,RBP
JNZ 0x001210d0
ADD RSP,0x88
MOV RAX,R14
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOVZX ECX,SIL
LEA R10,[0x164680]
TEST byte ptr [R10 + RCX*0x1],0x2
JZ 0x00121240
MOV R9D,dword ptr [RSP + 0x18]
TEST R9D,R9D
JZ 0x00121300
MOV R8D,dword ptr [0x0016d9e0]
TEST R8D,R8D
JNZ 0x00121228
CMP qword ptr [RSP + 0x10],0x0
JZ 0x00121161
LEA R14,[R15 + 0x5]
CMP R14,RAX
JC 0x00121348
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0012c710
MOV ESI,dword ptr [0x0016d9e0]
TEST ESI,ESI
JZ 0x0012131f
TEST byte ptr [RSP + 0x18],0x1
JZ 0x0012131f
MOV R8D,0x40
JMP 0x00121325
LEA R14,[R15 + 0x1]
CMP R14,RAX
JNC 0x001211e1
MOVZX EDX,byte ptr [R13 + R15*0x1 + 0x1]
CMP DL,0x28
JZ 0x00121500
CMP DL,0x40
JZ 0x001213e8
CMP DL,0x26
JZ 0x001214d0
MOV R10D,dword ptr [0x0016d9e4]
TEST R10D,R10D
JZ 0x001211e1
MOVSX ECX,DL
LEA RSI,[0x15bc80]
MOVZX EDX,DL
MOVZX ESI,word ptr [RSI + RDX*0x2]
TEST SIL,0x8c
JNZ 0x00121450
MOV R15,qword ptr [RSP + 0x8]
MOV RDI,R15
CALL 0x0012c710
SUB RSP,0x8
MOV RCX,R12
MOV RDX,R15
PUSH 0x0
MOV R9,qword ptr [RSP + 0x10]
MOV R8D,0x27
MOV RSI,RBP
MOV RDI,R14
CALL 0x00120e40
XOR R14D,R14D
POP R11
POP R13
MOV R15,RAX
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
TEST R15,R15
JZ 0x00121240
CMP byte ptr [R13 + R15*0x1 + -0x1],0x40
JZ 0x0012114c
NOP dword ptr [RAX]
CMP SIL,0x22
JZ 0x001212f0
TEST EDX,EDX
SETNZ CL
CMP SIL,0x27
JNZ 0x0012125d
TEST CL,CL
JNZ 0x001212f0
LEA RDX,[R15 + 0x1]
CMP SIL,0x40
JZ 0x001213a0
CMP SIL,0x3d
JNZ 0x00121096
TEST CL,CL
JZ 0x00121096
CMP RAX,RDX
JBE 0x00121290
CMP byte ptr [R13 + RDX*0x1],0x3d
JZ 0x001215f2
NOP
MOV R15,RDX
JMP 0x001210a6
MOV RDI,qword ptr [RSP + 0x8]
LEA R13,[R15 + 0x1]
CALL 0x0012c710
MOV R14D,dword ptr [0x0016d9e4]
TEST R14D,R14D
JZ 0x001213c0
CMP qword ptr [RBP + 0x8],R13
MOV RAX,qword ptr [RBP]
JBE 0x001212d3
CMP byte ptr [RAX + R13*0x1],0x26
JZ 0x00121590
MOVSX RSI,byte ptr [RAX + R15*0x1]
MOV RDI,qword ptr [RSP]
MOV R15,R13
XOR R14D,R14D
CALL 0x0012c720
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
XOR dword ptr [RSP + 0x18],0x1
ADD R15,0x1
JMP 0x001210a6
CMP qword ptr [RSP + 0x10],0x0
JZ 0x001215b8
LEA R14,[R15 + 0x5]
CMP R14,RAX
JC 0x00121348
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0012c710
MOV R8D,0x27
SUB RSP,0x8
MOV RCX,R12
MOV RSI,RBP
MOV RDI,R15
PUSH 0x1
MOV R9,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RSP + 0x18]
JMP 0x0012120b
MOV EDX,0x5
LEA RSI,[0x148e90]
CALL 0x00109510
TEST EAX,EAX
JNZ 0x00121161
MOVZX EAX,byte ptr [R13 + R14*0x1]
CMP AL,0x20
JZ 0x00121373
CMP AL,0x9
JNZ 0x00121161
MOV EDI,dword ptr [RSP + 0x18]
TEST EDI,EDI
JZ 0x0012167a
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0012c710
MOV EAX,dword ptr [0x0016d9e0]
TEST EAX,EAX
JNZ 0x00121184
JMP 0x0012131f
MOV ECX,dword ptr [0x0016d9e0]
TEST ECX,ECX
JZ 0x00121290
CMP RDX,RAX
JC 0x00121420
MOV R15,RDX
XOR R14D,R14D
JMP 0x00121040
SUB RSP,0x8
MOV R8D,0x26
MOV RCX,R12
MOV RSI,RBP
PUSH 0x0
MOV RDI,R13
MOV R9,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RSP + 0x18]
JMP 0x0012120b
MOV R14,qword ptr [RSP + 0x20]
MOV EDX,dword ptr [0x0016d9d4]
XOR EAX,EAX
ADD R15,0x2
LEA RSI,[0x14a356]
MOV RDI,R14
CALL 0x00109700
MOV RDI,qword ptr [RSP]
MOV RSI,R14
XOR R14D,R14D
CALL 0x0012c750
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
CMP byte ptr [R13 + RDX*0x1],0x40
JNZ 0x001213b3
MOV RDI,qword ptr [RSP]
MOV ESI,0x40
ADD R15,0x2
XOR R14D,R14D
CALL 0x0012c720
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
LEA EDX,[RCX + -0x30]
TEST SIL,0x4
JNZ 0x00121468
LEA EDI,[RCX + -0x37]
LEA EDX,[RCX + -0x57]
AND ESI,0x80
CMOVNZ EDX,EDI
MOV R14,qword ptr [RSP + 0x28]
ADD R15,0x2
TEST R14,R14
JZ 0x001213b6
SUB EDX,0x1
CMP EDX,dword ptr [R14 + 0x50]
JZ 0x001217cb
NOP word ptr [RAX + RAX*0x1]
MOV R14,qword ptr [R14]
TEST R14,R14
JZ 0x00121040
CMP dword ptr [R14 + 0x50],EDX
JNZ 0x00121490
CMP qword ptr [R14 + 0x40],0x0
JZ 0x001215d9
MOV RDI,qword ptr [RSP]
LEA RSI,[R14 + 0x38]
XOR R14D,R14D
CALL 0x0012c670
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
MOV R14,qword ptr [RSP]
MOV ESI,0x5c
ADD R15,0x2
MOV RDI,R14
CALL 0x0012c720
MOV RDI,R14
MOV ESI,0x26
XOR R14D,R14D
CALL 0x0012c720
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
ADD R15,0x2
CMP R15,RAX
JNC 0x00121548
MOVSX RSI,byte ptr [R13 + R15*0x1]
CMP SIL,0x29
JZ 0x001215cd
MOV R13,qword ptr [RSP]
JMP 0x00121533
MOV RDX,qword ptr [RBP]
MOVSX RSI,byte ptr [RDX + R15*0x1]
CMP SIL,0x29
JZ 0x001215cd
MOV RDI,R13
ADD R15,0x1
CALL 0x0012c720
MOV RAX,qword ptr [RBP + 0x8]
CMP RAX,R15
JA 0x00121520
CMP qword ptr [RSP + 0x10],0x0
JZ 0x0012165b
MOV EDX,0x5
LEA RSI,[0x148e84]
XOR EDI,EDI
XOR R14D,R14D
CALL 0x001091f0
MOV RCX,qword ptr [RSP + 0x10]
MOV ESI,dword ptr [RSP + 0x1c]
MOV RDX,RAX
XOR EAX,EAX
MOV RDI,qword ptr [RCX + 0x38]
ADD ESI,dword ptr [RCX + 0x40]
CALL 0x00123ca0
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
SUB RSP,0x8
LEA RDI,[R15 + 0x2]
MOV RCX,R12
MOV RSI,RBP
PUSH 0x1
MOV R8D,0x27
MOV R9,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RSP + 0x18]
JMP 0x0012120b
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0012c710
MOV R8D,0x27
JMP 0x00121325
ADD R15,0x1
XOR R14D,R14D
JMP 0x00121040
MOV RDI,qword ptr [RSP]
LEA RSI,[R14 + 0x20]
XOR R14D,R14D
CALL 0x0012c670
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
MOV R14,qword ptr [RSP + 0x8]
MOV RDI,R14
CALL 0x0012c710
MOV RCX,R14
LEA RDI,[R15 + 0x2]
LEA RDX,[RBP + 0x8]
MOV RSI,RBP
CALL 0x00120d60
MOV RDI,R14
MOV R15,RAX
CALL 0x0012c7c0
MOV RDI,R12
MOV RSI,RAX
CALL 0x0011d830
MOV R14,RAX
TEST RAX,RAX
JZ 0x001217d5
CMP qword ptr [RAX + 0x40],0x0
JZ 0x001217b1
MOV RDI,qword ptr [RSP]
LEA RSI,[0x148e9e]
XOR R14D,R14D
CALL 0x0012c750
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
MOV EDX,0x5
LEA RSI,[0x148e84]
XOR EDI,EDI
CALL 0x001091f0
MOV R14,RAX
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
MOV RSI,RBP
MOV RDI,R14
CALL 0x0012c7d0
LEA RCX,[RBP + 0x8]
MOV R15,RAX
MOV RAX,qword ptr [RBP]
MOV qword ptr [RSP + 0x30],RCX
CMP byte ptr [RAX + R15*0x1],0xa
JZ 0x001210b3
MOV qword ptr [RSP + 0x38],RBX
MOV R14,qword ptr [RSP + 0x10]
JMP 0x00121701
MOV EDX,0x5
LEA RSI,[0x148f30]
XOR EDI,EDI
CALL 0x001091f0
MOV RDI,qword ptr [R14 + 0x38]
MOV ESI,dword ptr [RSP + 0x1c]
MOV RCX,RBX
MOV RDX,RAX
ADD ESI,dword ptr [R14 + 0x40]
XOR EAX,EAX
CALL 0x00123ca0
MOV RDI,R13
CALL 0x00120ce0
MOV RDI,R15
MOV RSI,RBP
CALL 0x0012c800
MOV R15,RAX
MOV RAX,qword ptr [RBP]
CMP byte ptr [RAX + R15*0x1],0xa
JZ 0x001217a0
CALL 0x00120ca0
MOV RDX,qword ptr [RSP + 0x30]
MOV RSI,RBP
MOV RDI,R15
LEA RBX,[RAX + 0x8]
MOV R13,RAX
MOV RCX,RBX
CALL 0x00120d60
MOV RDI,RBX
MOV R15,RAX
CALL 0x0012c7c0
MOV RDI,R12
MOV RSI,RAX
MOV RBX,RAX
CALL 0x0011d830
TEST RAX,RAX
JNZ 0x001216b0
MOV RAX,qword ptr [RSP + 0x38]
MOV dword ptr [R13 + 0x50],0xfffffffd
LEA RSI,[0x148e96]
MOV RDI,qword ptr [RSP + 0x20]
MOV qword ptr [R13],RAX
MOV EAX,dword ptr [0x0016d9d0]
LEA EDX,[RAX + 0x1]
XOR EAX,EAX
MOV dword ptr [0x0016d9d0],EDX
CALL 0x00109700
MOV RSI,qword ptr [RSP + 0x20]
LEA RDI,[R13 + 0x38]
CALL 0x0012c750
MOV RDX,R13
MOV RSI,RBX
MOV RDI,R12
CALL 0x0011d6e0
TEST RAX,RAX
JNZ 0x00121809
MOV qword ptr [RSP + 0x38],R13
JMP 0x001216e4
MOV RBX,qword ptr [RSP + 0x38]
MOV RAX,qword ptr [RBP + 0x8]
XOR R14D,R14D
JMP 0x00121040
MOV RDI,qword ptr [RSP]
MOV ESI,0x30
XOR R14D,R14D
CALL 0x0012c720
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
MOV R14,qword ptr [RSP + 0x28]
JMP 0x001214a2
MOV R13,qword ptr [RSP]
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0012c720
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0012c720
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,R13
CALL 0x0012c670
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
MOV R14,RAX
MOV RBX,R13
MOV RAX,qword ptr [RBP + 0x8]
JMP 0x00121040
(translation_unit "long FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}\n\n" (function_definition "long FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)" identifier (parameter_list "(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "long *local_80;" (sized_type_specifier "long" long) (pointer_declarator "*local_80" * identifier) ;) (declaration "char local_78 [32];" primitive_type (array_declarator "local_78 [32]" identifier [ number_literal ]) ;) (declaration "undefined1 local_58 [40];" type_identifier (array_declarator "local_58 [40]" identifier [ number_literal ]) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c630(local_58);" (call_expression "FUN_0012c630(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "plVar9 = (long *)0x0;" (assignment_expression "plVar9 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00121040:\n  uVar13 = uVar14;" statement_identifier : (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;)) (if_statement "if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }" { (labeled_statement "LAB_001210c0:\n    FUN_0012c660(local_58);" statement_identifier : (expression_statement "FUN_0012c660(local_58);" (call_expression "FUN_0012c660(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (while_statement "while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }" while (parenthesized_expression "(plVar9 != (long *)0x0)" ( (binary_expression "plVar9 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }" { (expression_statement "plVar4 = (long *)*plVar9;" (assignment_expression "plVar4 = (long *)*plVar9" identifier = (cast_expression "(long *)*plVar9" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar9" * identifier))) ;) (expression_statement "uVar8 = FUN_0012c7c0(plVar9 + 1);" (assignment_expression "uVar8 = FUN_0012c7c0(plVar9 + 1)" identifier = (call_expression "FUN_0012c7c0(plVar9 + 1)" identifier (argument_list "(plVar9 + 1)" ( (binary_expression "plVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);" (call_expression "FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0)" identifier (argument_list "(param_4,uVar8,plVar4 == (long *)0x0)" ( identifier , identifier , (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) (expression_statement "FUN_00120ce0(plVar9);" (call_expression "FUN_00120ce0(plVar9)" identifier (argument_list "(plVar9)" ( identifier ))) ;) (expression_statement "plVar9 = plVar4;" (assignment_expression "plVar9 = plVar4" identifier = identifier) ;) })) (return_statement "return (long)plVar11;" return (cast_expression "(long)plVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ;) })) (do_statement "do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );" do (compound_statement "{\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  }" { (if_statement "if (uVar7 <= uVar13) goto LAB_001210c0;" if (parenthesized_expression "(uVar7 <= uVar13)" ( (binary_expression "uVar7 <= uVar13" identifier <= identifier) )) (goto_statement "goto LAB_001210c0;" goto statement_identifier ;)) (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(lVar10 + uVar13);" (assignment_expression "bVar1 = *(byte *)(lVar10 + uVar13)" identifier = (pointer_expression "*(byte *)(lVar10 + uVar13)" * (cast_expression "(byte *)(lVar10 + uVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13)" ( (binary_expression "lVar10 + uVar13" identifier + identifier) ))))) ;) (if_statement "if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }" { (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (if_statement "if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" if (parenthesized_expression "(DAT_0016d9e4 == 0)" ( (binary_expression "DAT_0016d9e4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }" { (expression_statement "uVar8 = 0x26;" (assignment_expression "uVar8 = 0x26" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" else (compound_statement "{\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" { (if_statement "if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }" if (parenthesized_expression "(((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&'))" ( (binary_expression "((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')" (parenthesized_expression "((ulong)param_1[1] <= uVar14)" ( (binary_expression "(ulong)param_1[1] <= uVar14" (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) <= identifier) )) || (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '&')" ( (binary_expression "*(char *)(*param_1 + uVar14) != '&'" (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'&'" ' character ')) ))) )) (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));" (call_expression "FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13))" identifier (argument_list "(param_2,(long)*(char *)(*param_1 + uVar13))" ( identifier , (cast_expression "(long)*(char *)(*param_1 + uVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(char *)(*param_1 + uVar13)" * (cast_expression "(char *)(*param_1 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar13)" ( (binary_expression "*param_1 + uVar13" (pointer_expression "*param_1" * identifier) + identifier) ))))) ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;) }))) (labeled_statement "LAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);" statement_identifier : (expression_statement "uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);" (assignment_expression "uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" identifier = (call_expression "FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" identifier (argument_list "(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;)) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }" if (parenthesized_expression "(bVar1 == 0x5c)" ( (binary_expression "bVar1 == 0x5c" identifier == number_literal) )) (compound_statement "{\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }" { (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 <= uVar14) goto LAB_001211e1;" if (parenthesized_expression "(uVar7 <= uVar14)" ( (binary_expression "uVar7 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_001211e1;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(lVar10 + 1 + uVar13);" (assignment_expression "bVar1 = *(byte *)(lVar10 + 1 + uVar13)" identifier = (pointer_expression "*(byte *)(lVar10 + 1 + uVar13)" * (cast_expression "(byte *)(lVar10 + 1 + uVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 1 + uVar13)" ( (binary_expression "lVar10 + 1 + uVar13" (binary_expression "lVar10 + 1" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }" if (parenthesized_expression "(bVar1 == 0x28)" ( (binary_expression "bVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (if_statement "if (uVar7 <= uVar14) goto LAB_00121548;" if (parenthesized_expression "(uVar7 <= uVar14)" ( (binary_expression "uVar7 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_00121548;" goto statement_identifier ;)) (expression_statement "cVar2 = *(char *)(lVar10 + uVar14);" (assignment_expression "cVar2 = *(char *)(lVar10 + uVar14)" identifier = (pointer_expression "*(char *)(lVar10 + uVar14)" * (cast_expression "(char *)(lVar10 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar14)" ( (binary_expression "lVar10 + uVar14" identifier + identifier) ))))) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "sprintf(local_78,"%d",(ulong)DAT_0016d9d4);" (call_expression "sprintf(local_78,"%d",(ulong)DAT_0016d9d4)" identifier (argument_list "(local_78,"%d",(ulong)DAT_0016d9d4)" ( identifier , (string_literal ""%d"" " string_content ") , (cast_expression "(ulong)DAT_0016d9d4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c750(param_2,local_78);" (call_expression "FUN_0012c750(param_2,local_78)" identifier (argument_list "(param_2,local_78)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x5c);" (call_expression "FUN_0012c720(param_2,0x5c)" identifier (argument_list "(param_2,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x26);" (call_expression "FUN_0012c720(param_2,0x26)" identifier (argument_list "(param_2,0x26)" ( identifier , number_literal ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }" if (parenthesized_expression "(DAT_0016d9e4 != 0)" ( (binary_expression "DAT_0016d9e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }" { (expression_statement "iVar6 = (int)(char)bVar1;" (assignment_expression "iVar6 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(_sch_istable + (ulong)bVar1 * 2)" * (cast_expression "(ushort *)(_sch_istable + (ulong)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_sch_istable + (ulong)bVar1 * 2)" ( (binary_expression "_sch_istable + (ulong)bVar1 * 2" identifier + (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }" if (parenthesized_expression "((uVar3 & 0x8c) != 0)" ( (binary_expression "(uVar3 & 0x8c) != 0" (parenthesized_expression "(uVar3 & 0x8c)" ( (binary_expression "uVar3 & 0x8c" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }" { (expression_statement "iVar12 = iVar6 + -0x30;" (assignment_expression "iVar12 = iVar6 + -0x30" identifier = (binary_expression "iVar6 + -0x30" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }" { (expression_statement "iVar12 = iVar6 + -0x57;" (assignment_expression "iVar12 = iVar6 + -0x57" identifier = (binary_expression "iVar6 + -0x57" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }" if (parenthesized_expression "((uVar3 & 0x80) != 0)" ( (binary_expression "(uVar3 & 0x80) != 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              iVar12 = iVar6 + -0x37;\n            }" { (expression_statement "iVar12 = iVar6 + -0x37;" (assignment_expression "iVar12 = iVar6 + -0x37" identifier = (binary_expression "iVar6 + -0x37" identifier + number_literal)) ;) })) })) (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (if_statement "if (param_3 == (long *)0x0) goto LAB_001213b6;" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001213b6;" goto statement_identifier ;)) (expression_statement "iVar6 = (int)param_3[10];" (assignment_expression "iVar6 = (int)param_3[10]" identifier = (cast_expression "(int)param_3[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[10]" identifier [ number_literal ]))) ;) (expression_statement "plVar11 = param_3;" (assignment_expression "plVar11 = param_3" identifier = identifier) ;) (goto_statement "goto joined_r0x00121481;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001211e1:\n      FUN_0012c710(local_58);" statement_identifier : (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;) (goto_statement "goto LAB_0012120b;" goto statement_identifier ;) })) (if_statement "if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" if (parenthesized_expression "(DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0)" ( (binary_expression "DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0" (binary_expression "DAT_0016d9e4 == 0" identifier == number_literal) && (binary_expression "DAT_0016d9e8 == 0" identifier == number_literal)) )) (compound_statement "{\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }" { (if_statement "if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }" { (labeled_statement "LAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);" statement_identifier : (expression_statement "bVar5 = (bool)(bVar5 ^ 1);" (assignment_expression "bVar5 = (bool)(bVar5 ^ 1)" identifier = (cast_expression "(bool)(bVar5 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar5 ^ 1)" ( (binary_expression "bVar5 ^ 1" identifier ^ number_literal) )))) ;)) }) (else_clause "else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" else (if_statement "if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }" { (labeled_statement "LAB_001213a0:\n        uVar14 = uVar13 + 1;" statement_identifier : (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (if_statement "if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }" if (parenthesized_expression "(DAT_0016d9e0 != 0)" ( (binary_expression "DAT_0016d9e0 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }" { (if_statement "if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" if (parenthesized_expression "((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@'))" ( (binary_expression "(uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')" (parenthesized_expression "(uVar14 < uVar7)" ( (binary_expression "uVar14 < uVar7" identifier < identifier) )) && (parenthesized_expression "(*(char *)(lVar10 + uVar14) == '@')" ( (binary_expression "*(char *)(lVar10 + uVar14) == '@'" (pointer_expression "*(char *)(lVar10 + uVar14)" * (cast_expression "(char *)(lVar10 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar14)" ( (binary_expression "lVar10 + uVar14" identifier + identifier) )))) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x40);" (call_expression "FUN_0012c720(param_2,0x40)" identifier (argument_list "(param_2,0x40)" ( identifier , number_literal ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" else (compound_statement "{\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" { (labeled_statement "LAB_001213b6:\n            plVar11 = (long *)0x0;" statement_identifier : (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" else (compound_statement "{\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" { (labeled_statement "LAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);" statement_identifier : (expression_statement "local_9c = local_9c + (uint)(bVar1 == 10);" (assignment_expression "local_9c = local_9c + (uint)(bVar1 == 10)" identifier = (binary_expression "local_9c + (uint)(bVar1 == 10)" identifier + (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) ))))) ;)) }))))) (labeled_statement "LAB_001210a6:\n      uVar14 = uVar13 + 1;" statement_identifier : (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (expression_statement "FUN_0012c720(param_2,(long)(char)bVar1);" (call_expression "FUN_0012c720(param_2,(long)(char)bVar1)" identifier (argument_list "(param_2,(long)(char)bVar1)" ( identifier , (cast_expression "(long)(char)bVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) }) (else_clause "else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" else (compound_statement "{\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" { (if_statement "if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(((&DAT_00164680)[bVar1] & 2) == 0)" ( (binary_expression "((&DAT_00164680)[bVar1] & 2) == 0" (parenthesized_expression "((&DAT_00164680)[bVar1] & 2)" ( (binary_expression "(&DAT_00164680)[bVar1] & 2" (subscript_expression "(&DAT_00164680)[bVar1]" (parenthesized_expression "(&DAT_00164680)" ( (pointer_expression "&DAT_00164680" & identifier) )) [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }" { (labeled_statement "LAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;" statement_identifier : (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;" if (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0))))" ( (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))" (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) || (parenthesized_expression "((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))" ( (parenthesized_expression "(bVar1 == 0x27 && (DAT_0016d9e4 != 0))" ( (binary_expression "bVar1 == 0x27 && (DAT_0016d9e4 != 0)" (binary_expression "bVar1 == 0x27" identifier == number_literal) && (parenthesized_expression "(DAT_0016d9e4 != 0)" ( (binary_expression "DAT_0016d9e4 != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_001212f0;" goto statement_identifier ;))) (if_statement "if (bVar1 == 0x40) goto LAB_001213a0;" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_001213a0;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;" if (parenthesized_expression "((bVar1 != 0x3d) || (DAT_0016d9e4 == 0))" ( (binary_expression "(bVar1 != 0x3d) || (DAT_0016d9e4 == 0)" (parenthesized_expression "(bVar1 != 0x3d)" ( (binary_expression "bVar1 != 0x3d" identifier != number_literal) )) || (parenthesized_expression "(DAT_0016d9e4 == 0)" ( (binary_expression "DAT_0016d9e4 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00121096;" goto statement_identifier ;)) (if_statement "if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;" if (parenthesized_expression "((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '='))" ( (binary_expression "(uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')" (parenthesized_expression "(uVar7 <= uVar13 + 1)" ( (binary_expression "uVar7 <= uVar13 + 1" identifier <= (binary_expression "uVar13 + 1" identifier + number_literal)) )) || (parenthesized_expression "(*(char *)(lVar10 + uVar13 + 1) != '=')" ( (binary_expression "*(char *)(lVar10 + uVar13 + 1) != '='" (pointer_expression "*(char *)(lVar10 + uVar13 + 1)" * (cast_expression "(char *)(lVar10 + uVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13 + 1)" ( (binary_expression "lVar10 + uVar13 + 1" (binary_expression "lVar10 + uVar13" identifier + identifier) + number_literal) )))) != (char_literal "'='" ' character ')) ))) )) (goto_statement "goto LAB_001210a6;" goto statement_identifier ;)) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);" (assignment_expression "uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58)" identifier = (call_expression "FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58)" identifier (argument_list "(uVar13 + 2,param_1,param_1 + 1,local_58)" ( (binary_expression "uVar13 + 2" identifier + number_literal) , identifier , (binary_expression "param_1 + 1" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar8 = FUN_0012c7c0(local_58);" (assignment_expression "uVar8 = FUN_0012c7c0(local_58)" identifier = (call_expression "FUN_0012c7c0(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "lVar10 = FUN_0011d830(param_4,uVar8);" (assignment_expression "lVar10 = FUN_0011d830(param_4,uVar8)" identifier = (call_expression "FUN_0011d830(param_4,uVar8)" identifier (argument_list "(param_4,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }" { (expression_statement "FUN_0012c720(param_2,0x3d);" (call_expression "FUN_0012c720(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0012c720(param_2,0x3d);" (call_expression "FUN_0012c720(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0012c670(param_2,local_58);" (call_expression "FUN_0012c670(param_2,local_58)" identifier (argument_list "(param_2,local_58)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" else (if_statement "if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" if (parenthesized_expression "(*(long *)(lVar10 + 0x40) == 0)" ( (binary_expression "*(long *)(lVar10 + 0x40) == 0" (pointer_expression "*(long *)(lVar10 + 0x40)" * (cast_expression "(long *)(lVar10 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x40)" ( (binary_expression "lVar10 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x30);" (call_expression "FUN_0012c720(param_2,0x30)" identifier (argument_list "(param_2,0x30)" ( identifier , number_literal ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" else (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c750(param_2,&DAT_00148e9e);" (call_expression "FUN_0012c750(param_2,&DAT_00148e9e)" identifier (argument_list "(param_2,&DAT_00148e9e)" ( identifier , (pointer_expression "&DAT_00148e9e" & identifier) ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }))))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }" { (if_statement "if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }" { (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" else (compound_statement "{\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" { (if_statement "if (uVar13 + 5 < uVar7) goto LAB_00121348;" if (parenthesized_expression "(uVar13 + 5 < uVar7)" ( (binary_expression "uVar13 + 5 < uVar7" (binary_expression "uVar13 + 5" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_00121348;" goto statement_identifier ;)) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (labeled_statement "LAB_0012131f:\n          uVar8 = 0x27;" statement_identifier : (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;)) }))) (labeled_statement "LAB_00121325:\n        uVar15 = 1;" statement_identifier : (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;)) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (goto_statement "goto LAB_0012120b;" goto statement_identifier ;) })) (if_statement "if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;" if (parenthesized_expression "((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))" ( (binary_expression "(DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')))" (parenthesized_expression "(DAT_0016d9e0 != 0)" ( (binary_expression "DAT_0016d9e0 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')))" ( (parenthesized_expression "(uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))" ( (binary_expression "uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')" (binary_expression "uVar13 == 0" identifier == number_literal) || (parenthesized_expression "(*(char *)(lVar10 + -1 + uVar13) != '@')" ( (binary_expression "*(char *)(lVar10 + -1 + uVar13) != '@'" (pointer_expression "*(char *)(lVar10 + -1 + uVar13)" * (cast_expression "(char *)(lVar10 + -1 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + -1 + uVar13)" ( (binary_expression "lVar10 + -1 + uVar13" (binary_expression "lVar10 + -1" identifier + number_literal) + identifier) )))) != (char_literal "'@'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00121240;" goto statement_identifier ;)) (if_statement "if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }" if (parenthesized_expression "((param_5 == 0) || (uVar7 <= uVar13 + 5))" ( (binary_expression "(param_5 == 0) || (uVar7 <= uVar13 + 5)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar7 <= uVar13 + 5)" ( (binary_expression "uVar7 <= uVar13 + 5" identifier <= (binary_expression "uVar13 + 5" identifier + number_literal)) ))) )) (compound_statement "{\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }" { (labeled_statement "LAB_00121161:\n        FUN_0012c710(local_58);" statement_identifier : (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (if_statement "if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;" if (parenthesized_expression "((DAT_0016d9e0 == 0) || (!bVar5))" ( (binary_expression "(DAT_0016d9e0 == 0) || (!bVar5)" (parenthesized_expression "(DAT_0016d9e0 == 0)" ( (binary_expression "DAT_0016d9e0 == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) ))) )) (goto_statement "goto LAB_0012131f;" goto statement_identifier ;)) (labeled_statement "LAB_00121184:\n        uVar8 = 0x40;" statement_identifier : (expression_statement "uVar8 = 0x40;" (assignment_expression "uVar8 = 0x40" identifier = number_literal) ;)) (goto_statement "goto LAB_00121325;" goto statement_identifier ;) })) (labeled_statement "LAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);" statement_identifier : (expression_statement "iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);" (assignment_expression "iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5)" identifier = (call_expression "strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5)" identifier (argument_list "((char *)(lVar10 + uVar13),"LOCAL",5)" ( (cast_expression "(char *)(lVar10 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13)" ( (binary_expression "lVar10 + uVar13" identifier + identifier) ))) , (string_literal ""LOCAL"" " string_content ") , number_literal )))) ;)) (if_statement "if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;" if (parenthesized_expression "((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))" ( (binary_expression "(iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')))" ( (parenthesized_expression "(cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))" ( (comma_expression "cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')" (assignment_expression "cVar2 = *(char *)(lVar10 + uVar13 + 5)" identifier = (pointer_expression "*(char *)(lVar10 + uVar13 + 5)" * (cast_expression "(char *)(lVar10 + uVar13 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13 + 5)" ( (binary_expression "lVar10 + uVar13 + 5" (binary_expression "lVar10 + uVar13" identifier + identifier) + number_literal) ))))) , (binary_expression "cVar2 != ' ' && (cVar2 != '\t')" (binary_expression "cVar2 != ' '" identifier != (char_literal "' '" ' character ')) && (parenthesized_expression "(cVar2 != '\t')" ( (binary_expression "cVar2 != '\t'" identifier != (char_literal "'\t'" ' escape_sequence ')) )))) )) ))) )) (goto_statement "goto LAB_00121161;" goto statement_identifier ;)) (if_statement "if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" { (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (if_statement "if (DAT_0016d9e0 == 0) goto LAB_0012131f;" if (parenthesized_expression "(DAT_0016d9e0 == 0)" ( (binary_expression "DAT_0016d9e0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012131f;" goto statement_identifier ;)) (goto_statement "goto LAB_00121184;" goto statement_identifier ;) })) (expression_statement "uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);" (assignment_expression "uVar14 = FUN_0012c7d0(uVar13 + 5,param_1)" identifier = (call_expression "FUN_0012c7d0(uVar13 + 5,param_1)" identifier (argument_list "(uVar13 + 5,param_1)" ( (binary_expression "uVar13 + 5" identifier + number_literal) , identifier )))) ;) (expression_statement "local_80 = plVar9;" (assignment_expression "local_80 = plVar9" identifier = identifier) ;) (if_statement "if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;" if (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '\n')" ( (binary_expression "*(char *)(*param_1 + uVar14) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00121701;" goto statement_identifier ;)) }))) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "joined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;" statement_identifier : (if_statement "if (cVar2 == ')') goto LAB_001215cd;" if (parenthesized_expression "(cVar2 == ')')" ( (binary_expression "cVar2 == ')'" identifier == (char_literal "')'" ' character ')) )) (goto_statement "goto LAB_001215cd;" goto statement_identifier ;))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0012c720(param_2);" (call_expression "FUN_0012c720(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 <= uVar14) goto LAB_00121548;" if (parenthesized_expression "(uVar7 <= uVar14)" ( (binary_expression "uVar7 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_00121548;" goto statement_identifier ;)) (expression_statement "cVar2 = *(char *)(*param_1 + uVar14);" (assignment_expression "cVar2 = *(char *)(*param_1 + uVar14)" identifier = (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) ))))) ;) (goto_statement "goto joined_r0x00121513;" goto statement_identifier ;) (labeled_statement "LAB_001215cd:\n  uVar14 = uVar14 + 1;" statement_identifier : (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "LAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" statement_identifier : (if_statement "if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar11 = (long *)dcgettext(0,"missing `)\'",5);" (assignment_expression "plVar11 = (long *)dcgettext(0,"missing `)\'",5)" identifier = (cast_expression "(long *)dcgettext(0,"missing `)\'",5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing `)\'",5)" identifier (argument_list "(0,"missing `)\'",5)" ( number_literal , (string_literal ""missing `)\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" else (compound_statement "{\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar8 = dcgettext(0,"missing `)\'",5);" (assignment_expression "uVar8 = dcgettext(0,"missing `)\'",5)" identifier = (call_expression "dcgettext(0,"missing `)\'",5)" identifier (argument_list "(0,"missing `)\'",5)" ( number_literal , (string_literal ""missing `)\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);" (call_expression "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8)" identifier (argument_list "(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8)" ( (pointer_expression "*(undefined8 *)(param_5 + 0x38)" * (cast_expression "(undefined8 *)(param_5 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x38)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) )))) , (binary_expression "local_9c + *(int *)(param_5 + 0x40)" identifier + (pointer_expression "*(int *)(param_5 + 0x40)" * (cast_expression "(int *)(param_5 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x40)" ( (binary_expression "param_5 + 0x40" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "joined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;" statement_identifier : (if_statement "if (iVar12 + -1 == iVar6) goto LAB_001214a2;" if (parenthesized_expression "(iVar12 + -1 == iVar6)" ( (binary_expression "iVar12 + -1 == iVar6" (binary_expression "iVar12 + -1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_001214a2;" goto statement_identifier ;))) (expression_statement "plVar11 = (long *)*plVar11;" (assignment_expression "plVar11 = (long *)*plVar11" identifier = (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier))) ;) (if_statement "if (plVar11 == (long *)0x0) goto LAB_00121040;" if (parenthesized_expression "(plVar11 == (long *)0x0)" ( (binary_expression "plVar11 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00121040;" goto statement_identifier ;)) (expression_statement "iVar6 = *(int *)(plVar11 + 10);" (assignment_expression "iVar6 = *(int *)(plVar11 + 10)" identifier = (pointer_expression "*(int *)(plVar11 + 10)" * (cast_expression "(int *)(plVar11 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar11 + 10)" ( (binary_expression "plVar11 + 10" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x00121481;" goto statement_identifier ;) (labeled_statement "LAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" statement_identifier : (if_statement "if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" if (parenthesized_expression "(plVar11[8] == 0)" ( (binary_expression "plVar11[8] == 0" (subscript_expression "plVar11[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar4 = plVar11 + 4;" (assignment_expression "plVar4 = plVar11 + 4" identifier = (binary_expression "plVar11 + 4" identifier + number_literal)) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c670(param_2,plVar4);" (call_expression "FUN_0012c670(param_2,plVar4)" identifier (argument_list "(param_2,plVar4)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" else (compound_statement "{\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar4 = plVar11 + 7;" (assignment_expression "plVar4 = plVar11 + 7" identifier = (binary_expression "plVar11 + 7" identifier + number_literal)) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c670(param_2,plVar4);" (call_expression "FUN_0012c670(param_2,plVar4)" identifier (argument_list "(param_2,plVar4)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "LAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');" statement_identifier : (do_statement "do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');" do (compound_statement "{\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  }" { (expression_statement "plVar9 = (long *)FUN_00120ca0();" (assignment_expression "plVar9 = (long *)FUN_00120ca0()" identifier = (cast_expression "(long *)FUN_00120ca0()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00120ca0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);" (assignment_expression "uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1)" identifier = (call_expression "FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1)" identifier (argument_list "(uVar14,param_1,param_1 + 1,plVar9 + 1)" ( identifier , identifier , (binary_expression "param_1 + 1" identifier + number_literal) , (binary_expression "plVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar8 = FUN_0012c7c0(plVar9 + 1);" (assignment_expression "uVar8 = FUN_0012c7c0(plVar9 + 1)" identifier = (call_expression "FUN_0012c7c0(plVar9 + 1)" identifier (argument_list "(plVar9 + 1)" ( (binary_expression "plVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar10 = FUN_0011d830(param_4,uVar8);" (assignment_expression "lVar10 = FUN_0011d830(param_4,uVar8)" identifier = (call_expression "FUN_0011d830(param_4,uVar8)" identifier (argument_list "(param_4,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }" { (expression_statement "*(undefined4 *)(plVar9 + 10) = 0xfffffffd;" (assignment_expression "*(undefined4 *)(plVar9 + 10) = 0xfffffffd" (pointer_expression "*(undefined4 *)(plVar9 + 10)" * (cast_expression "(undefined4 *)(plVar9 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar9 + 10)" ( (binary_expression "plVar9 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar9 = (long)local_80;" (assignment_expression "*plVar9 = (long)local_80" (pointer_expression "*plVar9" * identifier) = (cast_expression "(long)local_80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "DAT_0016d9d0 = DAT_0016d9d0 + 1;" (assignment_expression "DAT_0016d9d0 = DAT_0016d9d0 + 1" identifier = (binary_expression "DAT_0016d9d0 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(local_78,".LL%04x");" (call_expression "sprintf(local_78,".LL%04x")" identifier (argument_list "(local_78,".LL%04x")" ( identifier , (string_literal "".LL%04x"" " string_content ") ))) ;) (expression_statement "FUN_0012c750(plVar9 + 7,local_78);" (call_expression "FUN_0012c750(plVar9 + 7,local_78)" identifier (argument_list "(plVar9 + 7,local_78)" ( (binary_expression "plVar9 + 7" identifier + number_literal) , identifier ))) ;) (expression_statement "plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);" (assignment_expression "plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9)" identifier = (cast_expression "(long *)FUN_0011d6e0(param_4,uVar8,plVar9)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011d6e0(param_4,uVar8,plVar9)" identifier (argument_list "(param_4,uVar8,plVar9)" ( identifier , identifier , identifier ))))) ;) (expression_statement "local_80 = plVar9;" (assignment_expression "local_80 = plVar9" identifier = identifier) ;) (if_statement "if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" { (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" else (compound_statement "{\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" { (expression_statement "uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" identifier = (call_expression "dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" identifier (argument_list "(0,"`%s\' was already used as parameter (or another local) name",5)" ( number_literal , (string_literal ""`%s\' was already used as parameter (or another local) name"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;" (call_expression "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)" identifier (argument_list "(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)" ( (pointer_expression "*(undefined8 *)(param_5 + 0x38)" * (cast_expression "(undefined8 *)(param_5 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x38)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) )))) , (binary_expression "local_9c + *(int *)(param_5 + 0x40)" identifier + (pointer_expression "*(int *)(param_5 + 0x40)" * (cast_expression "(int *)(param_5 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x40)" ( (binary_expression "param_5 + 0x40" identifier + number_literal) ))))) , identifier , identifier ))) ;) (expression_statement "FUN_00120ce0(plVar9);" (call_expression "FUN_00120ce0(plVar9)" identifier (argument_list "(plVar9)" ( identifier ))) ;) }))) (expression_statement "uVar14 = FUN_0012c800(uVar14,param_1);" (assignment_expression "uVar14 = FUN_0012c800(uVar14,param_1)" identifier = (call_expression "FUN_0012c800(uVar14,param_1)" identifier (argument_list "(uVar14,param_1)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '\n')" ( (binary_expression "*(char *)(*param_1 + uVar14) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar9 = local_80;" (assignment_expression "plVar9 = local_80" identifier = identifier) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })))
(translation_unit "char * macro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,\n                        macro_entry *macro)\n\n{\n  sb *psVar1;\n  byte bVar2;\n  char cVar3;\n  ushort uVar4;\n  formal_struct *pfVar5;\n  bool bVar6;\n  int iVar7;\n  ulong uVar8;\n  char *pcVar9;\n  char *format;\n  formal_entry *formal;\n  void *pvVar10;\n  formal_struct *pfVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong idx;\n  int local_9c;\n  formal_entry *local_80;\n  char buffer [12];\n  sb t;\n  \n  idx = 0;\n  pfVar11 = (formal_struct *)0x0;\n  sb_new(&t);\n  uVar8 = in->len;\n  local_9c = 0;\n  bVar6 = false;\n  formal = (formal_entry *)0x0;\nLAB_00121040:\n  uVar13 = idx;\n  if (pfVar11 != (formal_struct *)0x0) {\nLAB_001210c0:\n    sb_kill(&t);\n    while (formal != (formal_entry *)0x0) {\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }\n    return (char *)pfVar11;\n  }\n  do {\n    if (uVar8 <= uVar13) goto LAB_001210c0;\n    pcVar9 = in->ptr;\n    bVar2 = pcVar9[uVar13];\n    if (bVar2 == 0x26) {\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }\n    if (bVar2 == 0x5c) {\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }\n    else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }\n    pfVar11 = (formal_struct *)0x0;\n    uVar8 = in->len;\n    uVar13 = idx;\n  } while( true );\njoined_r0x00121513:\n  if (cVar3 == ')') goto LAB_001215cd;\n  idx = idx + 1;\n  sb_add_char(out,(long)cVar3);\n  uVar8 = in->len;\n  if (uVar8 <= idx) goto LAB_00121548;\n  cVar3 = in->ptr[idx];\n  goto joined_r0x00121513;\nLAB_001215cd:\n  idx = idx + 1;\n  pfVar11 = (formal_struct *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (macro == (macro_entry *)0x0) {\n    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);\n    uVar8 = in->len;\n  }\n  else {\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar7) goto LAB_001214a2;\n  pfVar11 = pfVar11->next;\n  if (pfVar11 == (formal_struct *)0x0) goto LAB_00121040;\n  iVar7 = pfVar11->index;\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if ((pfVar11->actual).len == 0) {\n    psVar1 = &pfVar11->def;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  else {\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    formal = new_formal();\n    idx = get_token(idx,in,(sb *)&in->len,&formal->name);\n    pcVar9 = sb_terminate(&formal->name);\n    pvVar10 = hash_find(formal_hash,pcVar9);\n    if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }\n    idx = sb_skip_comma(idx,in);\n  } while (in->ptr[idx] != '\n');\n  uVar8 = in->len;\n  pfVar11 = (formal_struct *)0x0;\n  formal = local_80;\n  goto LAB_00121040;\n}\n\n" (function_definition "char * macro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,\n                        macro_entry *macro)\n\n{\n  sb *psVar1;\n  byte bVar2;\n  char cVar3;\n  ushort uVar4;\n  formal_struct *pfVar5;\n  bool bVar6;\n  int iVar7;\n  ulong uVar8;\n  char *pcVar9;\n  char *format;\n  formal_entry *formal;\n  void *pvVar10;\n  formal_struct *pfVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong idx;\n  int local_9c;\n  formal_entry *local_80;\n  char buffer [12];\n  sb t;\n  \n  idx = 0;\n  pfVar11 = (formal_struct *)0x0;\n  sb_new(&t);\n  uVar8 = in->len;\n  local_9c = 0;\n  bVar6 = false;\n  formal = (formal_entry *)0x0;\nLAB_00121040:\n  uVar13 = idx;\n  if (pfVar11 != (formal_struct *)0x0) {\nLAB_001210c0:\n    sb_kill(&t);\n    while (formal != (formal_entry *)0x0) {\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }\n    return (char *)pfVar11;\n  }\n  do {\n    if (uVar8 <= uVar13) goto LAB_001210c0;\n    pcVar9 = in->ptr;\n    bVar2 = pcVar9[uVar13];\n    if (bVar2 == 0x26) {\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }\n    if (bVar2 == 0x5c) {\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }\n    else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }\n    pfVar11 = (formal_struct *)0x0;\n    uVar8 = in->len;\n    uVar13 = idx;\n  } while( true );\njoined_r0x00121513:\n  if (cVar3 == ')') goto LAB_001215cd;\n  idx = idx + 1;\n  sb_add_char(out,(long)cVar3);\n  uVar8 = in->len;\n  if (uVar8 <= idx) goto LAB_00121548;\n  cVar3 = in->ptr[idx];\n  goto joined_r0x00121513;\nLAB_001215cd:\n  idx = idx + 1;\n  pfVar11 = (formal_struct *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (macro == (macro_entry *)0x0) {\n    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);\n    uVar8 = in->len;\n  }\n  else {\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar7) goto LAB_001214a2;\n  pfVar11 = pfVar11->next;\n  if (pfVar11 == (formal_struct *)0x0) goto LAB_00121040;\n  iVar7 = pfVar11->index;\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if ((pfVar11->actual).len == 0) {\n    psVar1 = &pfVar11->def;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  else {\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    formal = new_formal();\n    idx = get_token(idx,in,(sb *)&in->len,&formal->name);\n    pcVar9 = sb_terminate(&formal->name);\n    pvVar10 = hash_find(formal_hash,pcVar9);\n    if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }\n    idx = sb_skip_comma(idx,in);\n  } while (in->ptr[idx] != '\n');\n  uVar8 = in->len;\n  pfVar11 = (formal_struct *)0x0;\n  formal = local_80;\n  goto LAB_00121040;\n}" primitive_type (pointer_declarator "* macro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,\n                        macro_entry *macro)" * (function_declarator "macro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,\n                        macro_entry *macro)" identifier (parameter_list "(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,\n                        macro_entry *macro)" ( (parameter_declaration "sb *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "sb *out" type_identifier (pointer_declarator "*out" * identifier)) , (parameter_declaration "formal_entry *formals" type_identifier (pointer_declarator "*formals" * identifier)) , (parameter_declaration "hash_control *formal_hash" type_identifier (pointer_declarator "*formal_hash" * identifier)) , (parameter_declaration "macro_entry *macro" type_identifier (pointer_declarator "*macro" * identifier)) )))) (compound_statement "{\n  sb *psVar1;\n  byte bVar2;\n  char cVar3;\n  ushort uVar4;\n  formal_struct *pfVar5;\n  bool bVar6;\n  int iVar7;\n  ulong uVar8;\n  char *pcVar9;\n  char *format;\n  formal_entry *formal;\n  void *pvVar10;\n  formal_struct *pfVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong idx;\n  int local_9c;\n  formal_entry *local_80;\n  char buffer [12];\n  sb t;\n  \n  idx = 0;\n  pfVar11 = (formal_struct *)0x0;\n  sb_new(&t);\n  uVar8 = in->len;\n  local_9c = 0;\n  bVar6 = false;\n  formal = (formal_entry *)0x0;\nLAB_00121040:\n  uVar13 = idx;\n  if (pfVar11 != (formal_struct *)0x0) {\nLAB_001210c0:\n    sb_kill(&t);\n    while (formal != (formal_entry *)0x0) {\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }\n    return (char *)pfVar11;\n  }\n  do {\n    if (uVar8 <= uVar13) goto LAB_001210c0;\n    pcVar9 = in->ptr;\n    bVar2 = pcVar9[uVar13];\n    if (bVar2 == 0x26) {\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }\n    if (bVar2 == 0x5c) {\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }\n    else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }\n    pfVar11 = (formal_struct *)0x0;\n    uVar8 = in->len;\n    uVar13 = idx;\n  } while( true );\njoined_r0x00121513:\n  if (cVar3 == ')') goto LAB_001215cd;\n  idx = idx + 1;\n  sb_add_char(out,(long)cVar3);\n  uVar8 = in->len;\n  if (uVar8 <= idx) goto LAB_00121548;\n  cVar3 = in->ptr[idx];\n  goto joined_r0x00121513;\nLAB_001215cd:\n  idx = idx + 1;\n  pfVar11 = (formal_struct *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (macro == (macro_entry *)0x0) {\n    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);\n    uVar8 = in->len;\n  }\n  else {\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar7) goto LAB_001214a2;\n  pfVar11 = pfVar11->next;\n  if (pfVar11 == (formal_struct *)0x0) goto LAB_00121040;\n  iVar7 = pfVar11->index;\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if ((pfVar11->actual).len == 0) {\n    psVar1 = &pfVar11->def;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  else {\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    formal = new_formal();\n    idx = get_token(idx,in,(sb *)&in->len,&formal->name);\n    pcVar9 = sb_terminate(&formal->name);\n    pvVar10 = hash_find(formal_hash,pcVar9);\n    if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }\n    idx = sb_skip_comma(idx,in);\n  } while (in->ptr[idx] != '\n');\n  uVar8 = in->len;\n  pfVar11 = (formal_struct *)0x0;\n  formal = local_80;\n  goto LAB_00121040;\n}" { (declaration "sb *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "formal_struct *pfVar5;" type_identifier (pointer_declarator "*pfVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "formal_entry *formal;" type_identifier (pointer_declarator "*formal" * identifier) ;) (declaration "void *pvVar10;" primitive_type (pointer_declarator "*pvVar10" * identifier) ;) (declaration "formal_struct *pfVar11;" type_identifier (pointer_declarator "*pfVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong idx;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "formal_entry *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "char buffer [12];" primitive_type (array_declarator "buffer [12]" identifier [ number_literal ]) ;) (declaration "sb t;" type_identifier identifier ;) (expression_statement "idx = 0;" (assignment_expression "idx = 0" identifier = number_literal) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_new(&t);" (call_expression "sb_new(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "formal = (formal_entry *)0x0;" (assignment_expression "formal = (formal_entry *)0x0" identifier = (cast_expression "(formal_entry *)0x0" ( (type_descriptor "formal_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00121040:\n  uVar13 = idx;" statement_identifier : (expression_statement "uVar13 = idx;" (assignment_expression "uVar13 = idx" identifier = identifier) ;)) (if_statement "if (pfVar11 != (formal_struct *)0x0) {\nLAB_001210c0:\n    sb_kill(&t);\n    while (formal != (formal_entry *)0x0) {\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }\n    return (char *)pfVar11;\n  }" if (parenthesized_expression "(pfVar11 != (formal_struct *)0x0)" ( (binary_expression "pfVar11 != (formal_struct *)0x0" identifier != (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001210c0:\n    sb_kill(&t);\n    while (formal != (formal_entry *)0x0) {\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }\n    return (char *)pfVar11;\n  }" { (labeled_statement "LAB_001210c0:\n    sb_kill(&t);" statement_identifier : (expression_statement "sb_kill(&t);" (call_expression "sb_kill(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;)) (while_statement "while (formal != (formal_entry *)0x0) {\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }" while (parenthesized_expression "(formal != (formal_entry *)0x0)" ( (binary_expression "formal != (formal_entry *)0x0" identifier != (cast_expression "(formal_entry *)0x0" ( (type_descriptor "formal_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pfVar5 = formal->next;\n      pcVar9 = sb_terminate(&formal->name);\n      hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));\n      del_formal(formal);\n      formal = pfVar5;\n    }" { (expression_statement "pfVar5 = formal->next;" (assignment_expression "pfVar5 = formal->next" identifier = (field_expression "formal->next" identifier -> field_identifier)) ;) (expression_statement "pcVar9 = sb_terminate(&formal->name);" (assignment_expression "pcVar9 = sb_terminate(&formal->name)" identifier = (call_expression "sb_terminate(&formal->name)" identifier (argument_list "(&formal->name)" ( (pointer_expression "&formal->name" & (field_expression "formal->name" identifier -> field_identifier)) )))) ;) (expression_statement "hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0));" (call_expression "hash_delete(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0))" identifier (argument_list "(formal_hash,pcVar9,(uint)(pfVar5 == (formal_struct *)0x0))" ( identifier , identifier , (call_expression "(uint)(pfVar5 == (formal_struct *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pfVar5 == (formal_struct *)0x0)" ( (binary_expression "pfVar5 == (formal_struct *)0x0" identifier == (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ))) ;) (expression_statement "del_formal(formal);" (call_expression "del_formal(formal)" identifier (argument_list "(formal)" ( identifier ))) ;) (expression_statement "formal = pfVar5;" (assignment_expression "formal = pfVar5" identifier = identifier) ;) })) (return_statement "return (char *)pfVar11;" return (cast_expression "(char *)pfVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (do_statement "do {\n    if (uVar8 <= uVar13) goto LAB_001210c0;\n    pcVar9 = in->ptr;\n    bVar2 = pcVar9[uVar13];\n    if (bVar2 == 0x26) {\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }\n    if (bVar2 == 0x5c) {\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }\n    else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }\n    pfVar11 = (formal_struct *)0x0;\n    uVar8 = in->len;\n    uVar13 = idx;\n  } while( true );" do (compound_statement "{\n    if (uVar8 <= uVar13) goto LAB_001210c0;\n    pcVar9 = in->ptr;\n    bVar2 = pcVar9[uVar13];\n    if (bVar2 == 0x26) {\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }\n    if (bVar2 == 0x5c) {\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }\n    else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }\n    pfVar11 = (formal_struct *)0x0;\n    uVar8 = in->len;\n    uVar13 = idx;\n  }" { (if_statement "if (uVar8 <= uVar13) goto LAB_001210c0;" if (parenthesized_expression "(uVar8 <= uVar13)" ( (binary_expression "uVar8 <= uVar13" identifier <= identifier) )) (goto_statement "goto LAB_001210c0;" goto statement_identifier ;)) (expression_statement "pcVar9 = in->ptr;" (assignment_expression "pcVar9 = in->ptr" identifier = (field_expression "in->ptr" identifier -> field_identifier)) ;) (expression_statement "bVar2 = pcVar9[uVar13];" (assignment_expression "bVar2 = pcVar9[uVar13]" identifier = (subscript_expression "pcVar9[uVar13]" identifier [ identifier ])) ;) (if_statement "if (bVar2 == 0x26) {\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }" if (parenthesized_expression "(bVar2 == 0x26)" ( (binary_expression "bVar2 == 0x26" identifier == number_literal) )) (compound_statement "{\n      idx = uVar13 + 1;\n      sb_reset(&t);\n      if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }\nLAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);\n      pfVar11 = (formal_struct *)0x0;\n      uVar8 = in->len;\n      goto LAB_00121040;\n    }" { (expression_statement "idx = uVar13 + 1;" (assignment_expression "idx = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (if_statement "if (macro_mri == 0) {\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }\n      else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }" if (parenthesized_expression "(macro_mri == 0)" ( (binary_expression "macro_mri == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = 0x26;\n        iVar12 = 0;\n      }" { (expression_statement "iVar7 = 0x26;" (assignment_expression "iVar7 = 0x26" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }" else (compound_statement "{\n        if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }\n        idx = uVar13 + 2;\n        iVar12 = 1;\n        iVar7 = 0x27;\n      }" { (if_statement "if ((in->len <= idx) || (in->ptr[idx] != '&')) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }" if (parenthesized_expression "((in->len <= idx) || (in->ptr[idx] != '&'))" ( (binary_expression "(in->len <= idx) || (in->ptr[idx] != '&')" (parenthesized_expression "(in->len <= idx)" ( (binary_expression "in->len <= idx" (field_expression "in->len" identifier -> field_identifier) <= identifier) )) || (parenthesized_expression "(in->ptr[idx] != '&')" ( (binary_expression "in->ptr[idx] != '&'" (subscript_expression "in->ptr[idx]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ]) != (char_literal "'&'" ' character ')) ))) )) (compound_statement "{\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,(long)in->ptr[uVar13]);\n          uVar8 = in->len;\n          goto LAB_00121040;\n        }" { (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_char(out,(long)in->ptr[uVar13]);" (call_expression "sb_add_char(out,(long)in->ptr[uVar13])" identifier (argument_list "(out,(long)in->ptr[uVar13])" ( identifier , (cast_expression "(long)in->ptr[uVar13]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "in->ptr[uVar13]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ])) ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (expression_statement "idx = uVar13 + 2;" (assignment_expression "idx = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0x27;" (assignment_expression "iVar7 = 0x27" identifier = number_literal) ;) }))) (labeled_statement "LAB_0012120b:\n      idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);" statement_identifier : (expression_statement "idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12);" (assignment_expression "idx = sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12)" identifier = (call_expression "sub_actual(idx,in,&t,formal_hash,iVar7,out,iVar12)" identifier (argument_list "(idx,in,&t,formal_hash,iVar7,out,iVar12)" ( identifier , identifier , (pointer_expression "&t" & identifier) , identifier , identifier , identifier , identifier )))) ;)) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (bVar2 == 0x5c) {\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }" if (parenthesized_expression "(bVar2 == 0x5c)" ( (binary_expression "bVar2 == 0x5c" identifier == number_literal) )) (compound_statement "{\n      idx = uVar13 + 1;\n      if (uVar8 <= idx) goto LAB_001211e1;\n      bVar2 = pcVar9[uVar13 + 1];\n      if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }\n      if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n      if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      sb_reset(&t);\n      iVar12 = 0;\n      iVar7 = 0x27;\n      goto LAB_0012120b;\n    }" { (expression_statement "idx = uVar13 + 1;" (assignment_expression "idx = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 <= idx) goto LAB_001211e1;" if (parenthesized_expression "(uVar8 <= idx)" ( (binary_expression "uVar8 <= idx" identifier <= identifier) )) (goto_statement "goto LAB_001211e1;" goto statement_identifier ;)) (expression_statement "bVar2 = pcVar9[uVar13 + 1];" (assignment_expression "bVar2 = pcVar9[uVar13 + 1]" identifier = (subscript_expression "pcVar9[uVar13 + 1]" identifier [ (binary_expression "uVar13 + 1" identifier + number_literal) ])) ;) (if_statement "if (bVar2 == 0x28) {\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }" if (parenthesized_expression "(bVar2 == 0x28)" ( (binary_expression "bVar2 == 0x28" identifier == number_literal) )) (compound_statement "{\n        idx = uVar13 + 2;\n        if (uVar8 <= idx) goto LAB_00121548;\n        cVar3 = pcVar9[idx];\n        break;\n      }" { (expression_statement "idx = uVar13 + 2;" (assignment_expression "idx = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (if_statement "if (uVar8 <= idx) goto LAB_00121548;" if (parenthesized_expression "(uVar8 <= idx)" ( (binary_expression "uVar8 <= idx" identifier <= identifier) )) (goto_statement "goto LAB_00121548;" goto statement_identifier ;)) (expression_statement "cVar3 = pcVar9[idx];" (assignment_expression "cVar3 = pcVar9[idx]" identifier = (subscript_expression "pcVar9[idx]" identifier [ identifier ])) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar2 == 0x40) {\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(bVar2 == 0x40)" ( (binary_expression "bVar2 == 0x40" identifier == number_literal) )) (compound_statement "{\n        idx = uVar13 + 2;\n        sprintf(buffer,"%d",(ulong)(uint)macro_number);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_string(out,buffer);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }" { (expression_statement "idx = uVar13 + 2;" (assignment_expression "idx = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "sprintf(buffer,"%d",(ulong)(uint)macro_number);" (call_expression "sprintf(buffer,"%d",(ulong)(uint)macro_number)" identifier (argument_list "(buffer,"%d",(ulong)(uint)macro_number)" ( identifier , (string_literal ""%d"" " string_content ") , (cast_expression "(ulong)(uint)macro_number" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)macro_number" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_string(out,buffer);" (call_expression "sb_add_string(out,buffer)" identifier (argument_list "(out,buffer)" ( identifier , identifier ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (bVar2 == 0x26) {\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(bVar2 == 0x26)" ( (binary_expression "bVar2 == 0x26" identifier == number_literal) )) (compound_statement "{\n        idx = uVar13 + 2;\n        sb_add_char(out,0x5c);\n        pfVar11 = (formal_struct *)0x0;\n        sb_add_char(out,0x26);\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }" { (expression_statement "idx = uVar13 + 2;" (assignment_expression "idx = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "sb_add_char(out,0x5c);" (call_expression "sb_add_char(out,0x5c)" identifier (argument_list "(out,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_char(out,0x26);" (call_expression "sb_add_char(out,0x26)" identifier (argument_list "(out,0x26)" ( identifier , number_literal ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (macro_mri != 0) {\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }" if (parenthesized_expression "(macro_mri != 0)" ( (binary_expression "macro_mri != 0" identifier != number_literal) )) (compound_statement "{\n        iVar7 = (int)(char)bVar2;\n        uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);\n        if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }\n      }" { (expression_statement "iVar7 = (int)(char)bVar2;" (assignment_expression "iVar7 = (int)(char)bVar2" identifier = (cast_expression "(int)(char)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2);" (assignment_expression "uVar4 = *(ushort *)(_sch_istable + (ulong)bVar2 * 2)" identifier = (pointer_expression "*(ushort *)(_sch_istable + (ulong)bVar2 * 2)" * (cast_expression "(ushort *)(_sch_istable + (ulong)bVar2 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_sch_istable + (ulong)bVar2 * 2)" ( (binary_expression "_sch_istable + (ulong)bVar2 * 2" identifier + (binary_expression "(ulong)bVar2 * 2" (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar4 & 0x8c) != 0) {\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }" if (parenthesized_expression "((uVar4 & 0x8c) != 0)" ( (binary_expression "(uVar4 & 0x8c) != 0" (parenthesized_expression "(uVar4 & 0x8c)" ( (binary_expression "uVar4 & 0x8c" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar12 = iVar7 + -0x30;\n          if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }\n          idx = uVar13 + 2;\n          if (formals == (formal_entry *)0x0) goto LAB_001213b6;\n          iVar7 = formals->index;\n          pfVar11 = formals;\n          goto joined_r0x00121481;\n        }" { (expression_statement "iVar12 = iVar7 + -0x30;" (assignment_expression "iVar12 = iVar7 + -0x30" identifier = (binary_expression "iVar7 + -0x30" identifier + number_literal)) ;) (if_statement "if ((uVar4 & 4) == 0) {\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }" if (parenthesized_expression "((uVar4 & 4) == 0)" ( (binary_expression "(uVar4 & 4) == 0" (parenthesized_expression "(uVar4 & 4)" ( (binary_expression "uVar4 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar12 = iVar7 + -0x57;\n            if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }\n          }" { (expression_statement "iVar12 = iVar7 + -0x57;" (assignment_expression "iVar12 = iVar7 + -0x57" identifier = (binary_expression "iVar7 + -0x57" identifier + number_literal)) ;) (if_statement "if ((uVar4 & 0x80) != 0) {\n              iVar12 = iVar7 + -0x37;\n            }" if (parenthesized_expression "((uVar4 & 0x80) != 0)" ( (binary_expression "(uVar4 & 0x80) != 0" (parenthesized_expression "(uVar4 & 0x80)" ( (binary_expression "uVar4 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              iVar12 = iVar7 + -0x37;\n            }" { (expression_statement "iVar12 = iVar7 + -0x37;" (assignment_expression "iVar12 = iVar7 + -0x37" identifier = (binary_expression "iVar7 + -0x37" identifier + number_literal)) ;) })) })) (expression_statement "idx = uVar13 + 2;" (assignment_expression "idx = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (if_statement "if (formals == (formal_entry *)0x0) goto LAB_001213b6;" if (parenthesized_expression "(formals == (formal_entry *)0x0)" ( (binary_expression "formals == (formal_entry *)0x0" identifier == (cast_expression "(formal_entry *)0x0" ( (type_descriptor "formal_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001213b6;" goto statement_identifier ;)) (expression_statement "iVar7 = formals->index;" (assignment_expression "iVar7 = formals->index" identifier = (field_expression "formals->index" identifier -> field_identifier)) ;) (expression_statement "pfVar11 = formals;" (assignment_expression "pfVar11 = formals" identifier = identifier) ;) (goto_statement "goto joined_r0x00121481;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001211e1:\n      sb_reset(&t);" statement_identifier : (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 0x27;" (assignment_expression "iVar7 = 0x27" identifier = number_literal) ;) (goto_statement "goto LAB_0012120b;" goto statement_identifier ;) })) (if_statement "if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }\n    else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }" if (parenthesized_expression "(macro_mri == 0 && macro_alternate == 0)" ( (binary_expression "macro_mri == 0 && macro_alternate == 0" (binary_expression "macro_mri == 0" identifier == number_literal) && (binary_expression "macro_alternate == 0" identifier == number_literal)) )) (compound_statement "{\n      if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }\nLAB_001210a6:\n      idx = uVar13 + 1;\n      sb_add_char(out,(long)(char)bVar2);\n    }" { (if_statement "if (bVar2 == 0x22) {\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }\n      else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }" if (parenthesized_expression "(bVar2 == 0x22)" ( (binary_expression "bVar2 == 0x22" identifier == number_literal) )) (compound_statement "{\nLAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);\n      }" { (labeled_statement "LAB_001212f0:\n        bVar6 = (bool)(bVar6 ^ 1);" statement_identifier : (expression_statement "bVar6 = (bool)(bVar6 ^ 1);" (assignment_expression "bVar6 = (bool)(bVar6 ^ 1)" identifier = (cast_expression "(bool)(bVar6 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar6 ^ 1)" ( (binary_expression "bVar6 ^ 1" identifier ^ number_literal) )))) ;)) }) (else_clause "else if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }" else (if_statement "if (bVar2 == 0x40) {\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }" if (parenthesized_expression "(bVar2 == 0x40)" ( (binary_expression "bVar2 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_001213a0:\n        idx = uVar13 + 1;\n        if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }" { (labeled_statement "LAB_001213a0:\n        idx = uVar13 + 1;" statement_identifier : (expression_statement "idx = uVar13 + 1;" (assignment_expression "idx = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (if_statement "if (macro_strip_at != 0) {\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }" if (parenthesized_expression "(macro_strip_at != 0)" ( (binary_expression "macro_strip_at != 0" identifier != number_literal) )) (compound_statement "{\n          if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }\n          goto LAB_00121040;\n        }" { (if_statement "if ((idx < uVar8) && (pcVar9[idx] == '@')) {\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }\n          else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }" if (parenthesized_expression "((idx < uVar8) && (pcVar9[idx] == '@'))" ( (binary_expression "(idx < uVar8) && (pcVar9[idx] == '@')" (parenthesized_expression "(idx < uVar8)" ( (binary_expression "idx < uVar8" identifier < identifier) )) && (parenthesized_expression "(pcVar9[idx] == '@')" ( (binary_expression "pcVar9[idx] == '@'" (subscript_expression "pcVar9[idx]" identifier [ identifier ]) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            idx = uVar13 + 2;\n            pfVar11 = (formal_struct *)0x0;\n            sb_add_char(out,0x40);\n            uVar8 = in->len;\n          }" { (expression_statement "idx = uVar13 + 2;" (assignment_expression "idx = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_char(out,0x40);" (call_expression "sb_add_char(out,0x40)" identifier (argument_list "(out,0x40)" ( identifier , number_literal ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) }) (else_clause "else {\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }" else (compound_statement "{\nLAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;\n          }" { (labeled_statement "LAB_001213b6:\n            pfVar11 = (formal_struct *)0x0;" statement_identifier : (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }" else (compound_statement "{\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);\n      }" { (labeled_statement "LAB_00121096:\n        local_9c = local_9c + (uint)(bVar2 == 10);" statement_identifier : (expression_statement "local_9c = local_9c + (uint)(bVar2 == 10);" (assignment_expression "local_9c = local_9c + (uint)(bVar2 == 10)" identifier = (binary_expression "local_9c + (uint)(bVar2 == 10)" identifier + (call_expression "(uint)(bVar2 == 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar2 == 10)" ( (binary_expression "bVar2 == 10" identifier == number_literal) ))))) ;)) }))))) (labeled_statement "LAB_001210a6:\n      idx = uVar13 + 1;" statement_identifier : (expression_statement "idx = uVar13 + 1;" (assignment_expression "idx = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (expression_statement "sb_add_char(out,(long)(char)bVar2);" (call_expression "sb_add_char(out,(long)(char)bVar2)" identifier (argument_list "(out,(long)(char)bVar2)" ( identifier , (cast_expression "(long)(char)bVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) }) (else_clause "else {\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }" else (compound_statement "{\n      if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;\n      if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);\n      if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;\n      if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      idx = sb_skip_white(uVar13 + 5,in);\n      local_80 = formal;\n      if (in->ptr[idx] != '\n') goto LAB_00121701;\n    }" { (if_statement "if ((lex_type[bVar2] & 2) == 0) {\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }" if (parenthesized_expression "((lex_type[bVar2] & 2) == 0)" ( (binary_expression "(lex_type[bVar2] & 2) == 0" (parenthesized_expression "(lex_type[bVar2] & 2)" ( (binary_expression "lex_type[bVar2] & 2" (subscript_expression "lex_type[bVar2]" identifier [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;\n        if (bVar2 == 0x40) goto LAB_001213a0;\n        if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;\n        if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;\n        sb_reset(&t);\n        idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);\n        pcVar9 = sb_terminate(&t);\n        pvVar10 = hash_find(formal_hash,pcVar9);\n        if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }\n        goto LAB_00121040;\n      }" { (labeled_statement "LAB_00121240:\n        if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;" statement_identifier : (if_statement "if ((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))) goto LAB_001212f0;" if (parenthesized_expression "((bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0))))" ( (binary_expression "(bVar2 == 0x22) || ((bVar2 == 0x27 && (macro_mri != 0)))" (parenthesized_expression "(bVar2 == 0x22)" ( (binary_expression "bVar2 == 0x22" identifier == number_literal) )) || (parenthesized_expression "((bVar2 == 0x27 && (macro_mri != 0)))" ( (parenthesized_expression "(bVar2 == 0x27 && (macro_mri != 0))" ( (binary_expression "bVar2 == 0x27 && (macro_mri != 0)" (binary_expression "bVar2 == 0x27" identifier == number_literal) && (parenthesized_expression "(macro_mri != 0)" ( (binary_expression "macro_mri != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_001212f0;" goto statement_identifier ;))) (if_statement "if (bVar2 == 0x40) goto LAB_001213a0;" if (parenthesized_expression "(bVar2 == 0x40)" ( (binary_expression "bVar2 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_001213a0;" goto statement_identifier ;)) (if_statement "if ((bVar2 != 0x3d) || (macro_mri == 0)) goto LAB_00121096;" if (parenthesized_expression "((bVar2 != 0x3d) || (macro_mri == 0))" ( (binary_expression "(bVar2 != 0x3d) || (macro_mri == 0)" (parenthesized_expression "(bVar2 != 0x3d)" ( (binary_expression "bVar2 != 0x3d" identifier != number_literal) )) || (parenthesized_expression "(macro_mri == 0)" ( (binary_expression "macro_mri == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00121096;" goto statement_identifier ;)) (if_statement "if ((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')) goto LAB_001210a6;" if (parenthesized_expression "((uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '='))" ( (binary_expression "(uVar8 <= uVar13 + 1) || (pcVar9[uVar13 + 1] != '=')" (parenthesized_expression "(uVar8 <= uVar13 + 1)" ( (binary_expression "uVar8 <= uVar13 + 1" identifier <= (binary_expression "uVar13 + 1" identifier + number_literal)) )) || (parenthesized_expression "(pcVar9[uVar13 + 1] != '=')" ( (binary_expression "pcVar9[uVar13 + 1] != '='" (subscript_expression "pcVar9[uVar13 + 1]" identifier [ (binary_expression "uVar13 + 1" identifier + number_literal) ]) != (char_literal "'='" ' character ')) ))) )) (goto_statement "goto LAB_001210a6;" goto statement_identifier ;)) (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (expression_statement "idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t);" (assignment_expression "idx = get_token(uVar13 + 2,in,(sb *)&in->len,&t)" identifier = (call_expression "get_token(uVar13 + 2,in,(sb *)&in->len,&t)" identifier (argument_list "(uVar13 + 2,in,(sb *)&in->len,&t)" ( (binary_expression "uVar13 + 2" identifier + number_literal) , identifier , (cast_expression "(sb *)&in->len" ( (type_descriptor "sb *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&in->len" & (field_expression "in->len" identifier -> field_identifier))) , (pointer_expression "&t" & identifier) )))) ;) (expression_statement "pcVar9 = sb_terminate(&t);" (assignment_expression "pcVar9 = sb_terminate(&t)" identifier = (call_expression "sb_terminate(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) )))) ;) (expression_statement "pvVar10 = hash_find(formal_hash,pcVar9);" (assignment_expression "pvVar10 = hash_find(formal_hash,pcVar9)" identifier = (call_expression "hash_find(formal_hash,pcVar9)" identifier (argument_list "(formal_hash,pcVar9)" ( identifier , identifier )))) ;) (if_statement "if (pvVar10 == (void *)0x0) {\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }\n        else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }" if (parenthesized_expression "(pvVar10 == (void *)0x0)" ( (binary_expression "pvVar10 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sb_add_char(out,0x3d);\n          sb_add_char(out,0x3d);\n          sb_add_sb(out,&t);\n          uVar8 = in->len;\n          pfVar11 = (formal_struct *)0x0;\n        }" { (expression_statement "sb_add_char(out,0x3d);" (call_expression "sb_add_char(out,0x3d)" identifier (argument_list "(out,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "sb_add_char(out,0x3d);" (call_expression "sb_add_char(out,0x3d)" identifier (argument_list "(out,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "sb_add_sb(out,&t);" (call_expression "sb_add_sb(out,&t)" identifier (argument_list "(out,&t)" ( identifier , (pointer_expression "&t" & identifier) ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }" else (if_statement "if (*(long *)((long)pvVar10 + 0x40) == 0) {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }\n        else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }" if (parenthesized_expression "(*(long *)((long)pvVar10 + 0x40) == 0)" ( (binary_expression "*(long *)((long)pvVar10 + 0x40) == 0" (pointer_expression "*(long *)((long)pvVar10 + 0x40)" * (cast_expression "(long *)((long)pvVar10 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar10 + 0x40)" ( (binary_expression "(long)pvVar10 + 0x40" (cast_expression "(long)pvVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_char(out,0x30);\n          uVar8 = in->len;\n        }" { (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_char(out,0x30);" (call_expression "sb_add_char(out,0x30)" identifier (argument_list "(out,0x30)" ( identifier , number_literal ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) }) (else_clause "else {\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }" else (compound_statement "{\n          pfVar11 = (formal_struct *)0x0;\n          sb_add_string(out,"-1");\n          uVar8 = in->len;\n        }" { (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_string(out,"-1");" (call_expression "sb_add_string(out,"-1")" identifier (argument_list "(out,"-1")" ( identifier , (string_literal ""-1"" " string_content ") ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) }))))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (!bVar6) {\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n        if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }\nLAB_00121325:\n        iVar12 = 1;\n        idx = uVar13;\n        goto LAB_0012120b;\n      }" { (if_statement "if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }" if (parenthesized_expression "(macro == (macro_entry *)0x0)" ( (binary_expression "macro == (macro_entry *)0x0" identifier == (cast_expression "(macro_entry *)0x0" ( (type_descriptor "macro_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sb_reset(&t);\n          iVar7 = 0x27;\n        }" { (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (expression_statement "iVar7 = 0x27;" (assignment_expression "iVar7 = 0x27" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }" else (compound_statement "{\n          if (uVar13 + 5 < uVar8) goto LAB_00121348;\n          sb_reset(&t);\nLAB_0012131f:\n          iVar7 = 0x27;\n        }" { (if_statement "if (uVar13 + 5 < uVar8) goto LAB_00121348;" if (parenthesized_expression "(uVar13 + 5 < uVar8)" ( (binary_expression "uVar13 + 5 < uVar8" (binary_expression "uVar13 + 5" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_00121348;" goto statement_identifier ;)) (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (labeled_statement "LAB_0012131f:\n          iVar7 = 0x27;" statement_identifier : (expression_statement "iVar7 = 0x27;" (assignment_expression "iVar7 = 0x27" identifier = number_literal) ;)) }))) (labeled_statement "LAB_00121325:\n        iVar12 = 1;" statement_identifier : (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;)) (expression_statement "idx = uVar13;" (assignment_expression "idx = uVar13" identifier = identifier) ;) (goto_statement "goto LAB_0012120b;" goto statement_identifier ;) })) (if_statement "if ((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))\n      goto LAB_00121240;" if (parenthesized_expression "((macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))))" ( (binary_expression "(macro_strip_at != 0) && ((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@')))" (parenthesized_expression "(macro_strip_at != 0)" ( (binary_expression "macro_strip_at != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar13 == 0 || (pcVar9[uVar13 - 1] != '@')))" ( (parenthesized_expression "(uVar13 == 0 || (pcVar9[uVar13 - 1] != '@'))" ( (binary_expression "uVar13 == 0 || (pcVar9[uVar13 - 1] != '@')" (binary_expression "uVar13 == 0" identifier == number_literal) || (parenthesized_expression "(pcVar9[uVar13 - 1] != '@')" ( (binary_expression "pcVar9[uVar13 - 1] != '@'" (subscript_expression "pcVar9[uVar13 - 1]" identifier [ (binary_expression "uVar13 - 1" identifier - number_literal) ]) != (char_literal "'@'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00121240;" goto statement_identifier ;)) (if_statement "if ((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)) {\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }" if (parenthesized_expression "((macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5))" ( (binary_expression "(macro == (macro_entry *)0x0) || (uVar8 <= uVar13 + 5)" (parenthesized_expression "(macro == (macro_entry *)0x0)" ( (binary_expression "macro == (macro_entry *)0x0" identifier == (cast_expression "(macro_entry *)0x0" ( (type_descriptor "macro_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar8 <= uVar13 + 5)" ( (binary_expression "uVar8 <= uVar13 + 5" identifier <= (binary_expression "uVar13 + 5" identifier + number_literal)) ))) )) (compound_statement "{\nLAB_00121161:\n        sb_reset(&t);\n        if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;\nLAB_00121184:\n        iVar7 = 0x40;\n        goto LAB_00121325;\n      }" { (labeled_statement "LAB_00121161:\n        sb_reset(&t);" statement_identifier : (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;)) (if_statement "if ((macro_strip_at == 0) || (!bVar6)) goto LAB_0012131f;" if (parenthesized_expression "((macro_strip_at == 0) || (!bVar6))" ( (binary_expression "(macro_strip_at == 0) || (!bVar6)" (parenthesized_expression "(macro_strip_at == 0)" ( (binary_expression "macro_strip_at == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) ))) )) (goto_statement "goto LAB_0012131f;" goto statement_identifier ;)) (labeled_statement "LAB_00121184:\n        iVar7 = 0x40;" statement_identifier : (expression_statement "iVar7 = 0x40;" (assignment_expression "iVar7 = 0x40" identifier = number_literal) ;)) (goto_statement "goto LAB_00121325;" goto statement_identifier ;) })) (labeled_statement "LAB_00121348:\n      iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);" statement_identifier : (expression_statement "iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5);" (assignment_expression "iVar7 = strncasecmp(pcVar9 + uVar13,"LOCAL",5)" identifier = (call_expression "strncasecmp(pcVar9 + uVar13,"LOCAL",5)" identifier (argument_list "(pcVar9 + uVar13,"LOCAL",5)" ( (binary_expression "pcVar9 + uVar13" identifier + identifier) , (string_literal ""LOCAL"" " string_content ") , number_literal )))) ;)) (if_statement "if ((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))\n      goto LAB_00121161;" if (parenthesized_expression "((iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))))" ( (binary_expression "(iVar7 != 0) || ((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t')))" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "((pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t')))" ( (parenthesized_expression "(pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t'))" ( (binary_expression "pcVar9[uVar13 + 5] != ' ' && (pcVar9[uVar13 + 5] != '\t')" (binary_expression "pcVar9[uVar13 + 5] != ' '" (subscript_expression "pcVar9[uVar13 + 5]" identifier [ (binary_expression "uVar13 + 5" identifier + number_literal) ]) != (char_literal "' '" ' character ')) && (parenthesized_expression "(pcVar9[uVar13 + 5] != '\t')" ( (binary_expression "pcVar9[uVar13 + 5] != '\t'" (subscript_expression "pcVar9[uVar13 + 5]" identifier [ (binary_expression "uVar13 + 5" identifier + number_literal) ]) != (char_literal "'\t'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_00121161;" goto statement_identifier ;)) (if_statement "if (bVar6) {\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n        sb_reset(&t);\n        if (macro_strip_at == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" { (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (if_statement "if (macro_strip_at == 0) goto LAB_0012131f;" if (parenthesized_expression "(macro_strip_at == 0)" ( (binary_expression "macro_strip_at == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012131f;" goto statement_identifier ;)) (goto_statement "goto LAB_00121184;" goto statement_identifier ;) })) (expression_statement "idx = sb_skip_white(uVar13 + 5,in);" (assignment_expression "idx = sb_skip_white(uVar13 + 5,in)" identifier = (call_expression "sb_skip_white(uVar13 + 5,in)" identifier (argument_list "(uVar13 + 5,in)" ( (binary_expression "uVar13 + 5" identifier + number_literal) , identifier )))) ;) (expression_statement "local_80 = formal;" (assignment_expression "local_80 = formal" identifier = identifier) ;) (if_statement "if (in->ptr[idx] != '\n') goto LAB_00121701;" if (parenthesized_expression "(in->ptr[idx] != '\n')" ( (binary_expression "in->ptr[idx] != '\n'" (subscript_expression "in->ptr[idx]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ]) != (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00121701;" goto statement_identifier ;)) }))) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "uVar13 = idx;" (assignment_expression "uVar13 = idx" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "joined_r0x00121513:\n  if (cVar3 == ')') goto LAB_001215cd;" statement_identifier : (if_statement "if (cVar3 == ')') goto LAB_001215cd;" if (parenthesized_expression "(cVar3 == ')')" ( (binary_expression "cVar3 == ')'" identifier == (char_literal "')'" ' character ')) )) (goto_statement "goto LAB_001215cd;" goto statement_identifier ;))) (expression_statement "idx = idx + 1;" (assignment_expression "idx = idx + 1" identifier = (binary_expression "idx + 1" identifier + number_literal)) ;) (expression_statement "sb_add_char(out,(long)cVar3);" (call_expression "sb_add_char(out,(long)cVar3)" identifier (argument_list "(out,(long)cVar3)" ( identifier , (cast_expression "(long)cVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (if_statement "if (uVar8 <= idx) goto LAB_00121548;" if (parenthesized_expression "(uVar8 <= idx)" ( (binary_expression "uVar8 <= idx" identifier <= identifier) )) (goto_statement "goto LAB_00121548;" goto statement_identifier ;)) (expression_statement "cVar3 = in->ptr[idx];" (assignment_expression "cVar3 = in->ptr[idx]" identifier = (subscript_expression "in->ptr[idx]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ])) ;) (goto_statement "goto joined_r0x00121513;" goto statement_identifier ;) (labeled_statement "LAB_001215cd:\n  idx = idx + 1;" statement_identifier : (expression_statement "idx = idx + 1;" (assignment_expression "idx = idx + 1" identifier = (binary_expression "idx + 1" identifier + number_literal)) ;)) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "LAB_00121548:\n  if (macro == (macro_entry *)0x0) {\n    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);\n    uVar8 = in->len;\n  }\n  else {\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }" statement_identifier : (if_statement "if (macro == (macro_entry *)0x0) {\n    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);\n    uVar8 = in->len;\n  }\n  else {\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }" if (parenthesized_expression "(macro == (macro_entry *)0x0)" ( (binary_expression "macro == (macro_entry *)0x0" identifier == (cast_expression "(macro_entry *)0x0" ( (type_descriptor "macro_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);\n    uVar8 = in->len;\n  }" { (expression_statement "pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5);" (assignment_expression "pfVar11 = (formal_struct *)dcgettext(0,"missing `)\'",5)" identifier = (cast_expression "(formal_struct *)dcgettext(0,"missing `)\'",5)" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing `)\'",5)" identifier (argument_list "(0,"missing `)\'",5)" ( number_literal , (string_literal ""missing `)\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) }) (else_clause "else {\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }" else (compound_statement "{\n    pfVar11 = (formal_struct *)0x0;\n    pcVar9 = (char *)dcgettext(0,"missing `)\'",5);\n    as_bad_where(macro->file,local_9c + macro->line,pcVar9);\n    uVar8 = in->len;\n  }" { (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)dcgettext(0,"missing `)\'",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"missing `)\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"missing `)\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing `)\'",5)" identifier (argument_list "(0,"missing `)\'",5)" ( number_literal , (string_literal ""missing `)\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad_where(macro->file,local_9c + macro->line,pcVar9);" (call_expression "as_bad_where(macro->file,local_9c + macro->line,pcVar9)" identifier (argument_list "(macro->file,local_9c + macro->line,pcVar9)" ( (field_expression "macro->file" identifier -> field_identifier) , (binary_expression "local_9c + macro->line" identifier + (field_expression "macro->line" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) })))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "joined_r0x00121481:\n  if (iVar12 + -1 == iVar7) goto LAB_001214a2;" statement_identifier : (if_statement "if (iVar12 + -1 == iVar7) goto LAB_001214a2;" if (parenthesized_expression "(iVar12 + -1 == iVar7)" ( (binary_expression "iVar12 + -1 == iVar7" (binary_expression "iVar12 + -1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_001214a2;" goto statement_identifier ;))) (expression_statement "pfVar11 = pfVar11->next;" (assignment_expression "pfVar11 = pfVar11->next" identifier = (field_expression "pfVar11->next" identifier -> field_identifier)) ;) (if_statement "if (pfVar11 == (formal_struct *)0x0) goto LAB_00121040;" if (parenthesized_expression "(pfVar11 == (formal_struct *)0x0)" ( (binary_expression "pfVar11 == (formal_struct *)0x0" identifier == (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00121040;" goto statement_identifier ;)) (expression_statement "iVar7 = pfVar11->index;" (assignment_expression "iVar7 = pfVar11->index" identifier = (field_expression "pfVar11->index" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00121481;" goto statement_identifier ;) (labeled_statement "LAB_001214a2:\n  if ((pfVar11->actual).len == 0) {\n    psVar1 = &pfVar11->def;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  else {\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }" statement_identifier : (if_statement "if ((pfVar11->actual).len == 0) {\n    psVar1 = &pfVar11->def;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }\n  else {\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }" if (parenthesized_expression "((pfVar11->actual).len == 0)" ( (binary_expression "(pfVar11->actual).len == 0" (field_expression "(pfVar11->actual).len" (parenthesized_expression "(pfVar11->actual)" ( (field_expression "pfVar11->actual" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n    psVar1 = &pfVar11->def;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }" { (expression_statement "psVar1 = &pfVar11->def;" (assignment_expression "psVar1 = &pfVar11->def" identifier = (pointer_expression "&pfVar11->def" & (field_expression "pfVar11->def" identifier -> field_identifier))) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_sb(out,psVar1);" (call_expression "sb_add_sb(out,psVar1)" identifier (argument_list "(out,psVar1)" ( identifier , identifier ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) }) (else_clause "else {\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }" else (compound_statement "{\n    psVar1 = &pfVar11->actual;\n    pfVar11 = (formal_struct *)0x0;\n    sb_add_sb(out,psVar1);\n    uVar8 = in->len;\n  }" { (expression_statement "psVar1 = &pfVar11->actual;" (assignment_expression "psVar1 = &pfVar11->actual" identifier = (pointer_expression "&pfVar11->actual" & (field_expression "pfVar11->actual" identifier -> field_identifier))) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_sb(out,psVar1);" (call_expression "sb_add_sb(out,psVar1)" identifier (argument_list "(out,psVar1)" ( identifier , identifier ))) ;) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) })))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "LAB_00121701:\n  do {\n    formal = new_formal();\n    idx = get_token(idx,in,(sb *)&in->len,&formal->name);\n    pcVar9 = sb_terminate(&formal->name);\n    pvVar10 = hash_find(formal_hash,pcVar9);\n    if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }\n    idx = sb_skip_comma(idx,in);\n  } while (in->ptr[idx] != '\n');" statement_identifier : (do_statement "do {\n    formal = new_formal();\n    idx = get_token(idx,in,(sb *)&in->len,&formal->name);\n    pcVar9 = sb_terminate(&formal->name);\n    pvVar10 = hash_find(formal_hash,pcVar9);\n    if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }\n    idx = sb_skip_comma(idx,in);\n  } while (in->ptr[idx] != '\n');" do (compound_statement "{\n    formal = new_formal();\n    idx = get_token(idx,in,(sb *)&in->len,&formal->name);\n    pcVar9 = sb_terminate(&formal->name);\n    pvVar10 = hash_find(formal_hash,pcVar9);\n    if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }\n    idx = sb_skip_comma(idx,in);\n  }" { (expression_statement "formal = new_formal();" (assignment_expression "formal = new_formal()" identifier = (call_expression "new_formal()" identifier (argument_list "()" ( )))) ;) (expression_statement "idx = get_token(idx,in,(sb *)&in->len,&formal->name);" (assignment_expression "idx = get_token(idx,in,(sb *)&in->len,&formal->name)" identifier = (call_expression "get_token(idx,in,(sb *)&in->len,&formal->name)" identifier (argument_list "(idx,in,(sb *)&in->len,&formal->name)" ( identifier , identifier , (cast_expression "(sb *)&in->len" ( (type_descriptor "sb *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&in->len" & (field_expression "in->len" identifier -> field_identifier))) , (pointer_expression "&formal->name" & (field_expression "formal->name" identifier -> field_identifier)) )))) ;) (expression_statement "pcVar9 = sb_terminate(&formal->name);" (assignment_expression "pcVar9 = sb_terminate(&formal->name)" identifier = (call_expression "sb_terminate(&formal->name)" identifier (argument_list "(&formal->name)" ( (pointer_expression "&formal->name" & (field_expression "formal->name" identifier -> field_identifier)) )))) ;) (expression_statement "pvVar10 = hash_find(formal_hash,pcVar9);" (assignment_expression "pvVar10 = hash_find(formal_hash,pcVar9)" identifier = (call_expression "hash_find(formal_hash,pcVar9)" identifier (argument_list "(formal_hash,pcVar9)" ( identifier , identifier )))) ;) (if_statement "if (pvVar10 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }\n    else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }" if (parenthesized_expression "(pvVar10 == (void *)0x0)" ( (binary_expression "pvVar10 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      formal->index = -3;\n      formal->next = local_80;\n      macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;\n      sprintf(buffer,".LL%04x");\n      sb_add_string(&formal->actual,buffer);\n      pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);\n      local_80 = formal;\n      if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }\n    }" { (expression_statement "formal->index = -3;" (assignment_expression "formal->index = -3" (field_expression "formal->index" identifier -> field_identifier) = number_literal) ;) (expression_statement "formal->next = local_80;" (assignment_expression "formal->next = local_80" (field_expression "formal->next" identifier -> field_identifier) = identifier) ;) (labeled_statement "macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_13::lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_13_2::loccnt =\n           macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt + 1;" statement_identifier (ERROR "::loccnt =\n           macro_expand_body:" : : (assignment_expression "loccnt =\n           macro_expand_body" identifier = identifier) :) : (labeled_statement "lexical_block_13::lexical_block_13_2::loccnt + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_13_2::loccnt + 1;" statement_identifier : (ERROR ":" :) (expression_statement "loccnt + 1;" (binary_expression "loccnt + 1" identifier + number_literal) ;)))))) (expression_statement "sprintf(buffer,".LL%04x");" (call_expression "sprintf(buffer,".LL%04x")" identifier (argument_list "(buffer,".LL%04x")" ( identifier , (string_literal "".LL%04x"" " string_content ") ))) ;) (expression_statement "sb_add_string(&formal->actual,buffer);" (call_expression "sb_add_string(&formal->actual,buffer)" identifier (argument_list "(&formal->actual,buffer)" ( (pointer_expression "&formal->actual" & (field_expression "formal->actual" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal);" (assignment_expression "pfVar11 = (formal_struct *)hash_jam(formal_hash,pcVar9,formal)" identifier = (cast_expression "(formal_struct *)hash_jam(formal_hash,pcVar9,formal)" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "hash_jam(formal_hash,pcVar9,formal)" identifier (argument_list "(formal_hash,pcVar9,formal)" ( identifier , identifier , identifier ))))) ;) (expression_statement "local_80 = formal;" (assignment_expression "local_80 = formal" identifier = identifier) ;) (if_statement "if (pfVar11 != (formal_struct *)0x0) {\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(pfVar11 != (formal_struct *)0x0)" ( (binary_expression "pfVar11 != (formal_struct *)0x0" identifier != (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar8 = in->len;\n        goto LAB_00121040;\n      }" { (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) }) (else_clause "else {\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }" else (compound_statement "{\n      format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);\n      del_formal(formal);\n    }" { (expression_statement "format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "format = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" identifier = (cast_expression "(char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" identifier (argument_list "(0,"`%s\' was already used as parameter (or another local) name",5)" ( number_literal , (string_literal ""`%s\' was already used as parameter (or another local) name"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "as_bad_where(macro->file,local_9c + macro->line,format,pcVar9);" (call_expression "as_bad_where(macro->file,local_9c + macro->line,format,pcVar9)" identifier (argument_list "(macro->file,local_9c + macro->line,format,pcVar9)" ( (field_expression "macro->file" identifier -> field_identifier) , (binary_expression "local_9c + macro->line" identifier + (field_expression "macro->line" identifier -> field_identifier)) , identifier , identifier ))) ;) (expression_statement "del_formal(formal);" (call_expression "del_formal(formal)" identifier (argument_list "(formal)" ( identifier ))) ;) }))) (expression_statement "idx = sb_skip_comma(idx,in);" (assignment_expression "idx = sb_skip_comma(idx,in)" identifier = (call_expression "sb_skip_comma(idx,in)" identifier (argument_list "(idx,in)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(in->ptr[idx] != '\n')" ( (binary_expression "in->ptr[idx] != '\n'" (subscript_expression "in->ptr[idx]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ]) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (expression_statement "uVar8 = in->len;" (assignment_expression "uVar8 = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "pfVar11 = (formal_struct *)0x0;" (assignment_expression "pfVar11 = (formal_struct *)0x0" identifier = (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "formal = local_80;" (assignment_expression "formal = local_80" identifier = identifier) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })))
(translation_unit "long FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}\n\n" (function_definition "long FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)" identifier (parameter_list "(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "long *local_80;" (sized_type_specifier "long" long) (pointer_declarator "*local_80" * identifier) ;) (declaration "char local_78 [32];" primitive_type (array_declarator "local_78 [32]" identifier [ number_literal ]) ;) (declaration "undefined1 local_58 [40];" type_identifier (array_declarator "local_58 [40]" identifier [ number_literal ]) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c630(local_58);" (call_expression "FUN_0012c630(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "plVar9 = (long *)0x0;" (assignment_expression "plVar9 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00121040:\n  uVar13 = uVar14;" statement_identifier : (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;)) (if_statement "if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }" { (labeled_statement "LAB_001210c0:\n    FUN_0012c660(local_58);" statement_identifier : (expression_statement "FUN_0012c660(local_58);" (call_expression "FUN_0012c660(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (while_statement "while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }" while (parenthesized_expression "(plVar9 != (long *)0x0)" ( (binary_expression "plVar9 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }" { (expression_statement "plVar4 = (long *)*plVar9;" (assignment_expression "plVar4 = (long *)*plVar9" identifier = (cast_expression "(long *)*plVar9" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar9" * identifier))) ;) (expression_statement "uVar8 = FUN_0012c7c0(plVar9 + 1);" (assignment_expression "uVar8 = FUN_0012c7c0(plVar9 + 1)" identifier = (call_expression "FUN_0012c7c0(plVar9 + 1)" identifier (argument_list "(plVar9 + 1)" ( (binary_expression "plVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);" (call_expression "FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0)" identifier (argument_list "(param_4,uVar8,plVar4 == (long *)0x0)" ( identifier , identifier , (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) (expression_statement "FUN_00120ce0(plVar9);" (call_expression "FUN_00120ce0(plVar9)" identifier (argument_list "(plVar9)" ( identifier ))) ;) (expression_statement "plVar9 = plVar4;" (assignment_expression "plVar9 = plVar4" identifier = identifier) ;) })) (return_statement "return (long)plVar11;" return (cast_expression "(long)plVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ;) })) (do_statement "do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );" do (compound_statement "{\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  }" { (if_statement "if (uVar7 <= uVar13) goto LAB_001210c0;" if (parenthesized_expression "(uVar7 <= uVar13)" ( (binary_expression "uVar7 <= uVar13" identifier <= identifier) )) (goto_statement "goto LAB_001210c0;" goto statement_identifier ;)) (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(lVar10 + uVar13);" (assignment_expression "bVar1 = *(byte *)(lVar10 + uVar13)" identifier = (pointer_expression "*(byte *)(lVar10 + uVar13)" * (cast_expression "(byte *)(lVar10 + uVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13)" ( (binary_expression "lVar10 + uVar13" identifier + identifier) ))))) ;) (if_statement "if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }" { (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (if_statement "if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" if (parenthesized_expression "(DAT_0016d9e4 == 0)" ( (binary_expression "DAT_0016d9e4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }" { (expression_statement "uVar8 = 0x26;" (assignment_expression "uVar8 = 0x26" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" else (compound_statement "{\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" { (if_statement "if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }" if (parenthesized_expression "(((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&'))" ( (binary_expression "((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')" (parenthesized_expression "((ulong)param_1[1] <= uVar14)" ( (binary_expression "(ulong)param_1[1] <= uVar14" (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) <= identifier) )) || (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '&')" ( (binary_expression "*(char *)(*param_1 + uVar14) != '&'" (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'&'" ' character ')) ))) )) (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));" (call_expression "FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13))" identifier (argument_list "(param_2,(long)*(char *)(*param_1 + uVar13))" ( identifier , (cast_expression "(long)*(char *)(*param_1 + uVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(char *)(*param_1 + uVar13)" * (cast_expression "(char *)(*param_1 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar13)" ( (binary_expression "*param_1 + uVar13" (pointer_expression "*param_1" * identifier) + identifier) ))))) ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;) }))) (labeled_statement "LAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);" statement_identifier : (expression_statement "uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);" (assignment_expression "uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" identifier = (call_expression "FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" identifier (argument_list "(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;)) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }" if (parenthesized_expression "(bVar1 == 0x5c)" ( (binary_expression "bVar1 == 0x5c" identifier == number_literal) )) (compound_statement "{\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }" { (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 <= uVar14) goto LAB_001211e1;" if (parenthesized_expression "(uVar7 <= uVar14)" ( (binary_expression "uVar7 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_001211e1;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(lVar10 + 1 + uVar13);" (assignment_expression "bVar1 = *(byte *)(lVar10 + 1 + uVar13)" identifier = (pointer_expression "*(byte *)(lVar10 + 1 + uVar13)" * (cast_expression "(byte *)(lVar10 + 1 + uVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 1 + uVar13)" ( (binary_expression "lVar10 + 1 + uVar13" (binary_expression "lVar10 + 1" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }" if (parenthesized_expression "(bVar1 == 0x28)" ( (binary_expression "bVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (if_statement "if (uVar7 <= uVar14) goto LAB_00121548;" if (parenthesized_expression "(uVar7 <= uVar14)" ( (binary_expression "uVar7 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_00121548;" goto statement_identifier ;)) (expression_statement "cVar2 = *(char *)(lVar10 + uVar14);" (assignment_expression "cVar2 = *(char *)(lVar10 + uVar14)" identifier = (pointer_expression "*(char *)(lVar10 + uVar14)" * (cast_expression "(char *)(lVar10 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar14)" ( (binary_expression "lVar10 + uVar14" identifier + identifier) ))))) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "sprintf(local_78,"%d",(ulong)DAT_0016d9d4);" (call_expression "sprintf(local_78,"%d",(ulong)DAT_0016d9d4)" identifier (argument_list "(local_78,"%d",(ulong)DAT_0016d9d4)" ( identifier , (string_literal ""%d"" " string_content ") , (cast_expression "(ulong)DAT_0016d9d4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c750(param_2,local_78);" (call_expression "FUN_0012c750(param_2,local_78)" identifier (argument_list "(param_2,local_78)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x5c);" (call_expression "FUN_0012c720(param_2,0x5c)" identifier (argument_list "(param_2,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x26);" (call_expression "FUN_0012c720(param_2,0x26)" identifier (argument_list "(param_2,0x26)" ( identifier , number_literal ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }" if (parenthesized_expression "(DAT_0016d9e4 != 0)" ( (binary_expression "DAT_0016d9e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }" { (expression_statement "iVar6 = (int)(char)bVar1;" (assignment_expression "iVar6 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(_sch_istable + (ulong)bVar1 * 2)" * (cast_expression "(ushort *)(_sch_istable + (ulong)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_sch_istable + (ulong)bVar1 * 2)" ( (binary_expression "_sch_istable + (ulong)bVar1 * 2" identifier + (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }" if (parenthesized_expression "((uVar3 & 0x8c) != 0)" ( (binary_expression "(uVar3 & 0x8c) != 0" (parenthesized_expression "(uVar3 & 0x8c)" ( (binary_expression "uVar3 & 0x8c" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }" { (expression_statement "iVar12 = iVar6 + -0x30;" (assignment_expression "iVar12 = iVar6 + -0x30" identifier = (binary_expression "iVar6 + -0x30" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }" { (expression_statement "iVar12 = iVar6 + -0x57;" (assignment_expression "iVar12 = iVar6 + -0x57" identifier = (binary_expression "iVar6 + -0x57" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }" if (parenthesized_expression "((uVar3 & 0x80) != 0)" ( (binary_expression "(uVar3 & 0x80) != 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              iVar12 = iVar6 + -0x37;\n            }" { (expression_statement "iVar12 = iVar6 + -0x37;" (assignment_expression "iVar12 = iVar6 + -0x37" identifier = (binary_expression "iVar6 + -0x37" identifier + number_literal)) ;) })) })) (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (if_statement "if (param_3 == (long *)0x0) goto LAB_001213b6;" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001213b6;" goto statement_identifier ;)) (expression_statement "iVar6 = (int)param_3[10];" (assignment_expression "iVar6 = (int)param_3[10]" identifier = (cast_expression "(int)param_3[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[10]" identifier [ number_literal ]))) ;) (expression_statement "plVar11 = param_3;" (assignment_expression "plVar11 = param_3" identifier = identifier) ;) (goto_statement "goto joined_r0x00121481;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001211e1:\n      FUN_0012c710(local_58);" statement_identifier : (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;) (goto_statement "goto LAB_0012120b;" goto statement_identifier ;) })) (if_statement "if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" if (parenthesized_expression "(DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0)" ( (binary_expression "DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0" (binary_expression "DAT_0016d9e4 == 0" identifier == number_literal) && (binary_expression "DAT_0016d9e8 == 0" identifier == number_literal)) )) (compound_statement "{\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }" { (if_statement "if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }" { (labeled_statement "LAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);" statement_identifier : (expression_statement "bVar5 = (bool)(bVar5 ^ 1);" (assignment_expression "bVar5 = (bool)(bVar5 ^ 1)" identifier = (cast_expression "(bool)(bVar5 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar5 ^ 1)" ( (binary_expression "bVar5 ^ 1" identifier ^ number_literal) )))) ;)) }) (else_clause "else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" else (if_statement "if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }" { (labeled_statement "LAB_001213a0:\n        uVar14 = uVar13 + 1;" statement_identifier : (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (if_statement "if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }" if (parenthesized_expression "(DAT_0016d9e0 != 0)" ( (binary_expression "DAT_0016d9e0 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }" { (if_statement "if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" if (parenthesized_expression "((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@'))" ( (binary_expression "(uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')" (parenthesized_expression "(uVar14 < uVar7)" ( (binary_expression "uVar14 < uVar7" identifier < identifier) )) && (parenthesized_expression "(*(char *)(lVar10 + uVar14) == '@')" ( (binary_expression "*(char *)(lVar10 + uVar14) == '@'" (pointer_expression "*(char *)(lVar10 + uVar14)" * (cast_expression "(char *)(lVar10 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar14)" ( (binary_expression "lVar10 + uVar14" identifier + identifier) )))) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }" { (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x40);" (call_expression "FUN_0012c720(param_2,0x40)" identifier (argument_list "(param_2,0x40)" ( identifier , number_literal ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" else (compound_statement "{\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" { (labeled_statement "LAB_001213b6:\n            plVar11 = (long *)0x0;" statement_identifier : (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" else (compound_statement "{\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" { (labeled_statement "LAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);" statement_identifier : (expression_statement "local_9c = local_9c + (uint)(bVar1 == 10);" (assignment_expression "local_9c = local_9c + (uint)(bVar1 == 10)" identifier = (binary_expression "local_9c + (uint)(bVar1 == 10)" identifier + (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) ))))) ;)) }))))) (labeled_statement "LAB_001210a6:\n      uVar14 = uVar13 + 1;" statement_identifier : (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (expression_statement "FUN_0012c720(param_2,(long)(char)bVar1);" (call_expression "FUN_0012c720(param_2,(long)(char)bVar1)" identifier (argument_list "(param_2,(long)(char)bVar1)" ( identifier , (cast_expression "(long)(char)bVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) }) (else_clause "else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" else (compound_statement "{\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" { (if_statement "if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(((&DAT_00164680)[bVar1] & 2) == 0)" ( (binary_expression "((&DAT_00164680)[bVar1] & 2) == 0" (parenthesized_expression "((&DAT_00164680)[bVar1] & 2)" ( (binary_expression "(&DAT_00164680)[bVar1] & 2" (subscript_expression "(&DAT_00164680)[bVar1]" (parenthesized_expression "(&DAT_00164680)" ( (pointer_expression "&DAT_00164680" & identifier) )) [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }" { (labeled_statement "LAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;" statement_identifier : (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;" if (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0))))" ( (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))" (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) || (parenthesized_expression "((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))" ( (parenthesized_expression "(bVar1 == 0x27 && (DAT_0016d9e4 != 0))" ( (binary_expression "bVar1 == 0x27 && (DAT_0016d9e4 != 0)" (binary_expression "bVar1 == 0x27" identifier == number_literal) && (parenthesized_expression "(DAT_0016d9e4 != 0)" ( (binary_expression "DAT_0016d9e4 != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_001212f0;" goto statement_identifier ;))) (if_statement "if (bVar1 == 0x40) goto LAB_001213a0;" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_001213a0;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;" if (parenthesized_expression "((bVar1 != 0x3d) || (DAT_0016d9e4 == 0))" ( (binary_expression "(bVar1 != 0x3d) || (DAT_0016d9e4 == 0)" (parenthesized_expression "(bVar1 != 0x3d)" ( (binary_expression "bVar1 != 0x3d" identifier != number_literal) )) || (parenthesized_expression "(DAT_0016d9e4 == 0)" ( (binary_expression "DAT_0016d9e4 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00121096;" goto statement_identifier ;)) (if_statement "if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;" if (parenthesized_expression "((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '='))" ( (binary_expression "(uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')" (parenthesized_expression "(uVar7 <= uVar13 + 1)" ( (binary_expression "uVar7 <= uVar13 + 1" identifier <= (binary_expression "uVar13 + 1" identifier + number_literal)) )) || (parenthesized_expression "(*(char *)(lVar10 + uVar13 + 1) != '=')" ( (binary_expression "*(char *)(lVar10 + uVar13 + 1) != '='" (pointer_expression "*(char *)(lVar10 + uVar13 + 1)" * (cast_expression "(char *)(lVar10 + uVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13 + 1)" ( (binary_expression "lVar10 + uVar13 + 1" (binary_expression "lVar10 + uVar13" identifier + identifier) + number_literal) )))) != (char_literal "'='" ' character ')) ))) )) (goto_statement "goto LAB_001210a6;" goto statement_identifier ;)) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);" (assignment_expression "uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58)" identifier = (call_expression "FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58)" identifier (argument_list "(uVar13 + 2,param_1,param_1 + 1,local_58)" ( (binary_expression "uVar13 + 2" identifier + number_literal) , identifier , (binary_expression "param_1 + 1" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar8 = FUN_0012c7c0(local_58);" (assignment_expression "uVar8 = FUN_0012c7c0(local_58)" identifier = (call_expression "FUN_0012c7c0(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "lVar10 = FUN_0011d830(param_4,uVar8);" (assignment_expression "lVar10 = FUN_0011d830(param_4,uVar8)" identifier = (call_expression "FUN_0011d830(param_4,uVar8)" identifier (argument_list "(param_4,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }" { (expression_statement "FUN_0012c720(param_2,0x3d);" (call_expression "FUN_0012c720(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0012c720(param_2,0x3d);" (call_expression "FUN_0012c720(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0012c670(param_2,local_58);" (call_expression "FUN_0012c670(param_2,local_58)" identifier (argument_list "(param_2,local_58)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" else (if_statement "if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" if (parenthesized_expression "(*(long *)(lVar10 + 0x40) == 0)" ( (binary_expression "*(long *)(lVar10 + 0x40) == 0" (pointer_expression "*(long *)(lVar10 + 0x40)" * (cast_expression "(long *)(lVar10 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x40)" ( (binary_expression "lVar10 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c720(param_2,0x30);" (call_expression "FUN_0012c720(param_2,0x30)" identifier (argument_list "(param_2,0x30)" ( identifier , number_literal ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" else (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c750(param_2,&DAT_00148e9e);" (call_expression "FUN_0012c750(param_2,&DAT_00148e9e)" identifier (argument_list "(param_2,&DAT_00148e9e)" ( identifier , (pointer_expression "&DAT_00148e9e" & identifier) ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }))))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) (if_statement "if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }" { (if_statement "if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }" { (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" else (compound_statement "{\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" { (if_statement "if (uVar13 + 5 < uVar7) goto LAB_00121348;" if (parenthesized_expression "(uVar13 + 5 < uVar7)" ( (binary_expression "uVar13 + 5 < uVar7" (binary_expression "uVar13 + 5" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_00121348;" goto statement_identifier ;)) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (labeled_statement "LAB_0012131f:\n          uVar8 = 0x27;" statement_identifier : (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" identifier = number_literal) ;)) }))) (labeled_statement "LAB_00121325:\n        uVar15 = 1;" statement_identifier : (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;)) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (goto_statement "goto LAB_0012120b;" goto statement_identifier ;) })) (if_statement "if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;" if (parenthesized_expression "((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))" ( (binary_expression "(DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')))" (parenthesized_expression "(DAT_0016d9e0 != 0)" ( (binary_expression "DAT_0016d9e0 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')))" ( (parenthesized_expression "(uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))" ( (binary_expression "uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')" (binary_expression "uVar13 == 0" identifier == number_literal) || (parenthesized_expression "(*(char *)(lVar10 + -1 + uVar13) != '@')" ( (binary_expression "*(char *)(lVar10 + -1 + uVar13) != '@'" (pointer_expression "*(char *)(lVar10 + -1 + uVar13)" * (cast_expression "(char *)(lVar10 + -1 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + -1 + uVar13)" ( (binary_expression "lVar10 + -1 + uVar13" (binary_expression "lVar10 + -1" identifier + number_literal) + identifier) )))) != (char_literal "'@'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00121240;" goto statement_identifier ;)) (if_statement "if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }" if (parenthesized_expression "((param_5 == 0) || (uVar7 <= uVar13 + 5))" ( (binary_expression "(param_5 == 0) || (uVar7 <= uVar13 + 5)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar7 <= uVar13 + 5)" ( (binary_expression "uVar7 <= uVar13 + 5" identifier <= (binary_expression "uVar13 + 5" identifier + number_literal)) ))) )) (compound_statement "{\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }" { (labeled_statement "LAB_00121161:\n        FUN_0012c710(local_58);" statement_identifier : (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (if_statement "if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;" if (parenthesized_expression "((DAT_0016d9e0 == 0) || (!bVar5))" ( (binary_expression "(DAT_0016d9e0 == 0) || (!bVar5)" (parenthesized_expression "(DAT_0016d9e0 == 0)" ( (binary_expression "DAT_0016d9e0 == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) ))) )) (goto_statement "goto LAB_0012131f;" goto statement_identifier ;)) (labeled_statement "LAB_00121184:\n        uVar8 = 0x40;" statement_identifier : (expression_statement "uVar8 = 0x40;" (assignment_expression "uVar8 = 0x40" identifier = number_literal) ;)) (goto_statement "goto LAB_00121325;" goto statement_identifier ;) })) (labeled_statement "LAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);" statement_identifier : (expression_statement "iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);" (assignment_expression "iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5)" identifier = (call_expression "strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5)" identifier (argument_list "((char *)(lVar10 + uVar13),"LOCAL",5)" ( (cast_expression "(char *)(lVar10 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13)" ( (binary_expression "lVar10 + uVar13" identifier + identifier) ))) , (string_literal ""LOCAL"" " string_content ") , number_literal )))) ;)) (if_statement "if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;" if (parenthesized_expression "((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))" ( (binary_expression "(iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')))" ( (parenthesized_expression "(cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))" ( (comma_expression "cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')" (assignment_expression "cVar2 = *(char *)(lVar10 + uVar13 + 5)" identifier = (pointer_expression "*(char *)(lVar10 + uVar13 + 5)" * (cast_expression "(char *)(lVar10 + uVar13 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar13 + 5)" ( (binary_expression "lVar10 + uVar13 + 5" (binary_expression "lVar10 + uVar13" identifier + identifier) + number_literal) ))))) , (binary_expression "cVar2 != ' ' && (cVar2 != '\t')" (binary_expression "cVar2 != ' '" identifier != (char_literal "' '" ' character ')) && (parenthesized_expression "(cVar2 != '\t')" ( (binary_expression "cVar2 != '\t'" identifier != (char_literal "'\t'" ' escape_sequence ')) )))) )) ))) )) (goto_statement "goto LAB_00121161;" goto statement_identifier ;)) (if_statement "if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" { (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (if_statement "if (DAT_0016d9e0 == 0) goto LAB_0012131f;" if (parenthesized_expression "(DAT_0016d9e0 == 0)" ( (binary_expression "DAT_0016d9e0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012131f;" goto statement_identifier ;)) (goto_statement "goto LAB_00121184;" goto statement_identifier ;) })) (expression_statement "uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);" (assignment_expression "uVar14 = FUN_0012c7d0(uVar13 + 5,param_1)" identifier = (call_expression "FUN_0012c7d0(uVar13 + 5,param_1)" identifier (argument_list "(uVar13 + 5,param_1)" ( (binary_expression "uVar13 + 5" identifier + number_literal) , identifier )))) ;) (expression_statement "local_80 = plVar9;" (assignment_expression "local_80 = plVar9" identifier = identifier) ;) (if_statement "if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;" if (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '\n')" ( (binary_expression "*(char *)(*param_1 + uVar14) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00121701;" goto statement_identifier ;)) }))) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "joined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;" statement_identifier : (if_statement "if (cVar2 == ')') goto LAB_001215cd;" if (parenthesized_expression "(cVar2 == ')')" ( (binary_expression "cVar2 == ')'" identifier == (char_literal "')'" ' character ')) )) (goto_statement "goto LAB_001215cd;" goto statement_identifier ;))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0012c720(param_2);" (call_expression "FUN_0012c720(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 <= uVar14) goto LAB_00121548;" if (parenthesized_expression "(uVar7 <= uVar14)" ( (binary_expression "uVar7 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_00121548;" goto statement_identifier ;)) (expression_statement "cVar2 = *(char *)(*param_1 + uVar14);" (assignment_expression "cVar2 = *(char *)(*param_1 + uVar14)" identifier = (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) ))))) ;) (goto_statement "goto joined_r0x00121513;" goto statement_identifier ;) (labeled_statement "LAB_001215cd:\n  uVar14 = uVar14 + 1;" statement_identifier : (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "LAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" statement_identifier : (if_statement "if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar11 = (long *)dcgettext(0,"missing `)\'",5);" (assignment_expression "plVar11 = (long *)dcgettext(0,"missing `)\'",5)" identifier = (cast_expression "(long *)dcgettext(0,"missing `)\'",5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing `)\'",5)" identifier (argument_list "(0,"missing `)\'",5)" ( number_literal , (string_literal ""missing `)\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" else (compound_statement "{\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar8 = dcgettext(0,"missing `)\'",5);" (assignment_expression "uVar8 = dcgettext(0,"missing `)\'",5)" identifier = (call_expression "dcgettext(0,"missing `)\'",5)" identifier (argument_list "(0,"missing `)\'",5)" ( number_literal , (string_literal ""missing `)\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);" (call_expression "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8)" identifier (argument_list "(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8)" ( (pointer_expression "*(undefined8 *)(param_5 + 0x38)" * (cast_expression "(undefined8 *)(param_5 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x38)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) )))) , (binary_expression "local_9c + *(int *)(param_5 + 0x40)" identifier + (pointer_expression "*(int *)(param_5 + 0x40)" * (cast_expression "(int *)(param_5 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x40)" ( (binary_expression "param_5 + 0x40" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "joined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;" statement_identifier : (if_statement "if (iVar12 + -1 == iVar6) goto LAB_001214a2;" if (parenthesized_expression "(iVar12 + -1 == iVar6)" ( (binary_expression "iVar12 + -1 == iVar6" (binary_expression "iVar12 + -1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_001214a2;" goto statement_identifier ;))) (expression_statement "plVar11 = (long *)*plVar11;" (assignment_expression "plVar11 = (long *)*plVar11" identifier = (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier))) ;) (if_statement "if (plVar11 == (long *)0x0) goto LAB_00121040;" if (parenthesized_expression "(plVar11 == (long *)0x0)" ( (binary_expression "plVar11 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00121040;" goto statement_identifier ;)) (expression_statement "iVar6 = *(int *)(plVar11 + 10);" (assignment_expression "iVar6 = *(int *)(plVar11 + 10)" identifier = (pointer_expression "*(int *)(plVar11 + 10)" * (cast_expression "(int *)(plVar11 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar11 + 10)" ( (binary_expression "plVar11 + 10" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x00121481;" goto statement_identifier ;) (labeled_statement "LAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" statement_identifier : (if_statement "if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" if (parenthesized_expression "(plVar11[8] == 0)" ( (binary_expression "plVar11[8] == 0" (subscript_expression "plVar11[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar4 = plVar11 + 4;" (assignment_expression "plVar4 = plVar11 + 4" identifier = (binary_expression "plVar11 + 4" identifier + number_literal)) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c670(param_2,plVar4);" (call_expression "FUN_0012c670(param_2,plVar4)" identifier (argument_list "(param_2,plVar4)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" else (compound_statement "{\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" { (expression_statement "plVar4 = plVar11 + 7;" (assignment_expression "plVar4 = plVar11 + 7" identifier = (binary_expression "plVar11 + 7" identifier + number_literal)) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0012c670(param_2,plVar4);" (call_expression "FUN_0012c670(param_2,plVar4)" identifier (argument_list "(param_2,plVar4)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })))) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) (labeled_statement "LAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');" statement_identifier : (do_statement "do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');" do (compound_statement "{\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  }" { (expression_statement "plVar9 = (long *)FUN_00120ca0();" (assignment_expression "plVar9 = (long *)FUN_00120ca0()" identifier = (cast_expression "(long *)FUN_00120ca0()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00120ca0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);" (assignment_expression "uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1)" identifier = (call_expression "FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1)" identifier (argument_list "(uVar14,param_1,param_1 + 1,plVar9 + 1)" ( identifier , identifier , (binary_expression "param_1 + 1" identifier + number_literal) , (binary_expression "plVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar8 = FUN_0012c7c0(plVar9 + 1);" (assignment_expression "uVar8 = FUN_0012c7c0(plVar9 + 1)" identifier = (call_expression "FUN_0012c7c0(plVar9 + 1)" identifier (argument_list "(plVar9 + 1)" ( (binary_expression "plVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar10 = FUN_0011d830(param_4,uVar8);" (assignment_expression "lVar10 = FUN_0011d830(param_4,uVar8)" identifier = (call_expression "FUN_0011d830(param_4,uVar8)" identifier (argument_list "(param_4,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }" { (expression_statement "*(undefined4 *)(plVar9 + 10) = 0xfffffffd;" (assignment_expression "*(undefined4 *)(plVar9 + 10) = 0xfffffffd" (pointer_expression "*(undefined4 *)(plVar9 + 10)" * (cast_expression "(undefined4 *)(plVar9 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar9 + 10)" ( (binary_expression "plVar9 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar9 = (long)local_80;" (assignment_expression "*plVar9 = (long)local_80" (pointer_expression "*plVar9" * identifier) = (cast_expression "(long)local_80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "DAT_0016d9d0 = DAT_0016d9d0 + 1;" (assignment_expression "DAT_0016d9d0 = DAT_0016d9d0 + 1" identifier = (binary_expression "DAT_0016d9d0 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(local_78,".LL%04x");" (call_expression "sprintf(local_78,".LL%04x")" identifier (argument_list "(local_78,".LL%04x")" ( identifier , (string_literal "".LL%04x"" " string_content ") ))) ;) (expression_statement "FUN_0012c750(plVar9 + 7,local_78);" (call_expression "FUN_0012c750(plVar9 + 7,local_78)" identifier (argument_list "(plVar9 + 7,local_78)" ( (binary_expression "plVar9 + 7" identifier + number_literal) , identifier ))) ;) (expression_statement "plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);" (assignment_expression "plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9)" identifier = (cast_expression "(long *)FUN_0011d6e0(param_4,uVar8,plVar9)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011d6e0(param_4,uVar8,plVar9)" identifier (argument_list "(param_4,uVar8,plVar9)" ( identifier , identifier , identifier ))))) ;) (expression_statement "local_80 = plVar9;" (assignment_expression "local_80 = plVar9" identifier = identifier) ;) (if_statement "if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" { (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00121040;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" else (compound_statement "{\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" { (expression_statement "uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" identifier = (call_expression "dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" identifier (argument_list "(0,"`%s\' was already used as parameter (or another local) name",5)" ( number_literal , (string_literal ""`%s\' was already used as parameter (or another local) name"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;" (call_expression "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)" identifier (argument_list "(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)" ( (pointer_expression "*(undefined8 *)(param_5 + 0x38)" * (cast_expression "(undefined8 *)(param_5 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x38)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) )))) , (binary_expression "local_9c + *(int *)(param_5 + 0x40)" identifier + (pointer_expression "*(int *)(param_5 + 0x40)" * (cast_expression "(int *)(param_5 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x40)" ( (binary_expression "param_5 + 0x40" identifier + number_literal) ))))) , identifier , identifier ))) ;) (expression_statement "FUN_00120ce0(plVar9);" (call_expression "FUN_00120ce0(plVar9)" identifier (argument_list "(plVar9)" ( identifier ))) ;) }))) (expression_statement "uVar14 = FUN_0012c800(uVar14,param_1);" (assignment_expression "uVar14 = FUN_0012c800(uVar14,param_1)" identifier = (call_expression "FUN_0012c800(uVar14,param_1)" identifier (argument_list "(uVar14,param_1)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '\n')" ( (binary_expression "*(char *)(*param_1 + uVar14) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar14)" * (cast_expression "(char *)(*param_1 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar14)" ( (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar9 = local_80;" (assignment_expression "plVar9 = local_80" identifier = identifier) ;) (goto_statement "goto LAB_00121040;" goto statement_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 TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator 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 (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (return_statement return (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ;) })) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) )))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;)) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;)) }))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) != (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_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 , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (char_literal ' character ')) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) , (string_literal " string_content ") , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) , (binary_expression (binary_expression IDENT != (char_literal ' character ')) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + (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 ])) ;) })))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;))) (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 ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , 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 = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) ;)) (expression_statement (assignment_expression IDENT = (subscript_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) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "long FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_00120fe0(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)" (identifier "FUN_00120fe0") (parameter_list "(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  long *plVar4;\n  bool bVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long *plVar9;\n  long lVar10;\n  long *plVar11;\n  int iVar12;\n  ulong uVar13;\n  ulong uVar14;\n  undefined8 uVar15;\n  int local_9c;\n  long *local_80;\n  char local_78 [32];\n  undefined1 local_58 [40];\n  \n  uVar14 = 0;\n  plVar11 = (long *)0x0;\n  FUN_0012c630(local_58);\n  uVar7 = param_1[1];\n  local_9c = 0;\n  bVar5 = false;\n  plVar9 = (long *)0x0;\nLAB_00121040:\n  uVar13 = uVar14;\n  if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }\n  do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );\njoined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;\n  uVar14 = uVar14 + 1;\n  FUN_0012c720(param_2);\n  uVar7 = param_1[1];\n  if (uVar7 <= uVar14) goto LAB_00121548;\n  cVar2 = *(char *)(*param_1 + uVar14);\n  goto joined_r0x00121513;\nLAB_001215cd:\n  uVar14 = uVar14 + 1;\n  plVar11 = (long *)0x0;\n  goto LAB_00121040;\nLAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\njoined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;\n  plVar11 = (long *)*plVar11;\n  if (plVar11 == (long *)0x0) goto LAB_00121040;\n  iVar6 = *(int *)(plVar11 + 10);\n  goto joined_r0x00121481;\nLAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  goto LAB_00121040;\nLAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');\n  uVar7 = param_1[1];\n  plVar11 = (long *)0x0;\n  plVar9 = local_80;\n  goto LAB_00121040;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "long *plVar9;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar9" (* "*") (identifier "plVar9")) (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long *plVar11;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar11" (* "*") (identifier "plVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "undefined8 uVar15;" (type_identifier "undefined8") (identifier "uVar15") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "long *local_80;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "char local_78 [32];" (primitive_type "char") (array_declarator "local_78 [32]" (identifier "local_78") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "undefined1 local_58 [40];" (type_identifier "undefined1") (array_declarator "local_58 [40]" (identifier "local_58") ([ "[") (number_literal "40") (] "]")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c630(local_58);" (call_expression "FUN_0012c630(local_58)" (identifier "FUN_0012c630") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" (identifier "local_9c") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "plVar9 = (long *)0x0;" (assignment_expression "plVar9 = (long *)0x0" (identifier "plVar9") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00121040:\n  uVar13 = uVar14;" (statement_identifier "LAB_00121040") (: ":") (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" (identifier "uVar13") (= "=") (identifier "uVar14")) (; ";"))) (if_statement "if (plVar11 != (long *)0x0) {\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }" (if "if") (parenthesized_expression "(plVar11 != (long *)0x0)" (( "(") (binary_expression "plVar11 != (long *)0x0" (identifier "plVar11") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_001210c0:\n    FUN_0012c660(local_58);\n    while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }\n    return (long)plVar11;\n  }" ({ "{") (labeled_statement "LAB_001210c0:\n    FUN_0012c660(local_58);" (statement_identifier "LAB_001210c0") (: ":") (expression_statement "FUN_0012c660(local_58);" (call_expression "FUN_0012c660(local_58)" (identifier "FUN_0012c660") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";"))) (while_statement "while (plVar9 != (long *)0x0) {\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }" (while "while") (parenthesized_expression "(plVar9 != (long *)0x0)" (( "(") (binary_expression "plVar9 != (long *)0x0" (identifier "plVar9") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      plVar4 = (long *)*plVar9;\n      uVar8 = FUN_0012c7c0(plVar9 + 1);\n      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);\n      FUN_00120ce0(plVar9);\n      plVar9 = plVar4;\n    }" ({ "{") (expression_statement "plVar4 = (long *)*plVar9;" (assignment_expression "plVar4 = (long *)*plVar9" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar9" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar9" (* "*") (identifier "plVar9")))) (; ";")) (expression_statement "uVar8 = FUN_0012c7c0(plVar9 + 1);" (assignment_expression "uVar8 = FUN_0012c7c0(plVar9 + 1)" (identifier "uVar8") (= "=") (call_expression "FUN_0012c7c0(plVar9 + 1)" (identifier "FUN_0012c7c0") (argument_list "(plVar9 + 1)" (( "(") (binary_expression "plVar9 + 1" (identifier "plVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);" (call_expression "FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0)" (identifier "FUN_0011d8a0") (argument_list "(param_4,uVar8,plVar4 == (long *)0x0)" (( "(") (identifier "param_4") (, ",") (identifier "uVar8") (, ",") (binary_expression "plVar4 == (long *)0x0" (identifier "plVar4") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) (; ";")) (expression_statement "FUN_00120ce0(plVar9);" (call_expression "FUN_00120ce0(plVar9)" (identifier "FUN_00120ce0") (argument_list "(plVar9)" (( "(") (identifier "plVar9") () ")"))) (; ";")) (expression_statement "plVar9 = plVar4;" (assignment_expression "plVar9 = plVar4" (identifier "plVar9") (= "=") (identifier "plVar4")) (; ";")) (} "}"))) (return_statement "return (long)plVar11;" (return "return") (cast_expression "(long)plVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar11")) (; ";")) (} "}"))) (do_statement "do {\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  } while( true );" (do "do") (compound_statement "{\n    if (uVar7 <= uVar13) goto LAB_001210c0;\n    lVar10 = *param_1;\n    bVar1 = *(byte *)(lVar10 + uVar13);\n    if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }\n    if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }\n    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }\n    plVar11 = (long *)0x0;\n    uVar7 = param_1[1];\n    uVar13 = uVar14;\n  }" ({ "{") (if_statement "if (uVar7 <= uVar13) goto LAB_001210c0;" (if "if") (parenthesized_expression "(uVar7 <= uVar13)" (( "(") (binary_expression "uVar7 <= uVar13" (identifier "uVar7") (<= "<=") (identifier "uVar13")) () ")")) (goto_statement "goto LAB_001210c0;" (goto "goto") (statement_identifier "LAB_001210c0") (; ";"))) (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" (identifier "lVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "bVar1 = *(byte *)(lVar10 + uVar13);" (assignment_expression "bVar1 = *(byte *)(lVar10 + uVar13)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(lVar10 + uVar13)" (* "*") (cast_expression "(byte *)(lVar10 + uVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar13)" (( "(") (binary_expression "lVar10 + uVar13" (identifier "lVar10") (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0x26) {\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x26)" (( "(") (binary_expression "bVar1 == 0x26" (identifier "bVar1") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n      uVar14 = uVar13 + 1;\n      FUN_0012c710(local_58);\n      if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }\nLAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);\n      plVar11 = (long *)0x0;\n      uVar7 = param_1[1];\n      goto LAB_00121040;\n    }" ({ "{") (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (if_statement "if (DAT_0016d9e4 == 0) {\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }\n      else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" (if "if") (parenthesized_expression "(DAT_0016d9e4 == 0)" (( "(") (binary_expression "DAT_0016d9e4 == 0" (identifier "DAT_0016d9e4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = 0x26;\n        uVar15 = 0;\n      }" ({ "{") (expression_statement "uVar8 = 0x26;" (assignment_expression "uVar8 = 0x26" (identifier "uVar8") (= "=") (number_literal "0x26")) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" (else "else") (compound_statement "{\n        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }\n        uVar14 = uVar13 + 2;\n        uVar15 = 1;\n        uVar8 = 0x27;\n      }" ({ "{") (if_statement "if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }" (if "if") (parenthesized_expression "(((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&'))" (( "(") (binary_expression "((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')" (parenthesized_expression "((ulong)param_1[1] <= uVar14)" (( "(") (binary_expression "(ulong)param_1[1] <= uVar14" (cast_expression "(ulong)param_1[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (<= "<=") (identifier "uVar14")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '&')" (( "(") (binary_expression "*(char *)(*param_1 + uVar14) != '&'" (pointer_expression "*(char *)(*param_1 + uVar14)" (* "*") (cast_expression "(char *)(*param_1 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar14)" (( "(") (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar14")) () ")")))) (!= "!=") (char_literal "'&'" (' "'") (character "&") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));\n          uVar7 = param_1[1];\n          goto LAB_00121040;\n        }" ({ "{") (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));" (call_expression "FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13))" (identifier "FUN_0012c720") (argument_list "(param_2,(long)*(char *)(*param_1 + uVar13))" (( "(") (identifier "param_2") (, ",") (cast_expression "(long)*(char *)(*param_1 + uVar13)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*(char *)(*param_1 + uVar13)" (* "*") (cast_expression "(char *)(*param_1 + uVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar13)" (( "(") (binary_expression "*param_1 + uVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar13")) () ")"))))) () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" (identifier "uVar15") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" (identifier "uVar8") (= "=") (number_literal "0x27")) (; ";")) (} "}")))) (labeled_statement "LAB_0012120b:\n      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);" (statement_identifier "LAB_0012120b") (: ":") (expression_statement "uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);" (assignment_expression "uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" (identifier "uVar14") (= "=") (call_expression "FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" (identifier "FUN_00120e40") (argument_list "(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15)" (( "(") (identifier "uVar14") (, ",") (identifier "param_1") (, ",") (identifier "local_58") (, ",") (identifier "param_4") (, ",") (identifier "uVar8") (, ",") (identifier "param_2") (, ",") (identifier "uVar15") () ")")))) (; ";"))) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x5c) {\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x5c)" (( "(") (binary_expression "bVar1 == 0x5c" (identifier "bVar1") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n      uVar14 = uVar13 + 1;\n      if (uVar7 <= uVar14) goto LAB_001211e1;\n      bVar1 = *(byte *)(lVar10 + 1 + uVar13);\n      if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }\n      if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n      if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }\nLAB_001211e1:\n      FUN_0012c710(local_58);\n      uVar15 = 0;\n      uVar8 = 0x27;\n      goto LAB_0012120b;\n    }" ({ "{") (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar7 <= uVar14) goto LAB_001211e1;" (if "if") (parenthesized_expression "(uVar7 <= uVar14)" (( "(") (binary_expression "uVar7 <= uVar14" (identifier "uVar7") (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_001211e1;" (goto "goto") (statement_identifier "LAB_001211e1") (; ";"))) (expression_statement "bVar1 = *(byte *)(lVar10 + 1 + uVar13);" (assignment_expression "bVar1 = *(byte *)(lVar10 + 1 + uVar13)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(lVar10 + 1 + uVar13)" (* "*") (cast_expression "(byte *)(lVar10 + 1 + uVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 1 + uVar13)" (( "(") (binary_expression "lVar10 + 1 + uVar13" (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1")) (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0x28) {\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x28)" (( "(") (binary_expression "bVar1 == 0x28" (identifier "bVar1") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        if (uVar7 <= uVar14) goto LAB_00121548;\n        cVar2 = *(char *)(lVar10 + uVar14);\n        break;\n      }" ({ "{") (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar7 <= uVar14) goto LAB_00121548;" (if "if") (parenthesized_expression "(uVar7 <= uVar14)" (( "(") (binary_expression "uVar7 <= uVar14" (identifier "uVar7") (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_00121548;" (goto "goto") (statement_identifier "LAB_00121548") (; ";"))) (expression_statement "cVar2 = *(char *)(lVar10 + uVar14);" (assignment_expression "cVar2 = *(char *)(lVar10 + uVar14)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(lVar10 + uVar14)" (* "*") (cast_expression "(char *)(lVar10 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar14)" (( "(") (binary_expression "lVar10 + uVar14" (identifier "lVar10") (+ "+") (identifier "uVar14")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x40) {\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);\n        plVar11 = (long *)0x0;\n        FUN_0012c750(param_2,local_78);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" ({ "{") (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "sprintf(local_78,"%d",(ulong)DAT_0016d9d4);" (call_expression "sprintf(local_78,"%d",(ulong)DAT_0016d9d4)" (identifier "sprintf") (argument_list "(local_78,"%d",(ulong)DAT_0016d9d4)" (( "(") (identifier "local_78") (, ",") (string_literal ""%d"" (" """) (string_content "%d") (" """)) (, ",") (cast_expression "(ulong)DAT_0016d9d4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "DAT_0016d9d4")) () ")"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c750(param_2,local_78);" (call_expression "FUN_0012c750(param_2,local_78)" (identifier "FUN_0012c750") (argument_list "(param_2,local_78)" (( "(") (identifier "param_2") (, ",") (identifier "local_78") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x26) {\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x26)" (( "(") (binary_expression "bVar1 == 0x26" (identifier "bVar1") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n        uVar14 = uVar13 + 2;\n        FUN_0012c720(param_2,0x5c);\n        plVar11 = (long *)0x0;\n        FUN_0012c720(param_2,0x26);\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" ({ "{") (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_0012c720(param_2,0x5c);" (call_expression "FUN_0012c720(param_2,0x5c)" (identifier "FUN_0012c720") (argument_list "(param_2,0x5c)" (( "(") (identifier "param_2") (, ",") (number_literal "0x5c") () ")"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c720(param_2,0x26);" (call_expression "FUN_0012c720(param_2,0x26)" (identifier "FUN_0012c720") (argument_list "(param_2,0x26)" (( "(") (identifier "param_2") (, ",") (number_literal "0x26") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (if_statement "if (DAT_0016d9e4 != 0) {\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }" (if "if") (parenthesized_expression "(DAT_0016d9e4 != 0)" (( "(") (binary_expression "DAT_0016d9e4 != 0" (identifier "DAT_0016d9e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = (int)(char)bVar1;\n        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);\n        if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }\n      }" ({ "{") (expression_statement "iVar6 = (int)(char)bVar1;" (assignment_expression "iVar6 = (int)(char)bVar1" (identifier "iVar6") (= "=") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")))) (; ";")) (expression_statement "uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(_sch_istable + (ulong)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(_sch_istable + (ulong)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(_sch_istable + (ulong)bVar1 * 2)" (( "(") (binary_expression "_sch_istable + (ulong)bVar1 * 2" (identifier "_sch_istable") (+ "+") (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (if_statement "if ((uVar3 & 0x8c) != 0) {\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }" (if "if") (parenthesized_expression "((uVar3 & 0x8c) != 0)" (( "(") (binary_expression "(uVar3 & 0x8c) != 0" (parenthesized_expression "(uVar3 & 0x8c)" (( "(") (binary_expression "uVar3 & 0x8c" (identifier "uVar3") (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar12 = iVar6 + -0x30;\n          if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }\n          uVar14 = uVar13 + 2;\n          if (param_3 == (long *)0x0) goto LAB_001213b6;\n          iVar6 = (int)param_3[10];\n          plVar11 = param_3;\n          goto joined_r0x00121481;\n        }" ({ "{") (expression_statement "iVar12 = iVar6 + -0x30;" (assignment_expression "iVar12 = iVar6 + -0x30" (identifier "iVar12") (= "=") (binary_expression "iVar6 + -0x30" (identifier "iVar6") (+ "+") (number_literal "-0x30"))) (; ";")) (if_statement "if ((uVar3 & 4) == 0) {\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }" (if "if") (parenthesized_expression "((uVar3 & 4) == 0)" (( "(") (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" (( "(") (binary_expression "uVar3 & 4" (identifier "uVar3") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar12 = iVar6 + -0x57;\n            if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }\n          }" ({ "{") (expression_statement "iVar12 = iVar6 + -0x57;" (assignment_expression "iVar12 = iVar6 + -0x57" (identifier "iVar12") (= "=") (binary_expression "iVar6 + -0x57" (identifier "iVar6") (+ "+") (number_literal "-0x57"))) (; ";")) (if_statement "if ((uVar3 & 0x80) != 0) {\n              iVar12 = iVar6 + -0x37;\n            }" (if "if") (parenthesized_expression "((uVar3 & 0x80) != 0)" (( "(") (binary_expression "(uVar3 & 0x80) != 0" (parenthesized_expression "(uVar3 & 0x80)" (( "(") (binary_expression "uVar3 & 0x80" (identifier "uVar3") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar12 = iVar6 + -0x37;\n            }" ({ "{") (expression_statement "iVar12 = iVar6 + -0x37;" (assignment_expression "iVar12 = iVar6 + -0x37" (identifier "iVar12") (= "=") (binary_expression "iVar6 + -0x37" (identifier "iVar6") (+ "+") (number_literal "-0x37"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_3 == (long *)0x0) goto LAB_001213b6;" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001213b6;" (goto "goto") (statement_identifier "LAB_001213b6") (; ";"))) (expression_statement "iVar6 = (int)param_3[10];" (assignment_expression "iVar6 = (int)param_3[10]" (identifier "iVar6") (= "=") (cast_expression "(int)param_3[10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[10]" (identifier "param_3") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "plVar11 = param_3;" (assignment_expression "plVar11 = param_3" (identifier "plVar11") (= "=") (identifier "param_3")) (; ";")) (goto_statement "goto joined_r0x00121481;" (goto "goto") (statement_identifier "joined_r0x00121481") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001211e1:\n      FUN_0012c710(local_58);" (statement_identifier "LAB_001211e1") (: ":") (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";"))) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" (identifier "uVar8") (= "=") (number_literal "0x27")) (; ";")) (goto_statement "goto LAB_0012120b;" (goto "goto") (statement_identifier "LAB_0012120b") (; ";")) (} "}"))) (if_statement "if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }\n    else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" (if "if") (parenthesized_expression "(DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0)" (( "(") (binary_expression "DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0" (binary_expression "DAT_0016d9e4 == 0" (identifier "DAT_0016d9e4") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_0016d9e8 == 0" (identifier "DAT_0016d9e8") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }\nLAB_001210a6:\n      uVar14 = uVar13 + 1;\n      FUN_0012c720(param_2,(long)(char)bVar1);\n    }" ({ "{") (if_statement "if (bVar1 == 0x22) {\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x22)" (( "(") (binary_expression "bVar1 == 0x22" (identifier "bVar1") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\nLAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }" ({ "{") (labeled_statement "LAB_001212f0:\n        bVar5 = (bool)(bVar5 ^ 1);" (statement_identifier "LAB_001212f0") (: ":") (expression_statement "bVar5 = (bool)(bVar5 ^ 1);" (assignment_expression "bVar5 = (bool)(bVar5 ^ 1)" (identifier "bVar5") (= "=") (cast_expression "(bool)(bVar5 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar5 ^ 1)" (( "(") (binary_expression "bVar5 ^ 1" (identifier "bVar5") (^ "^") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (else_clause "else if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" (else "else") (if_statement "if (bVar1 == 0x40) {\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }\n      else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\nLAB_001213a0:\n        uVar14 = uVar13 + 1;\n        if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }\n      }" ({ "{") (labeled_statement "LAB_001213a0:\n        uVar14 = uVar13 + 1;" (statement_identifier "LAB_001213a0") (: ":") (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (DAT_0016d9e0 != 0) {\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }" (if "if") (parenthesized_expression "(DAT_0016d9e0 != 0)" (( "(") (binary_expression "DAT_0016d9e0 != 0" (identifier "DAT_0016d9e0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }\n          goto LAB_00121040;\n        }" ({ "{") (if_statement "if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }\n          else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" (if "if") (parenthesized_expression "((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@'))" (( "(") (binary_expression "(uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')" (parenthesized_expression "(uVar14 < uVar7)" (( "(") (binary_expression "uVar14 < uVar7" (identifier "uVar14") (< "<") (identifier "uVar7")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(lVar10 + uVar14) == '@')" (( "(") (binary_expression "*(char *)(lVar10 + uVar14) == '@'" (pointer_expression "*(char *)(lVar10 + uVar14)" (* "*") (cast_expression "(char *)(lVar10 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar14)" (( "(") (binary_expression "lVar10 + uVar14" (identifier "lVar10") (+ "+") (identifier "uVar14")) () ")")))) (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            uVar14 = uVar13 + 2;\n            plVar11 = (long *)0x0;\n            FUN_0012c720(param_2,0x40);\n            uVar7 = param_1[1];\n          }" ({ "{") (expression_statement "uVar14 = uVar13 + 2;" (assignment_expression "uVar14 = uVar13 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c720(param_2,0x40);" (call_expression "FUN_0012c720(param_2,0x40)" (identifier "FUN_0012c720") (argument_list "(param_2,0x40)" (( "(") (identifier "param_2") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" (else "else") (compound_statement "{\nLAB_001213b6:\n            plVar11 = (long *)0x0;\n          }" ({ "{") (labeled_statement "LAB_001213b6:\n            plVar11 = (long *)0x0;" (statement_identifier "LAB_001213b6") (: ":") (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")))) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" (else "else") (compound_statement "{\nLAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);\n      }" ({ "{") (labeled_statement "LAB_00121096:\n        local_9c = local_9c + (uint)(bVar1 == 10);" (statement_identifier "LAB_00121096") (: ":") (expression_statement "local_9c = local_9c + (uint)(bVar1 == 10);" (assignment_expression "local_9c = local_9c + (uint)(bVar1 == 10)" (identifier "local_9c") (= "=") (binary_expression "local_9c + (uint)(bVar1 == 10)" (identifier "local_9c") (+ "+") (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar1 == 10)" (( "(") (binary_expression "bVar1 == 10" (identifier "bVar1") (== "==") (number_literal "10")) () ")"))))) (; ";"))) (} "}")))))) (labeled_statement "LAB_001210a6:\n      uVar14 = uVar13 + 1;" (statement_identifier "LAB_001210a6") (: ":") (expression_statement "uVar14 = uVar13 + 1;" (assignment_expression "uVar14 = uVar13 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "FUN_0012c720(param_2,(long)(char)bVar1);" (call_expression "FUN_0012c720(param_2,(long)(char)bVar1)" (identifier "FUN_0012c720") (argument_list "(param_2,(long)(char)bVar1)" (( "(") (identifier "param_2") (, ",") (cast_expression "(long)(char)bVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" (else "else") (compound_statement "{\n      if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }\n      if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }\n      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;\n      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }\nLAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);\n      if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;\n      if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }\n      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);\n      local_80 = plVar9;\n      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;\n    }" ({ "{") (if_statement "if (((&DAT_00164680)[bVar1] & 2) == 0) {\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }" (if "if") (parenthesized_expression "(((&DAT_00164680)[bVar1] & 2) == 0)" (( "(") (binary_expression "((&DAT_00164680)[bVar1] & 2) == 0" (parenthesized_expression "((&DAT_00164680)[bVar1] & 2)" (( "(") (binary_expression "(&DAT_00164680)[bVar1] & 2" (subscript_expression "(&DAT_00164680)[bVar1]" (parenthesized_expression "(&DAT_00164680)" (( "(") (pointer_expression "&DAT_00164680" (& "&") (identifier "DAT_00164680")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;\n        if (bVar1 == 0x40) goto LAB_001213a0;\n        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;\n        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;\n        FUN_0012c710(local_58);\n        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);\n        uVar8 = FUN_0012c7c0(local_58);\n        lVar10 = FUN_0011d830(param_4,uVar8);\n        if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }\n        goto LAB_00121040;\n      }" ({ "{") (labeled_statement "LAB_00121240:\n        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;" (statement_identifier "LAB_00121240") (: ":") (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;" (if "if") (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0))))" (( "(") (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))" (parenthesized_expression "(bVar1 == 0x22)" (( "(") (binary_expression "bVar1 == 0x22" (identifier "bVar1") (== "==") (number_literal "0x22")) () ")")) (|| "||") (parenthesized_expression "((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))" (( "(") (parenthesized_expression "(bVar1 == 0x27 && (DAT_0016d9e4 != 0))" (( "(") (binary_expression "bVar1 == 0x27 && (DAT_0016d9e4 != 0)" (binary_expression "bVar1 == 0x27" (identifier "bVar1") (== "==") (number_literal "0x27")) (&& "&&") (parenthesized_expression "(DAT_0016d9e4 != 0)" (( "(") (binary_expression "DAT_0016d9e4 != 0" (identifier "DAT_0016d9e4") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001212f0;" (goto "goto") (statement_identifier "LAB_001212f0") (; ";")))) (if_statement "if (bVar1 == 0x40) goto LAB_001213a0;" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_001213a0;" (goto "goto") (statement_identifier "LAB_001213a0") (; ";"))) (if_statement "if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;" (if "if") (parenthesized_expression "((bVar1 != 0x3d) || (DAT_0016d9e4 == 0))" (( "(") (binary_expression "(bVar1 != 0x3d) || (DAT_0016d9e4 == 0)" (parenthesized_expression "(bVar1 != 0x3d)" (( "(") (binary_expression "bVar1 != 0x3d" (identifier "bVar1") (!= "!=") (number_literal "0x3d")) () ")")) (|| "||") (parenthesized_expression "(DAT_0016d9e4 == 0)" (( "(") (binary_expression "DAT_0016d9e4 == 0" (identifier "DAT_0016d9e4") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00121096;" (goto "goto") (statement_identifier "LAB_00121096") (; ";"))) (if_statement "if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;" (if "if") (parenthesized_expression "((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '='))" (( "(") (binary_expression "(uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')" (parenthesized_expression "(uVar7 <= uVar13 + 1)" (( "(") (binary_expression "uVar7 <= uVar13 + 1" (identifier "uVar7") (<= "<=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(lVar10 + uVar13 + 1) != '=')" (( "(") (binary_expression "*(char *)(lVar10 + uVar13 + 1) != '='" (pointer_expression "*(char *)(lVar10 + uVar13 + 1)" (* "*") (cast_expression "(char *)(lVar10 + uVar13 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar13 + 1)" (( "(") (binary_expression "lVar10 + uVar13 + 1" (binary_expression "lVar10 + uVar13" (identifier "lVar10") (+ "+") (identifier "uVar13")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_001210a6;" (goto "goto") (statement_identifier "LAB_001210a6") (; ";"))) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);" (assignment_expression "uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58)" (identifier "uVar14") (= "=") (call_expression "FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58)" (identifier "FUN_00120d60") (argument_list "(uVar13 + 2,param_1,param_1 + 1,local_58)" (( "(") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2")) (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (identifier "local_58") () ")")))) (; ";")) (expression_statement "uVar8 = FUN_0012c7c0(local_58);" (assignment_expression "uVar8 = FUN_0012c7c0(local_58)" (identifier "uVar8") (= "=") (call_expression "FUN_0012c7c0(local_58)" (identifier "FUN_0012c7c0") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")")))) (; ";")) (expression_statement "lVar10 = FUN_0011d830(param_4,uVar8);" (assignment_expression "lVar10 = FUN_0011d830(param_4,uVar8)" (identifier "lVar10") (= "=") (call_expression "FUN_0011d830(param_4,uVar8)" (identifier "FUN_0011d830") (argument_list "(param_4,uVar8)" (( "(") (identifier "param_4") (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (lVar10 == 0) {\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }\n        else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c720(param_2,0x3d);\n          FUN_0012c670(param_2,local_58);\n          uVar7 = param_1[1];\n          plVar11 = (long *)0x0;\n        }" ({ "{") (expression_statement "FUN_0012c720(param_2,0x3d);" (call_expression "FUN_0012c720(param_2,0x3d)" (identifier "FUN_0012c720") (argument_list "(param_2,0x3d)" (( "(") (identifier "param_2") (, ",") (number_literal "0x3d") () ")"))) (; ";")) (expression_statement "FUN_0012c720(param_2,0x3d);" (call_expression "FUN_0012c720(param_2,0x3d)" (identifier "FUN_0012c720") (argument_list "(param_2,0x3d)" (( "(") (identifier "param_2") (, ",") (number_literal "0x3d") () ")"))) (; ";")) (expression_statement "FUN_0012c670(param_2,local_58);" (call_expression "FUN_0012c670(param_2,local_58)" (identifier "FUN_0012c670") (argument_list "(param_2,local_58)" (( "(") (identifier "param_2") (, ",") (identifier "local_58") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" (else "else") (if_statement "if (*(long *)(lVar10 + 0x40) == 0) {\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }\n        else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" (if "if") (parenthesized_expression "(*(long *)(lVar10 + 0x40) == 0)" (( "(") (binary_expression "*(long *)(lVar10 + 0x40) == 0" (pointer_expression "*(long *)(lVar10 + 0x40)" (* "*") (cast_expression "(long *)(lVar10 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x40)" (( "(") (binary_expression "lVar10 + 0x40" (identifier "lVar10") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c720(param_2,0x30);\n          uVar7 = param_1[1];\n        }" ({ "{") (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c720(param_2,0x30);" (call_expression "FUN_0012c720(param_2,0x30)" (identifier "FUN_0012c720") (argument_list "(param_2,0x30)" (( "(") (identifier "param_2") (, ",") (number_literal "0x30") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" (else "else") (compound_statement "{\n          plVar11 = (long *)0x0;\n          FUN_0012c750(param_2,&DAT_00148e9e);\n          uVar7 = param_1[1];\n        }" ({ "{") (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c750(param_2,&DAT_00148e9e);" (call_expression "FUN_0012c750(param_2,&DAT_00148e9e)" (identifier "FUN_0012c750") (argument_list "(param_2,&DAT_00148e9e)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_00148e9e" (& "&") (identifier "DAT_00148e9e")) () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))))) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (if_statement "if (!bVar5) {\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }" (if "if") (parenthesized_expression "(!bVar5)" (( "(") (unary_expression "!bVar5" (! "!") (identifier "bVar5")) () ")")) (compound_statement "{\n        if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }\nLAB_00121325:\n        uVar15 = 1;\n        uVar14 = uVar13;\n        goto LAB_0012120b;\n      }" ({ "{") (if_statement "if (param_5 == 0) {\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }\n        else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0012c710(local_58);\n          uVar8 = 0x27;\n        }" ({ "{") (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" (identifier "uVar8") (= "=") (number_literal "0x27")) (; ";")) (} "}")) (else_clause "else {\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" (else "else") (compound_statement "{\n          if (uVar13 + 5 < uVar7) goto LAB_00121348;\n          FUN_0012c710(local_58);\nLAB_0012131f:\n          uVar8 = 0x27;\n        }" ({ "{") (if_statement "if (uVar13 + 5 < uVar7) goto LAB_00121348;" (if "if") (parenthesized_expression "(uVar13 + 5 < uVar7)" (( "(") (binary_expression "uVar13 + 5 < uVar7" (binary_expression "uVar13 + 5" (identifier "uVar13") (+ "+") (number_literal "5")) (< "<") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_00121348;" (goto "goto") (statement_identifier "LAB_00121348") (; ";"))) (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (labeled_statement "LAB_0012131f:\n          uVar8 = 0x27;" (statement_identifier "LAB_0012131f") (: ":") (expression_statement "uVar8 = 0x27;" (assignment_expression "uVar8 = 0x27" (identifier "uVar8") (= "=") (number_literal "0x27")) (; ";"))) (} "}")))) (labeled_statement "LAB_00121325:\n        uVar15 = 1;" (statement_identifier "LAB_00121325") (: ":") (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" (identifier "uVar15") (= "=") (number_literal "1")) (; ";"))) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" (identifier "uVar14") (= "=") (identifier "uVar13")) (; ";")) (goto_statement "goto LAB_0012120b;" (goto "goto") (statement_identifier "LAB_0012120b") (; ";")) (} "}"))) (if_statement "if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))\n      goto LAB_00121240;" (if "if") (parenthesized_expression "((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))" (( "(") (binary_expression "(DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')))" (parenthesized_expression "(DAT_0016d9e0 != 0)" (( "(") (binary_expression "DAT_0016d9e0 != 0" (identifier "DAT_0016d9e0") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')))" (( "(") (parenthesized_expression "(uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))" (( "(") (binary_expression "uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@')" (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(char *)(lVar10 + -1 + uVar13) != '@')" (( "(") (binary_expression "*(char *)(lVar10 + -1 + uVar13) != '@'" (pointer_expression "*(char *)(lVar10 + -1 + uVar13)" (* "*") (cast_expression "(char *)(lVar10 + -1 + uVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + -1 + uVar13)" (( "(") (binary_expression "lVar10 + -1 + uVar13" (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar13")) () ")")))) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00121240;" (goto "goto") (statement_identifier "LAB_00121240") (; ";"))) (if_statement "if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }" (if "if") (parenthesized_expression "((param_5 == 0) || (uVar7 <= uVar13 + 5))" (( "(") (binary_expression "(param_5 == 0) || (uVar7 <= uVar13 + 5)" (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar7 <= uVar13 + 5)" (( "(") (binary_expression "uVar7 <= uVar13 + 5" (identifier "uVar7") (<= "<=") (binary_expression "uVar13 + 5" (identifier "uVar13") (+ "+") (number_literal "5"))) () ")"))) () ")")) (compound_statement "{\nLAB_00121161:\n        FUN_0012c710(local_58);\n        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;\nLAB_00121184:\n        uVar8 = 0x40;\n        goto LAB_00121325;\n      }" ({ "{") (labeled_statement "LAB_00121161:\n        FUN_0012c710(local_58);" (statement_identifier "LAB_00121161") (: ":") (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";"))) (if_statement "if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;" (if "if") (parenthesized_expression "((DAT_0016d9e0 == 0) || (!bVar5))" (( "(") (binary_expression "(DAT_0016d9e0 == 0) || (!bVar5)" (parenthesized_expression "(DAT_0016d9e0 == 0)" (( "(") (binary_expression "DAT_0016d9e0 == 0" (identifier "DAT_0016d9e0") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar5)" (( "(") (unary_expression "!bVar5" (! "!") (identifier "bVar5")) () ")"))) () ")")) (goto_statement "goto LAB_0012131f;" (goto "goto") (statement_identifier "LAB_0012131f") (; ";"))) (labeled_statement "LAB_00121184:\n        uVar8 = 0x40;" (statement_identifier "LAB_00121184") (: ":") (expression_statement "uVar8 = 0x40;" (assignment_expression "uVar8 = 0x40" (identifier "uVar8") (= "=") (number_literal "0x40")) (; ";"))) (goto_statement "goto LAB_00121325;" (goto "goto") (statement_identifier "LAB_00121325") (; ";")) (} "}"))) (labeled_statement "LAB_00121348:\n      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);" (statement_identifier "LAB_00121348") (: ":") (expression_statement "iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);" (assignment_expression "iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5)" (identifier "iVar6") (= "=") (call_expression "strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5)" (identifier "strncasecmp") (argument_list "((char *)(lVar10 + uVar13),"LOCAL",5)" (( "(") (cast_expression "(char *)(lVar10 + uVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar13)" (( "(") (binary_expression "lVar10 + uVar13" (identifier "lVar10") (+ "+") (identifier "uVar13")) () ")"))) (, ",") (string_literal ""LOCAL"" (" """) (string_content "LOCAL") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (if_statement "if ((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n      goto LAB_00121161;" (if "if") (parenthesized_expression "((iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))" (( "(") (binary_expression "(iVar6 != 0) ||\n         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (( "(") (parenthesized_expression "(cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))" (( "(") (comma_expression "cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t')" (assignment_expression "cVar2 = *(char *)(lVar10 + uVar13 + 5)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(lVar10 + uVar13 + 5)" (* "*") (cast_expression "(char *)(lVar10 + uVar13 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar13 + 5)" (( "(") (binary_expression "lVar10 + uVar13 + 5" (binary_expression "lVar10 + uVar13" (identifier "lVar10") (+ "+") (identifier "uVar13")) (+ "+") (number_literal "5")) () ")"))))) (, ",") (binary_expression "cVar2 != ' ' && (cVar2 != '\t')" (binary_expression "cVar2 != ' '" (identifier "cVar2") (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) (&& "&&") (parenthesized_expression "(cVar2 != '\t')" (( "(") (binary_expression "cVar2 != '\t'" (identifier "cVar2") (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00121161;" (goto "goto") (statement_identifier "LAB_00121161") (; ";"))) (if_statement "if (bVar5) {\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n        FUN_0012c710(local_58);\n        if (DAT_0016d9e0 == 0) goto LAB_0012131f;\n        goto LAB_00121184;\n      }" ({ "{") (expression_statement "FUN_0012c710(local_58);" (call_expression "FUN_0012c710(local_58)" (identifier "FUN_0012c710") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (if_statement "if (DAT_0016d9e0 == 0) goto LAB_0012131f;" (if "if") (parenthesized_expression "(DAT_0016d9e0 == 0)" (( "(") (binary_expression "DAT_0016d9e0 == 0" (identifier "DAT_0016d9e0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0012131f;" (goto "goto") (statement_identifier "LAB_0012131f") (; ";"))) (goto_statement "goto LAB_00121184;" (goto "goto") (statement_identifier "LAB_00121184") (; ";")) (} "}"))) (expression_statement "uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);" (assignment_expression "uVar14 = FUN_0012c7d0(uVar13 + 5,param_1)" (identifier "uVar14") (= "=") (call_expression "FUN_0012c7d0(uVar13 + 5,param_1)" (identifier "FUN_0012c7d0") (argument_list "(uVar13 + 5,param_1)" (( "(") (binary_expression "uVar13 + 5" (identifier "uVar13") (+ "+") (number_literal "5")) (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_80 = plVar9;" (assignment_expression "local_80 = plVar9" (identifier "local_80") (= "=") (identifier "plVar9")) (; ";")) (if_statement "if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;" (if "if") (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '\n')" (( "(") (binary_expression "*(char *)(*param_1 + uVar14) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar14)" (* "*") (cast_expression "(char *)(*param_1 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar14)" (( "(") (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar14")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (goto_statement "goto LAB_00121701;" (goto "goto") (statement_identifier "LAB_00121701") (; ";"))) (} "}")))) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" (identifier "uVar13") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "joined_r0x00121513:\n  if (cVar2 == ')') goto LAB_001215cd;" (statement_identifier "joined_r0x00121513") (: ":") (if_statement "if (cVar2 == ')') goto LAB_001215cd;" (if "if") (parenthesized_expression "(cVar2 == ')')" (( "(") (binary_expression "cVar2 == ')'" (identifier "cVar2") (== "==") (char_literal "')'" (' "'") (character ")") (' "'"))) () ")")) (goto_statement "goto LAB_001215cd;" (goto "goto") (statement_identifier "LAB_001215cd") (; ";")))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0012c720(param_2);" (call_expression "FUN_0012c720(param_2)" (identifier "FUN_0012c720") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar7 <= uVar14) goto LAB_00121548;" (if "if") (parenthesized_expression "(uVar7 <= uVar14)" (( "(") (binary_expression "uVar7 <= uVar14" (identifier "uVar7") (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_00121548;" (goto "goto") (statement_identifier "LAB_00121548") (; ";"))) (expression_statement "cVar2 = *(char *)(*param_1 + uVar14);" (assignment_expression "cVar2 = *(char *)(*param_1 + uVar14)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(*param_1 + uVar14)" (* "*") (cast_expression "(char *)(*param_1 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar14)" (( "(") (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar14")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x00121513;" (goto "goto") (statement_identifier "joined_r0x00121513") (; ";")) (labeled_statement "LAB_001215cd:\n  uVar14 = uVar14 + 1;" (statement_identifier "LAB_001215cd") (: ":") (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (labeled_statement "LAB_00121548:\n  if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" (statement_identifier "LAB_00121548") (: ":") (if_statement "if (param_5 == 0) {\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    plVar11 = (long *)dcgettext(0,"missing `)\'",5);\n    uVar7 = param_1[1];\n  }" ({ "{") (expression_statement "plVar11 = (long *)dcgettext(0,"missing `)\'",5);" (assignment_expression "plVar11 = (long *)dcgettext(0,"missing `)\'",5)" (identifier "plVar11") (= "=") (cast_expression "(long *)dcgettext(0,"missing `)\'",5)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"missing `)\'",5)" (identifier "dcgettext") (argument_list "(0,"missing `)\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""missing `)\'"" (" """) (string_content "missing `)") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" (else "else") (compound_statement "{\n    plVar11 = (long *)0x0;\n    uVar8 = dcgettext(0,"missing `)\'",5);\n    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);\n    uVar7 = param_1[1];\n  }" ({ "{") (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar8 = dcgettext(0,"missing `)\'",5);" (assignment_expression "uVar8 = dcgettext(0,"missing `)\'",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"missing `)\'",5)" (identifier "dcgettext") (argument_list "(0,"missing `)\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""missing `)\'"" (" """) (string_content "missing `)") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);" (call_expression "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8)" (identifier "FUN_00123ca0") (argument_list "(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8)" (( "(") (pointer_expression "*(undefined8 *)(param_5 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_5 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x38)" (( "(") (binary_expression "param_5 + 0x38" (identifier "param_5") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (binary_expression "local_9c + *(int *)(param_5 + 0x40)" (identifier "local_9c") (+ "+") (pointer_expression "*(int *)(param_5 + 0x40)" (* "*") (cast_expression "(int *)(param_5 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x40)" (( "(") (binary_expression "param_5 + 0x40" (identifier "param_5") (+ "+") (number_literal "0x40")) () ")"))))) (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))))) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (labeled_statement "joined_r0x00121481:\n  if (iVar12 + -1 == iVar6) goto LAB_001214a2;" (statement_identifier "joined_r0x00121481") (: ":") (if_statement "if (iVar12 + -1 == iVar6) goto LAB_001214a2;" (if "if") (parenthesized_expression "(iVar12 + -1 == iVar6)" (( "(") (binary_expression "iVar12 + -1 == iVar6" (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1")) (== "==") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_001214a2;" (goto "goto") (statement_identifier "LAB_001214a2") (; ";")))) (expression_statement "plVar11 = (long *)*plVar11;" (assignment_expression "plVar11 = (long *)*plVar11" (identifier "plVar11") (= "=") (cast_expression "(long *)*plVar11" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar11" (* "*") (identifier "plVar11")))) (; ";")) (if_statement "if (plVar11 == (long *)0x0) goto LAB_00121040;" (if "if") (parenthesized_expression "(plVar11 == (long *)0x0)" (( "(") (binary_expression "plVar11 == (long *)0x0" (identifier "plVar11") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";"))) (expression_statement "iVar6 = *(int *)(plVar11 + 10);" (assignment_expression "iVar6 = *(int *)(plVar11 + 10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(plVar11 + 10)" (* "*") (cast_expression "(int *)(plVar11 + 10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar11 + 10)" (( "(") (binary_expression "plVar11 + 10" (identifier "plVar11") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x00121481;" (goto "goto") (statement_identifier "joined_r0x00121481") (; ";")) (labeled_statement "LAB_001214a2:\n  if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" (statement_identifier "LAB_001214a2") (: ":") (if_statement "if (plVar11[8] == 0) {\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }\n  else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" (if "if") (parenthesized_expression "(plVar11[8] == 0)" (( "(") (binary_expression "plVar11[8] == 0" (subscript_expression "plVar11[8]" (identifier "plVar11") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    plVar4 = plVar11 + 4;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" ({ "{") (expression_statement "plVar4 = plVar11 + 4;" (assignment_expression "plVar4 = plVar11 + 4" (identifier "plVar4") (= "=") (binary_expression "plVar11 + 4" (identifier "plVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c670(param_2,plVar4);" (call_expression "FUN_0012c670(param_2,plVar4)" (identifier "FUN_0012c670") (argument_list "(param_2,plVar4)" (( "(") (identifier "param_2") (, ",") (identifier "plVar4") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" (else "else") (compound_statement "{\n    plVar4 = plVar11 + 7;\n    plVar11 = (long *)0x0;\n    FUN_0012c670(param_2,plVar4);\n    uVar7 = param_1[1];\n  }" ({ "{") (expression_statement "plVar4 = plVar11 + 7;" (assignment_expression "plVar4 = plVar11 + 7" (identifier "plVar4") (= "=") (binary_expression "plVar11 + 7" (identifier "plVar11") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0012c670(param_2,plVar4);" (call_expression "FUN_0012c670(param_2,plVar4)" (identifier "FUN_0012c670") (argument_list "(param_2,plVar4)" (( "(") (identifier "param_2") (, ",") (identifier "plVar4") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))))) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (labeled_statement "LAB_00121701:\n  do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');" (statement_identifier "LAB_00121701") (: ":") (do_statement "do {\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  } while (*(char *)(*param_1 + uVar14) != '\n');" (do "do") (compound_statement "{\n    plVar9 = (long *)FUN_00120ca0();\n    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);\n    uVar8 = FUN_0012c7c0(plVar9 + 1);\n    lVar10 = FUN_0011d830(param_4,uVar8);\n    if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }\n    uVar14 = FUN_0012c800(uVar14,param_1);\n  }" ({ "{") (expression_statement "plVar9 = (long *)FUN_00120ca0();" (assignment_expression "plVar9 = (long *)FUN_00120ca0()" (identifier "plVar9") (= "=") (cast_expression "(long *)FUN_00120ca0()" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00120ca0()" (identifier "FUN_00120ca0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);" (assignment_expression "uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1)" (identifier "uVar14") (= "=") (call_expression "FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1)" (identifier "FUN_00120d60") (argument_list "(uVar14,param_1,param_1 + 1,plVar9 + 1)" (( "(") (identifier "uVar14") (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (binary_expression "plVar9 + 1" (identifier "plVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar8 = FUN_0012c7c0(plVar9 + 1);" (assignment_expression "uVar8 = FUN_0012c7c0(plVar9 + 1)" (identifier "uVar8") (= "=") (call_expression "FUN_0012c7c0(plVar9 + 1)" (identifier "FUN_0012c7c0") (argument_list "(plVar9 + 1)" (( "(") (binary_expression "plVar9 + 1" (identifier "plVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar10 = FUN_0011d830(param_4,uVar8);" (assignment_expression "lVar10 = FUN_0011d830(param_4,uVar8)" (identifier "lVar10") (= "=") (call_expression "FUN_0011d830(param_4,uVar8)" (identifier "FUN_0011d830") (argument_list "(param_4,uVar8)" (( "(") (identifier "param_4") (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (lVar10 == 0) {\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }\n    else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;\n      *plVar9 = (long)local_80;\n      DAT_0016d9d0 = DAT_0016d9d0 + 1;\n      sprintf(local_78,".LL%04x");\n      FUN_0012c750(plVar9 + 7,local_78);\n      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);\n      local_80 = plVar9;\n      if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)(plVar9 + 10) = 0xfffffffd;" (assignment_expression "*(undefined4 *)(plVar9 + 10) = 0xfffffffd" (pointer_expression "*(undefined4 *)(plVar9 + 10)" (* "*") (cast_expression "(undefined4 *)(plVar9 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar9 + 10)" (( "(") (binary_expression "plVar9 + 10" (identifier "plVar9") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0xfffffffd")) (; ";")) (expression_statement "*plVar9 = (long)local_80;" (assignment_expression "*plVar9 = (long)local_80" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (cast_expression "(long)local_80" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_80"))) (; ";")) (expression_statement "DAT_0016d9d0 = DAT_0016d9d0 + 1;" (assignment_expression "DAT_0016d9d0 = DAT_0016d9d0 + 1" (identifier "DAT_0016d9d0") (= "=") (binary_expression "DAT_0016d9d0 + 1" (identifier "DAT_0016d9d0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sprintf(local_78,".LL%04x");" (call_expression "sprintf(local_78,".LL%04x")" (identifier "sprintf") (argument_list "(local_78,".LL%04x")" (( "(") (identifier "local_78") (, ",") (string_literal "".LL%04x"" (" """) (string_content ".LL%04x") (" """)) () ")"))) (; ";")) (expression_statement "FUN_0012c750(plVar9 + 7,local_78);" (call_expression "FUN_0012c750(plVar9 + 7,local_78)" (identifier "FUN_0012c750") (argument_list "(plVar9 + 7,local_78)" (( "(") (binary_expression "plVar9 + 7" (identifier "plVar9") (+ "+") (number_literal "7")) (, ",") (identifier "local_78") () ")"))) (; ";")) (expression_statement "plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);" (assignment_expression "plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9)" (identifier "plVar11") (= "=") (cast_expression "(long *)FUN_0011d6e0(param_4,uVar8,plVar9)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0011d6e0(param_4,uVar8,plVar9)" (identifier "FUN_0011d6e0") (argument_list "(param_4,uVar8,plVar9)" (( "(") (identifier "param_4") (, ",") (identifier "uVar8") (, ",") (identifier "plVar9") () ")"))))) (; ";")) (expression_statement "local_80 = plVar9;" (assignment_expression "local_80 = plVar9" (identifier "local_80") (= "=") (identifier "plVar9")) (; ";")) (if_statement "if (plVar11 != (long *)0x0) {\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" (if "if") (parenthesized_expression "(plVar11 != (long *)0x0)" (( "(") (binary_expression "plVar11 != (long *)0x0" (identifier "plVar11") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar7 = param_1[1];\n        goto LAB_00121040;\n      }" ({ "{") (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" (else "else") (compound_statement "{\n      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;\n      FUN_00120ce0(plVar9);\n    }" ({ "{") (expression_statement "uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" (identifier "dcgettext") (argument_list "(0,"`%s\' was already used as parameter (or another local) name",5)" (( "(") (number_literal "0") (, ",") (string_literal ""`%s\' was already used as parameter (or another local) name"" (" """) (string_content "`%s") (escape_sequence "\'") (string_content " was already used as parameter (or another local) name") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)\n      ;" (call_expression "FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)" (identifier "FUN_00123ca0") (argument_list "(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)" (( "(") (pointer_expression "*(undefined8 *)(param_5 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_5 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x38)" (( "(") (binary_expression "param_5 + 0x38" (identifier "param_5") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (binary_expression "local_9c + *(int *)(param_5 + 0x40)" (identifier "local_9c") (+ "+") (pointer_expression "*(int *)(param_5 + 0x40)" (* "*") (cast_expression "(int *)(param_5 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x40)" (( "(") (binary_expression "param_5 + 0x40" (identifier "param_5") (+ "+") (number_literal "0x40")) () ")"))))) (, ",") (identifier "uVar15") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "FUN_00120ce0(plVar9);" (call_expression "FUN_00120ce0(plVar9)" (identifier "FUN_00120ce0") (argument_list "(plVar9)" (( "(") (identifier "plVar9") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar14 = FUN_0012c800(uVar14,param_1);" (assignment_expression "uVar14 = FUN_0012c800(uVar14,param_1)" (identifier "uVar14") (= "=") (call_expression "FUN_0012c800(uVar14,param_1)" (identifier "FUN_0012c800") (argument_list "(uVar14,param_1)" (( "(") (identifier "uVar14") (, ",") (identifier "param_1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(char *)(*param_1 + uVar14) != '\n')" (( "(") (binary_expression "*(char *)(*param_1 + uVar14) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar14)" (* "*") (cast_expression "(char *)(*param_1 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar14)" (( "(") (binary_expression "*param_1 + uVar14" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar14")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (; ";"))) (expression_statement "uVar7 = param_1[1];" (assignment_expression "uVar7 = param_1[1]" (identifier "uVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar11 = (long *)0x0;" (assignment_expression "plVar11 = (long *)0x0" (identifier "plVar11") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar9 = local_80;" (assignment_expression "plVar9 = local_80" (identifier "plVar9") (= "=") (identifier "local_80")) (; ";")) (goto_statement "goto LAB_00121040;" (goto "goto") (statement_identifier "LAB_00121040") (; ";")) (} "}")))

char * function_1(type_1 *in,type_1 *out,type_2 *var_22,type_3 *formal_hash,
                        type_4 *var_31)

{
  type_1 *psVar1;
  type_5 var_11;
  char var_35;
  type_6 var_20;
  type_7 *var_7;
  bool var_24;
  int var_21;
  type_8 var_9;
  char *var_33;
  char *format;
  type_2 *var_4;
  void *var_29;
  type_7 *var_2;
  int var_38;
  type_8 var_10;
  type_8 var_14;
  int var_26;
  type_2 *local_80;
  char buffer [12];
  type_1 t;
  
  var_14 = 0;
  var_2 = (type_7 *)0x0;
  var_1(&t);
  var_9 = in->len;
  var_26 = 0;
  var_24 = false;
  var_4 = (type_2 *)0x0;
LAB_00121040:
  var_10 = var_14;
  if (var_2 != (type_7 *)0x0) {
LAB_001210c0:
    var_3(&t);
    while (var_4 != (type_2 *)0x0) {
      var_7 = var_4->next;
      var_33 = var_5(&var_4->name);
      var_6(formal_hash,var_33,(type_9)(var_7 == (type_7 *)0x0));
      var_8(var_4);
      var_4 = var_7;
    }
    return (char *)var_2;
  }
  do {
    if (var_9 <= var_10) goto LAB_001210c0;
    var_33 = in->ptr;
    var_11 = var_33[var_10];
    if (var_11 == 0x26) {
      var_14 = var_10 + 1;
      var_12(&t);
      if (var_13 == 0) {
        var_21 = 0x26;
        var_38 = 0;
      }
      else {
        if ((in->len <= var_14) || (in->ptr[var_14] != '&')) {
          var_2 = (type_7 *)0x0;
          var_15(out,(long)in->ptr[var_10]);
          var_9 = in->len;
          goto LAB_00121040;
        }
        var_14 = var_10 + 2;
        var_38 = 1;
        var_21 = 0x27;
      }
LAB_0012120b:
      var_14 = var_16(var_14,in,&t,formal_hash,var_21,out,var_38);
      var_2 = (type_7 *)0x0;
      var_9 = in->len;
      goto LAB_00121040;
    }
    if (var_11 == 0x5c) {
      var_14 = var_10 + 1;
      if (var_9 <= var_14) goto LAB_001211e1;
      var_11 = var_33[var_10 + 1];
      if (var_11 == 0x28) {
        var_14 = var_10 + 2;
        if (var_9 <= var_14) goto LAB_00121548;
        var_35 = var_33[var_14];
        break;
      }
      if (var_11 == 0x40) {
        var_14 = var_10 + 2;
        var_17(buffer,"%d",(type_8)(type_9)macro_number);
        var_2 = (type_7 *)0x0;
        var_18(out,buffer);
        var_9 = in->len;
        goto LAB_00121040;
      }
      if (var_11 == 0x26) {
        var_14 = var_10 + 2;
        var_15(out,0x5c);
        var_2 = (type_7 *)0x0;
        var_15(out,0x26);
        var_9 = in->len;
        goto LAB_00121040;
      }
      if (var_13 != 0) {
        var_21 = (int)(char)var_11;
        var_20 = *(type_6 *)(var_19 + (type_8)var_11 * 2);
        if ((var_20 & 0x8c) != 0) {
          var_38 = var_21 + -0x30;
          if ((var_20 & 4) == 0) {
            var_38 = var_21 + -0x57;
            if ((var_20 & 0x80) != 0) {
              var_38 = var_21 + -0x37;
            }
          }
          var_14 = var_10 + 2;
          if (var_22 == (type_2 *)0x0) goto LAB_001213b6;
          var_21 = var_22->index;
          var_2 = var_22;
          goto joined_r0x00121481;
        }
      }
LAB_001211e1:
      var_12(&t);
      var_38 = 0;
      var_21 = 0x27;
      goto LAB_0012120b;
    }
    if (var_13 == 0 && var_23 == 0) {
      if (var_11 == 0x22) {
LAB_001212f0:
        var_24 = (bool)(var_24 ^ 1);
      }
      else if (var_11 == 0x40) {
LAB_001213a0:
        var_14 = var_10 + 1;
        if (var_25 != 0) {
          if ((var_14 < var_9) && (var_33[var_14] == '@')) {
            var_14 = var_10 + 2;
            var_2 = (type_7 *)0x0;
            var_15(out,0x40);
            var_9 = in->len;
          }
          else {
LAB_001213b6:
            var_2 = (type_7 *)0x0;
          }
          goto LAB_00121040;
        }
      }
      else {
LAB_00121096:
        var_26 = var_26 + (type_9)(var_11 == 10);
      }
LAB_001210a6:
      var_14 = var_10 + 1;
      var_15(out,(long)(char)var_11);
    }
    else {
      if ((lex_type[var_11] & 2) == 0) {
LAB_00121240:
        if ((var_11 == 0x22) || ((var_11 == 0x27 && (var_13 != 0)))) goto LAB_001212f0;
        if (var_11 == 0x40) goto LAB_001213a0;
        if ((var_11 != 0x3d) || (var_13 == 0)) goto LAB_00121096;
        if ((var_9 <= var_10 + 1) || (var_33[var_10 + 1] != '=')) goto LAB_001210a6;
        var_12(&t);
        var_14 = var_27(var_10 + 2,in,(type_1 *)&in->len,&t);
        var_33 = var_5(&t);
        var_29 = var_28(formal_hash,var_33);
        if (var_29 == (void *)0x0) {
          var_15(out,0x3d);
          var_15(out,0x3d);
          var_30(out,&t);
          var_9 = in->len;
          var_2 = (type_7 *)0x0;
        }
        else if (*(long *)((long)var_29 + 0x40) == 0) {
          var_2 = (type_7 *)0x0;
          var_15(out,0x30);
          var_9 = in->len;
        }
        else {
          var_2 = (type_7 *)0x0;
          var_18(out,"-1");
          var_9 = in->len;
        }
        goto LAB_00121040;
      }
      if (!var_24) {
        if (var_31 == (type_4 *)0x0) {
          var_12(&t);
          var_21 = 0x27;
        }
        else {
          if (var_10 + 5 < var_9) goto LAB_00121348;
          var_12(&t);
LAB_0012131f:
          var_21 = 0x27;
        }
LAB_00121325:
        var_38 = 1;
        var_14 = var_10;
        goto LAB_0012120b;
      }
      if ((var_25 != 0) && ((var_10 == 0 || (var_33[var_10 - 1] != '@'))))
      goto LAB_00121240;
      if ((var_31 == (type_4 *)0x0) || (var_9 <= var_10 + 5)) {
LAB_00121161:
        var_12(&t);
        if ((var_25 == 0) || (!var_24)) goto LAB_0012131f;
LAB_00121184:
        var_21 = 0x40;
        goto LAB_00121325;
      }
LAB_00121348:
      var_21 = var_32(var_33 + var_10,"LOCAL",5);
      if ((var_21 != 0) || ((var_33[var_10 + 5] != ' ' && (var_33[var_10 + 5] != '\t'))))
      goto LAB_00121161;
      if (var_24) {
        var_12(&t);
        if (var_25 == 0) goto LAB_0012131f;
        goto LAB_00121184;
      }
      var_14 = var_34(var_10 + 5,in);
      local_80 = var_4;
      if (in->ptr[var_14] != '\n') goto LAB_00121701;
    }
    var_2 = (type_7 *)0x0;
    var_9 = in->len;
    var_10 = var_14;
  } while( true );
joined_r0x00121513:
  if (var_35 == ')') goto LAB_001215cd;
  var_14 = var_14 + 1;
  var_15(out,(long)var_35);
  var_9 = in->len;
  if (var_9 <= var_14) goto LAB_00121548;
  var_35 = in->ptr[var_14];
  goto joined_r0x00121513;
LAB_001215cd:
  var_14 = var_14 + 1;
  var_2 = (type_7 *)0x0;
  goto LAB_00121040;
LAB_00121548:
  if (var_31 == (type_4 *)0x0) {
    var_2 = (type_7 *)var_36(0,"missing `)\'",5);
    var_9 = in->len;
  }
  else {
    var_2 = (type_7 *)0x0;
    var_33 = (char *)var_36(0,"missing `)\'",5);
    var_37(var_31->file,var_26 + var_31->line,var_33);
    var_9 = in->len;
  }
  goto LAB_00121040;
joined_r0x00121481:
  if (var_38 + -1 == var_21) goto LAB_001214a2;
  var_2 = var_2->next;
  if (var_2 == (type_7 *)0x0) goto LAB_00121040;
  var_21 = var_2->index;
  goto joined_r0x00121481;
LAB_001214a2:
  if ((var_2->actual).len == 0) {
    psVar1 = &var_2->def;
    var_2 = (type_7 *)0x0;
    var_30(out,psVar1);
    var_9 = in->len;
  }
  else {
    psVar1 = &var_2->actual;
    var_2 = (type_7 *)0x0;
    var_30(out,psVar1);
    var_9 = in->len;
  }
  goto LAB_00121040;
LAB_00121701:
  do {
    var_4 = var_39();
    var_14 = var_27(var_14,in,(type_1 *)&in->len,&var_4->name);
    var_33 = var_5(&var_4->name);
    var_29 = var_28(formal_hash,var_33);
    if (var_29 == (void *)0x0) {
      var_4->index = -3;
      var_4->next = local_80;
      macro_expand_body::lexical_block_13::lexical_block_13_2::var_40 =
           function_1::lexical_block_13::lexical_block_13_2::var_40 + 1;
      var_17(buffer,".LL%04x");
      var_18(&var_4->actual,buffer);
      var_2 = (type_7 *)var_41(formal_hash,var_33,var_4);
      local_80 = var_4;
      if (var_2 != (type_7 *)0x0) {
        var_9 = in->len;
        goto LAB_00121040;
      }
    }
    else {
      format = (char *)var_36(0,"`%s\' was already used as parameter (or another local) name",5);
      var_37(var_31->file,var_26 + var_31->line,format,var_33);
      var_8(var_4);
    }
    var_14 = var_42(var_14,in);
  } while (in->ptr[var_14] != '\n');
  var_9 = in->len;
  var_2 = (type_7 *)0x0;
  var_4 = local_80;
  goto LAB_00121040;
}


(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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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 (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (while_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)))) body: (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: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (return_statement (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) 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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (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: (pointer_expression argument: (identifier)) right: (identifier))))) right: (char_literal (character)))))) consequence: (compound_statement (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (break_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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: (identifier) right: (identifier))))) right: (char_literal (character)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (char_literal (character)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)) (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) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) 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: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (char_literal (character))))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (string_literal (string_content)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (char_literal (character))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (true))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) 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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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 (identifier) (identifier) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (char_literal (escape_sequence)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))) (goto_statement label: (statement_identifier)))))

long MASKED(long *param_1,undefined8 param_2,long *param_3,undefined8 param_4,long param_5)

{
  byte bVar1;
  char cVar2;
  ushort uVar3;
  long *plVar4;
  bool bVar5;
  int iVar6;
  ulong uVar7;
  undefined8 uVar8;
  long *plVar9;
  long lVar10;
  long *plVar11;
  int iVar12;
  ulong uVar13;
  ulong uVar14;
  undefined8 uVar15;
  int local_9c;
  long *local_80;
  char local_78 [32];
  undefined1 local_58 [40];
  
  uVar14 = 0;
  plVar11 = (long *)0x0;
  FUN_0012c630(local_58);
  uVar7 = param_1[1];
  local_9c = 0;
  bVar5 = false;
  plVar9 = (long *)0x0;
LAB_00121040:
  uVar13 = uVar14;
  if (plVar11 != (long *)0x0) {
LAB_001210c0:
    FUN_0012c660(local_58);
    while (plVar9 != (long *)0x0) {
      plVar4 = (long *)*plVar9;
      uVar8 = FUN_0012c7c0(plVar9 + 1);
      FUN_0011d8a0(param_4,uVar8,plVar4 == (long *)0x0);
      FUN_00120ce0(plVar9);
      plVar9 = plVar4;
    }
    return (long)plVar11;
  }
  do {
    if (uVar7 <= uVar13) goto LAB_001210c0;
    lVar10 = *param_1;
    bVar1 = *(byte *)(lVar10 + uVar13);
    if (bVar1 == 0x26) {
      uVar14 = uVar13 + 1;
      FUN_0012c710(local_58);
      if (DAT_0016d9e4 == 0) {
        uVar8 = 0x26;
        uVar15 = 0;
      }
      else {
        if (((ulong)param_1[1] <= uVar14) || (*(char *)(*param_1 + uVar14) != '&')) {
          plVar11 = (long *)0x0;
          FUN_0012c720(param_2,(long)*(char *)(*param_1 + uVar13));
          uVar7 = param_1[1];
          goto LAB_00121040;
        }
        uVar14 = uVar13 + 2;
        uVar15 = 1;
        uVar8 = 0x27;
      }
LAB_0012120b:
      uVar14 = FUN_00120e40(uVar14,param_1,local_58,param_4,uVar8,param_2,uVar15);
      plVar11 = (long *)0x0;
      uVar7 = param_1[1];
      goto LAB_00121040;
    }
    if (bVar1 == 0x5c) {
      uVar14 = uVar13 + 1;
      if (uVar7 <= uVar14) goto LAB_001211e1;
      bVar1 = *(byte *)(lVar10 + 1 + uVar13);
      if (bVar1 == 0x28) {
        uVar14 = uVar13 + 2;
        if (uVar7 <= uVar14) goto LAB_00121548;
        cVar2 = *(char *)(lVar10 + uVar14);
        break;
      }
      if (bVar1 == 0x40) {
        uVar14 = uVar13 + 2;
        sprintf(local_78,"%d",(ulong)DAT_0016d9d4);
        plVar11 = (long *)0x0;
        FUN_0012c750(param_2,local_78);
        uVar7 = param_1[1];
        goto LAB_00121040;
      }
      if (bVar1 == 0x26) {
        uVar14 = uVar13 + 2;
        FUN_0012c720(param_2,0x5c);
        plVar11 = (long *)0x0;
        FUN_0012c720(param_2,0x26);
        uVar7 = param_1[1];
        goto LAB_00121040;
      }
      if (DAT_0016d9e4 != 0) {
        iVar6 = (int)(char)bVar1;
        uVar3 = *(ushort *)(_sch_istable + (ulong)bVar1 * 2);
        if ((uVar3 & 0x8c) != 0) {
          iVar12 = iVar6 + -0x30;
          if ((uVar3 & 4) == 0) {
            iVar12 = iVar6 + -0x57;
            if ((uVar3 & 0x80) != 0) {
              iVar12 = iVar6 + -0x37;
            }
          }
          uVar14 = uVar13 + 2;
          if (param_3 == (long *)0x0) goto LAB_001213b6;
          iVar6 = (int)param_3[10];
          plVar11 = param_3;
          goto joined_r0x00121481;
        }
      }
LAB_001211e1:
      FUN_0012c710(local_58);
      uVar15 = 0;
      uVar8 = 0x27;
      goto LAB_0012120b;
    }
    if (DAT_0016d9e4 == 0 && DAT_0016d9e8 == 0) {
      if (bVar1 == 0x22) {
LAB_001212f0:
        bVar5 = (bool)(bVar5 ^ 1);
      }
      else if (bVar1 == 0x40) {
LAB_001213a0:
        uVar14 = uVar13 + 1;
        if (DAT_0016d9e0 != 0) {
          if ((uVar14 < uVar7) && (*(char *)(lVar10 + uVar14) == '@')) {
            uVar14 = uVar13 + 2;
            plVar11 = (long *)0x0;
            FUN_0012c720(param_2,0x40);
            uVar7 = param_1[1];
          }
          else {
LAB_001213b6:
            plVar11 = (long *)0x0;
          }
          goto LAB_00121040;
        }
      }
      else {
LAB_00121096:
        local_9c = local_9c + (uint)(bVar1 == 10);
      }
LAB_001210a6:
      uVar14 = uVar13 + 1;
      FUN_0012c720(param_2,(long)(char)bVar1);
    }
    else {
      if (((&DAT_00164680)[bVar1] & 2) == 0) {
LAB_00121240:
        if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_0016d9e4 != 0)))) goto LAB_001212f0;
        if (bVar1 == 0x40) goto LAB_001213a0;
        if ((bVar1 != 0x3d) || (DAT_0016d9e4 == 0)) goto LAB_00121096;
        if ((uVar7 <= uVar13 + 1) || (*(char *)(lVar10 + uVar13 + 1) != '=')) goto LAB_001210a6;
        FUN_0012c710(local_58);
        uVar14 = FUN_00120d60(uVar13 + 2,param_1,param_1 + 1,local_58);
        uVar8 = FUN_0012c7c0(local_58);
        lVar10 = FUN_0011d830(param_4,uVar8);
        if (lVar10 == 0) {
          FUN_0012c720(param_2,0x3d);
          FUN_0012c720(param_2,0x3d);
          FUN_0012c670(param_2,local_58);
          uVar7 = param_1[1];
          plVar11 = (long *)0x0;
        }
        else if (*(long *)(lVar10 + 0x40) == 0) {
          plVar11 = (long *)0x0;
          FUN_0012c720(param_2,0x30);
          uVar7 = param_1[1];
        }
        else {
          plVar11 = (long *)0x0;
          FUN_0012c750(param_2,&DAT_00148e9e);
          uVar7 = param_1[1];
        }
        goto LAB_00121040;
      }
      if (!bVar5) {
        if (param_5 == 0) {
          FUN_0012c710(local_58);
          uVar8 = 0x27;
        }
        else {
          if (uVar13 + 5 < uVar7) goto LAB_00121348;
          FUN_0012c710(local_58);
LAB_0012131f:
          uVar8 = 0x27;
        }
LAB_00121325:
        uVar15 = 1;
        uVar14 = uVar13;
        goto LAB_0012120b;
      }
      if ((DAT_0016d9e0 != 0) && ((uVar13 == 0 || (*(char *)(lVar10 + -1 + uVar13) != '@'))))
      goto LAB_00121240;
      if ((param_5 == 0) || (uVar7 <= uVar13 + 5)) {
LAB_00121161:
        FUN_0012c710(local_58);
        if ((DAT_0016d9e0 == 0) || (!bVar5)) goto LAB_0012131f;
LAB_00121184:
        uVar8 = 0x40;
        goto LAB_00121325;
      }
LAB_00121348:
      iVar6 = strncasecmp((char *)(lVar10 + uVar13),"LOCAL",5);
      if ((iVar6 != 0) ||
         ((cVar2 = *(char *)(lVar10 + uVar13 + 5), cVar2 != ' ' && (cVar2 != '\t'))))
      goto LAB_00121161;
      if (bVar5) {
        FUN_0012c710(local_58);
        if (DAT_0016d9e0 == 0) goto LAB_0012131f;
        goto LAB_00121184;
      }
      uVar14 = FUN_0012c7d0(uVar13 + 5,param_1);
      local_80 = plVar9;
      if (*(char *)(*param_1 + uVar14) != '\n') goto LAB_00121701;
    }
    plVar11 = (long *)0x0;
    uVar7 = param_1[1];
    uVar13 = uVar14;
  } while( true );
joined_r0x00121513:
  if (cVar2 == ')') goto LAB_001215cd;
  uVar14 = uVar14 + 1;
  FUN_0012c720(param_2);
  uVar7 = param_1[1];
  if (uVar7 <= uVar14) goto LAB_00121548;
  cVar2 = *(char *)(*param_1 + uVar14);
  goto joined_r0x00121513;
LAB_001215cd:
  uVar14 = uVar14 + 1;
  plVar11 = (long *)0x0;
  goto LAB_00121040;
LAB_00121548:
  if (param_5 == 0) {
    plVar11 = (long *)dcgettext(0,"missing `)\'",5);
    uVar7 = param_1[1];
  }
  else {
    plVar11 = (long *)0x0;
    uVar8 = dcgettext(0,"missing `)\'",5);
    FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar8);
    uVar7 = param_1[1];
  }
  goto LAB_00121040;
joined_r0x00121481:
  if (iVar12 + -1 == iVar6) goto LAB_001214a2;
  plVar11 = (long *)*plVar11;
  if (plVar11 == (long *)0x0) goto LAB_00121040;
  iVar6 = *(int *)(plVar11 + 10);
  goto joined_r0x00121481;
LAB_001214a2:
  if (plVar11[8] == 0) {
    plVar4 = plVar11 + 4;
    plVar11 = (long *)0x0;
    FUN_0012c670(param_2,plVar4);
    uVar7 = param_1[1];
  }
  else {
    plVar4 = plVar11 + 7;
    plVar11 = (long *)0x0;
    FUN_0012c670(param_2,plVar4);
    uVar7 = param_1[1];
  }
  goto LAB_00121040;
LAB_00121701:
  do {
    plVar9 = (long *)FUN_00120ca0();
    uVar14 = FUN_00120d60(uVar14,param_1,param_1 + 1,plVar9 + 1);
    uVar8 = FUN_0012c7c0(plVar9 + 1);
    lVar10 = FUN_0011d830(param_4,uVar8);
    if (lVar10 == 0) {
      *(undefined4 *)(plVar9 + 10) = 0xfffffffd;
      *plVar9 = (long)local_80;
      DAT_0016d9d0 = DAT_0016d9d0 + 1;
      sprintf(local_78,".LL%04x");
      FUN_0012c750(plVar9 + 7,local_78);
      plVar11 = (long *)FUN_0011d6e0(param_4,uVar8,plVar9);
      local_80 = plVar9;
      if (plVar11 != (long *)0x0) {
        uVar7 = param_1[1];
        goto LAB_00121040;
      }
    }
    else {
      uVar15 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);
      FUN_00123ca0(*(undefined8 *)(param_5 + 0x38),local_9c + *(int *)(param_5 + 0x40),uVar15,uVar8)
      ;
      FUN_00120ce0(plVar9);
    }
    uVar14 = FUN_0012c800(uVar14,param_1);
  } while (*(char *)(*param_1 + uVar14) != '\n');
  uVar7 = param_1[1];
  plVar11 = (long *)0x0;
  plVar9 = local_80;
  goto LAB_00121040;
}

