
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x0002901b) */

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

{
  byte bVar1;
  char cVar2;
  ushort uVar3;
  formal_struct *pfVar4;
  bool bVar5;
  undefined *puVar6;
  char *pcVar7;
  int iVar8;
  formal_entry *formal;
  void *pvVar9;
  int iVar10;
  size_t start;
  size_t start_00;
  char *pcVar11;
  uint local_6c;
  int local_50;
  formal_entry *local_4c;
  sb t;
  char buffer [12];
  
  start = 0;
  pcVar11 = (char *)0x0;
  sb_new(&t);
  puVar6 = PTR__sch_istable_0007ff74;
  local_6c = in->len;
  local_50 = 0;
  bVar5 = false;
  local_4c = (formal_entry *)0x0;
LAB_00028f98:
  start_00 = start;
  if (pcVar11 != (char *)0x0) {
LAB_00029020:
    sb_kill(&t);
    while (local_4c != (formal_entry *)0x0) {
      pfVar4 = local_4c->next;
      pcVar7 = sb_terminate(&local_4c->name);
      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));
      del_formal(local_4c);
      local_4c = pfVar4;
    }
    return pcVar11;
  }
LAB_00028fa0:
  if (local_6c <= start_00) goto LAB_00029020;
  pcVar11 = in->ptr;
  bVar1 = pcVar11[start_00];
  if (bVar1 == 0x26) {
    start = start_00 + 1;
    sb_reset(&t);
    if (macro_mri == 0) {
      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);
      local_6c = in->len;
      pcVar11 = (char *)0x0;
      goto LAB_00028f98;
    }
    if (start < in->len) {
      pcVar7 = in->ptr;
      if (pcVar7[start] == '&') {
        pcVar11 = (char *)0x0;
        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);
        local_6c = in->len;
        goto LAB_00028f98;
      }
    }
    else {
      pcVar7 = in->ptr;
    }
    pcVar11 = (char *)0x0;
    sb_add_char(out,(int)pcVar7[start_00]);
    local_6c = in->len;
    goto LAB_00028f98;
  }
  if (bVar1 == 0x5c) {
    if (local_6c <= start_00 + 1) goto LAB_0002913d;
    bVar1 = pcVar11[start_00 + 1];
    if (bVar1 == 0x28) {
      start = start_00 + 2;
      if (start < local_6c) {
        cVar2 = pcVar11[start];
        while( true ) {
          if (cVar2 == ')') {
            start = start + 1;
            pcVar11 = (char *)0x0;
            goto LAB_00028f98;
          }
          start = start + 1;
          sb_add_char(out,(int)cVar2);
          local_6c = in->len;
          if (local_6c <= start) break;
          cVar2 = in->ptr[start];
        }
      }
      if (macro == (macro_entry *)0x0) {
        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);
        local_6c = in->len;
        goto LAB_00028f98;
      }
      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);
      as_bad_where(macro->file,local_50 + macro->line,pcVar11);
    }
    else if (bVar1 == 0x40) {
      start = start_00 + 2;
      pcVar11 = buffer;
      sprintf(pcVar11,"%d",macro_number);
LAB_000293b0:
      sb_add_string(out,pcVar11);
    }
    else {
      if (bVar1 != 0x26) {
        if (macro_mri != 0) {
          iVar8 = (int)(char)bVar1;
          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);
          if ((uVar3 & 0x8c) != 0) {
            if ((uVar3 & 4) == 0) {
              iVar10 = iVar8 + -0x57;
              if ((uVar3 & 0x80) != 0) {
                iVar10 = iVar8 + -0x37;
              }
            }
            else {
              iVar10 = iVar8 + -0x30;
            }
            start = start_00 + 2;
            if (formals != (formal_entry *)0x0) {
              iVar8 = formals->index;
              pfVar4 = formals;
              while (iVar10 + -1 != iVar8) {
                pfVar4 = pfVar4->next;
                if (pfVar4 == (formal_struct *)0x0) {
                  pcVar11 = (char *)0x0;
                  goto LAB_00028f98;
                }
                iVar8 = pfVar4->index;
              }
              if ((pfVar4->actual).len == 0) {
                sb_add_sb(out,&pfVar4->def);
              }
              else {
                sb_add_sb(out,&pfVar4->actual);
              }
              goto LAB_00029007;
            }
LAB_0002933f:
            pcVar11 = (char *)0x0;
            goto LAB_00028f98;
          }
        }
LAB_0002913d:
        sb_reset(&t);
        pcVar11 = (char *)0x0;
        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);
        local_6c = in->len;
        goto LAB_00028f98;
      }
      start = start_00 + 2;
      sb_add_char(out,0x5c);
      sb_add_char(out,0x26);
    }
  }
  else {
    if (macro_mri == 0 && macro_alternate == 0) {
      if (bVar1 == 0x22) {
LAB_00029258:
        bVar5 = (bool)(bVar5 ^ 1);
      }
      else if (bVar1 == 0x40) {
LAB_00029320:
        start = start_00 + 1;
        if (macro_strip_at != 0) {
          if ((start < local_6c) && (pcVar11[start] == '@')) {
            start = start_00 + 2;
            sb_add_char(out,0x40);
            goto LAB_00029007;
          }
          goto LAB_0002933f;
        }
      }
      else {
LAB_00028fea:
        local_50 = local_50 + (uint)(bVar1 == 10);
      }
    }
    else {
      if ((lex_type[bVar1] & 2) != 0) {
        if (bVar5) {
          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))
          goto LAB_00029190;
          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {
LAB_000290bf:
            sb_reset(&t);
            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;
          }
          else {
LAB_000292c0:
            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);
            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))
            goto LAB_000290bf;
            if (!bVar5) {
              start = sb_skip_white(start_00 + 5,in);
              if (in->ptr[start] == '\n') goto LAB_00029749;
              goto LAB_000296a9;
            }
            sb_reset(&t);
            if (macro_strip_at == 0) goto LAB_0002928b;
          }
          iVar8 = 0x40;
        }
        else if (macro == (macro_entry *)0x0) {
          sb_reset(&t);
          iVar8 = 0x27;
        }
        else {
          if (start_00 + 5 < local_6c) goto LAB_000292c0;
          sb_reset(&t);
LAB_0002928b:
          iVar8 = 0x27;
        }
        pcVar11 = (char *)0x0;
        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);
        local_6c = in->len;
        goto LAB_00028f98;
      }
LAB_00029190:
      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;
      if (bVar1 == 0x40) goto LAB_00029320;
      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;
      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {
        sb_reset(&t);
        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);
        pcVar11 = sb_terminate(&t);
        pvVar9 = hash_find(formal_hash,pcVar11);
        if (pvVar9 != (void *)0x0) {
          if (*(int *)((int)pvVar9 + 0x20) != 0) {
            pcVar11 = "-1";
            goto LAB_000293b0;
          }
          sb_add_char(out,0x30);
          goto LAB_00029007;
        }
        sb_add_char(out,0x3d);
        sb_add_char(out,0x3d);
        sb_add_sb(out,&t);
        local_6c = in->len;
        pcVar11 = (char *)0x0;
        goto LAB_00028f98;
      }
    }
    start = start_00 + 1;
    sb_add_char(out,(int)(char)bVar1);
  }
LAB_00029007:
  pcVar11 = (char *)0x0;
  local_6c = in->len;
  start_00 = start;
  goto LAB_00028fa0;
LAB_000296a9:
  do {
    formal = new_formal();
    start = get_token(start,in,(sb *)&in->len,&formal->name);
    pcVar11 = sb_terminate(&formal->name);
    pvVar9 = hash_find(formal_hash,pcVar11);
    if (pvVar9 == (void *)0x0) {
      formal->index = -3;
      formal->next = local_4c;
      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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);
      sb_add_string(&formal->actual,buffer);
      pcVar11 = hash_jam(formal_hash,pcVar11,formal);
      local_4c = formal;
      if (pcVar11 != (char *)0x0) {
        local_6c = in->len;
        goto LAB_00028f98;
      }
    }
    else {
      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);
      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);
      del_formal(formal);
    }
    start = sb_skip_comma(start,in);
  } while (in->ptr[start] != '\n');
LAB_00029749:
  pcVar11 = (char *)0x0;
  local_6c = in->len;
  goto LAB_00028f98;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x0002901b) */

int __regparm3
FUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)

{
  byte bVar1;
  char cVar2;
  ushort uVar3;
  bool bVar4;
  undefined *puVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 uVar8;
  int *piVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  char *__s;
  uint uVar13;
  int *piVar14;
  int local_50;
  int *local_4c;
  undefined1 local_3c [12];
  char local_30 [28];
  undefined4 uStack_14;
  
  uVar10 = 0;
  iVar12 = 0;
  uStack_14 = 0x28f3f;
  FUN_00035790(local_3c);
  puVar5 = PTR__sch_istable_0007ff74;
  uVar13 = param_1[1];
  local_50 = 0;
  bVar4 = false;
  local_4c = (int *)0x0;
LAB_00028f98:
  uVar11 = uVar10;
  if (iVar12 != 0) {
LAB_00029020:
    FUN_000357d0(local_3c);
    while (local_4c != (int *)0x0) {
      piVar14 = local_4c + 1;
      local_4c = (int *)*local_4c;
      uVar6 = FUN_00035970(piVar14);
      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);
      FUN_00028bf0();
    }
    return iVar12;
  }
LAB_00028fa0:
  if (uVar13 <= uVar11) goto LAB_00029020;
  iVar12 = *param_1;
  bVar1 = *(byte *)(iVar12 + uVar11);
  if (bVar1 == 0x26) {
    uVar10 = uVar11 + 1;
    FUN_000358a0(local_3c);
    if (DAT_00088c08 == 0) {
      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);
      uVar13 = param_1[1];
      iVar12 = 0;
      goto LAB_00028f98;
    }
    if (uVar10 < (uint)param_1[1]) {
      iVar7 = *param_1;
      if (*(char *)(iVar7 + uVar10) == '&') {
        iVar12 = 0;
        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
    }
    else {
      iVar7 = *param_1;
    }
    iVar12 = 0;
    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));
    uVar13 = param_1[1];
    goto LAB_00028f98;
  }
  if (bVar1 == 0x5c) {
    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;
    bVar1 = *(byte *)(iVar12 + 1 + uVar11);
    if (bVar1 == 0x28) {
      uVar10 = uVar11 + 2;
      if (uVar10 < uVar13) {
        cVar2 = *(char *)(iVar12 + uVar10);
        while( true ) {
          if (cVar2 == ')') {
            uVar10 = uVar10 + 1;
            iVar12 = 0;
            goto LAB_00028f98;
          }
          uVar10 = uVar10 + 1;
          FUN_000358b0(param_2,(int)cVar2);
          uVar13 = param_1[1];
          if (uVar13 <= uVar10) break;
          cVar2 = *(char *)(*param_1 + uVar10);
        }
      }
      if (param_5 == 0) {
        iVar12 = dcgettext(0,"missing `)\'",5);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
      uVar6 = dcgettext(0,"missing `)\'",5);
      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);
    }
    else if (bVar1 == 0x40) {
      uVar10 = uVar11 + 2;
      __s = local_30;
      sprintf(__s,"%d",DAT_00088bfc);
LAB_000293b0:
      FUN_000358e0(param_2,__s);
    }
    else {
      if (bVar1 != 0x26) {
        if (DAT_00088c08 != 0) {
          iVar12 = (int)(char)bVar1;
          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);
          if ((uVar3 & 0x8c) != 0) {
            if ((uVar3 & 4) == 0) {
              iVar7 = iVar12 + -0x57;
              if ((uVar3 & 0x80) != 0) {
                iVar7 = iVar12 + -0x37;
              }
            }
            else {
              iVar7 = iVar12 + -0x30;
            }
            uVar10 = uVar11 + 2;
            if (param_3 != (int *)0x0) {
              iVar12 = param_3[10];
              piVar14 = param_3;
              while (iVar7 + -1 != iVar12) {
                piVar14 = (int *)*piVar14;
                if (piVar14 == (int *)0x0) {
                  iVar12 = 0;
                  goto LAB_00028f98;
                }
                iVar12 = piVar14[10];
              }
              if (piVar14[8] == 0) {
                FUN_000357f0(param_2,piVar14 + 4);
              }
              else {
                FUN_000357f0(param_2,piVar14 + 7);
              }
              goto LAB_00029007;
            }
LAB_0002933f:
            iVar12 = 0;
            goto LAB_00028f98;
          }
        }
LAB_0002913d:
        FUN_000358a0(local_3c);
        iVar12 = 0;
        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
      uVar10 = uVar11 + 2;
      FUN_000358b0(param_2,0x5c);
      FUN_000358b0(param_2,0x26);
    }
  }
  else {
    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {
      if (bVar1 == 0x22) {
LAB_00029258:
        bVar4 = (bool)(bVar4 ^ 1);
      }
      else if (bVar1 == 0x40) {
LAB_00029320:
        uVar10 = uVar11 + 1;
        if (DAT_00088c04 != 0) {
          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {
            uVar10 = uVar11 + 2;
            FUN_000358b0(param_2,0x40);
            goto LAB_00029007;
          }
          goto LAB_0002933f;
        }
      }
      else {
LAB_00028fea:
        local_50 = local_50 + (uint)(bVar1 == 10);
      }
    }
    else {
      if (((&DAT_000803c0)[bVar1] & 2) != 0) {
        if (bVar4) {
          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))
          goto LAB_00029190;
          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {
LAB_000290bf:
            FUN_000358a0(local_3c);
            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;
          }
          else {
LAB_000292c0:
            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);
            if ((iVar7 != 0) ||
               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))
            goto LAB_000290bf;
            if (!bVar4) {
              uVar10 = FUN_00035980(uVar11 + 5,param_1);
              piVar14 = param_1 + 1;
              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;
              goto LAB_000296a9;
            }
            FUN_000358a0(local_3c);
            if (DAT_00088c04 == 0) goto LAB_0002928b;
          }
          uVar6 = 0x40;
        }
        else if (param_5 == 0) {
          FUN_000358a0(local_3c);
          uVar6 = 0x27;
        }
        else {
          if (uVar11 + 5 < uVar13) goto LAB_000292c0;
          FUN_000358a0(local_3c);
LAB_0002928b:
          uVar6 = 0x27;
        }
        iVar12 = 0;
        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
LAB_00029190:
      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;
      if (bVar1 == 0x40) goto LAB_00029320;
      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;
      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {
        FUN_000358a0(local_3c);
        uVar10 = FUN_00028c80(local_3c);
        uVar6 = FUN_00035970(local_3c);
        iVar12 = FUN_000254b0(param_4,uVar6);
        if (iVar12 != 0) {
          if (*(int *)(iVar12 + 0x20) != 0) {
            __s = "-1";
            goto LAB_000293b0;
          }
          FUN_000358b0(param_2,0x30);
          goto LAB_00029007;
        }
        FUN_000358b0(param_2,0x3d);
        FUN_000358b0(param_2,0x3d);
        FUN_000357f0(param_2,local_3c);
        uVar13 = param_1[1];
        iVar12 = 0;
        goto LAB_00028f98;
      }
    }
    uVar10 = uVar11 + 1;
    FUN_000358b0(param_2,(int)(char)bVar1);
  }
LAB_00029007:
  iVar12 = 0;
  uVar13 = param_1[1];
  uVar11 = uVar10;
  goto LAB_00028fa0;
LAB_000296a9:
  do {
    piVar9 = (int *)FUN_00028ba0(piVar14);
    uVar10 = FUN_00028c80(piVar9 + 1);
    uVar6 = FUN_00035970(piVar9 + 1);
    iVar12 = FUN_000254b0(param_4,uVar6);
    if (iVar12 == 0) {
      piVar9[10] = -3;
      *piVar9 = (int)local_4c;
      DAT_00088bf8 = DAT_00088bf8 + 1;
      sprintf(local_30,".LL%04x",DAT_00088bf8);
      FUN_000358e0(piVar9 + 7,local_30);
      iVar12 = FUN_00025360(param_4,uVar6,piVar9);
      local_4c = piVar9;
      if (iVar12 != 0) {
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
    }
    else {
      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);
      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);
      FUN_00028bf0();
    }
    uVar10 = FUN_000359c0(uVar10,param_1);
  } while (*(char *)(*param_1 + uVar10) != '\n');
LAB_00029749:
  iVar12 = 0;
  uVar13 = param_1[1];
  goto LAB_00028f98;
}


PUSH EBP
XOR EBP,EBP
PUSH EDI
XOR EDI,EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00016000
ADD EBX,0x570c1
SUB ESP,0x68
MOV dword ptr [ESP + 0x14],EDX
LEA EDX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x18],EDX
MOV dword ptr [ESP + 0x34],ECX
PUSH EDX
CALL 0x00035790
LEA EAX,[EBX + 0x3c0]
ADD ESP,0x10
MOV EDX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EBX + 0xffffff74]
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x20],EBP
MOV dword ptr [ESP],EDX
LEA ESI,[ESI]
NOP
TEST EDI,EDI
JNZ 0x00029020
CMP EBP,dword ptr [ESP]
JNC 0x00029020
MOV EAX,dword ptr [ESP + 0x4]
MOV ESI,dword ptr [EAX]
LEA ECX,[ESI + EBP*0x1]
MOVZX EAX,byte ptr [ECX]
CMP AL,0x26
JZ 0x000291f0
CMP AL,0x5c
JZ 0x000290f8
MOV EDX,dword ptr [EBX + 0x8c08]
MOV dword ptr [ESP + 0x10],EDX
OR EDX,dword ptr [EBX + 0x8c0c]
JNZ 0x00029080
CMP AL,0x22
JZ 0x00029258
LEA ECX,[EBP + 0x1]
CMP AL,0x40
JZ 0x00029320
XOR EDX,EDX
CMP AL,0xa
MOV EBP,ECX
SETZ DL
ADD dword ptr [ESP + 0x1c],EDX
SUB ESP,0x8
MOVSX EAX,AL
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000358b0
MOV EAX,dword ptr [ESP + 0x14]
XOR EDI,EDI
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00028fa0
LEA ESI,[ESI]
NOP
MOV EBP,dword ptr [ESP + 0x20]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000357d0
ADD ESP,0x10
TEST EBP,EBP
JZ 0x00029073
MOV dword ptr [ESP],EDI
MOV EDI,EBP
MOV EBP,dword ptr [ESP + 0x70]
SUB ESP,0xc
LEA EAX,[EDI + 0x4]
MOV ESI,dword ptr [EDI]
PUSH EAX
CALL 0x00035970
ADD ESP,0xc
XOR ECX,ECX
TEST ESI,ESI
SETZ CL
PUSH ECX
PUSH EAX
PUSH EBP
CALL 0x00025530
MOV EAX,EDI
MOV EDI,ESI
CALL 0x00028bf0
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00029040
MOV EDI,dword ptr [ESP]
ADD ESP,0x5c
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x14]
MOVZX EDX,AL
TEST byte ptr [EDI + EDX*0x1],0x2
JZ 0x00029190
MOV EDI,dword ptr [ESP + 0x18]
TEST EDI,EDI
JZ 0x00029268
MOV EDX,dword ptr [EBX + 0x8c04]
TEST EDX,EDX
JNZ 0x00029180
MOV EDI,dword ptr [ESP + 0x74]
TEST EDI,EDI
JZ 0x000290bf
LEA EDI,[EBP + 0x5]
CMP EDI,dword ptr [ESP]
JC 0x000292c0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000358a0
MOV ECX,dword ptr [EBX + 0x8c04]
ADD ESP,0x10
TEST ECX,ECX
JZ 0x0002928b
TEST byte ptr [ESP + 0x18],0x1
JZ 0x0002928b
MOV EAX,0x40
JMP 0x00029290
LEA EDI,[EBP + 0x1]
CMP EDI,dword ptr [ESP]
JNC 0x0002913d
MOVZX EAX,byte ptr [ESI + EBP*0x1 + 0x1]
CMP AL,0x28
JZ 0x00029438
CMP AL,0x40
JZ 0x00029390
CMP AL,0x26
JZ 0x00029410
MOV EDX,dword ptr [EBX + 0x8c08]
TEST EDX,EDX
JZ 0x0002913d
MOV EDX,dword ptr [ESP + 0x24]
MOVSX ECX,AL
MOVZX EAX,AL
MOVZX EAX,word ptr [EDX + EAX*0x2]
TEST AL,0x8c
JNZ 0x000293c0
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x18]
PUSH ESI
CALL 0x000358a0
PUSH 0x0
MOV ECX,ESI
MOV EAX,EDI
PUSH dword ptr [ESP + 0x1c]
XOR EDI,EDI
PUSH 0x27
PUSH dword ptr [ESP + 0x8c]
MOV ESI,dword ptr [ESP + 0x24]
MOV EDX,ESI
CALL 0x00028d50
MOV EBP,EAX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x20
JMP 0x00028f98
TEST EBP,EBP
JZ 0x00029190
CMP byte ptr [ESI + EBP*0x1 + -0x1],0x40
JZ 0x000290ab
NOP
CMP AL,0x22
JZ 0x00029258
MOV EDX,dword ptr [ESP + 0x10]
TEST EDX,EDX
SETNZ CL
MOV EDI,ECX
CMP AL,0x27
JNZ 0x000291af
TEST CL,CL
JNZ 0x00029258
LEA ECX,[EBP + 0x1]
CMP AL,0x40
JZ 0x00029320
CMP AL,0x3d
JNZ 0x00028fea
MOV EDX,EDI
TEST DL,DL
JZ 0x00028fea
CMP dword ptr [ESP],ECX
JBE 0x000291e0
CMP byte ptr [ESI + ECX*0x1],0x3d
JZ 0x00029589
LEA ESI,[ESI]
NOP
MOV EBP,ECX
JMP 0x00028ff7
SUB ESP,0xc
LEA ESI,[EBP + 0x1]
PUSH dword ptr [ESP + 0x18]
CALL 0x000358a0
MOV ECX,dword ptr [EBX + 0x8c08]
ADD ESP,0x10
TEST ECX,ECX
JZ 0x00029350
MOV EAX,dword ptr [ESP + 0x4]
CMP dword ptr [EAX + 0x4],ESI
JBE 0x00029380
MOV EAX,dword ptr [EAX]
CMP byte ptr [EAX + ESI*0x1],0x26
JZ 0x000294d0
MOVSX EAX,byte ptr [EAX + EBP*0x1]
SUB ESP,0x8
MOV EBP,ESI
XOR EDI,EDI
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000358b0
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00028f98
XOR dword ptr [ESP + 0x18],0x1
ADD EBP,0x1
JMP 0x00028ff7
MOV EAX,dword ptr [ESP + 0x74]
TEST EAX,EAX
JZ 0x00029508
LEA EDI,[EBP + 0x5]
CMP EDI,dword ptr [ESP]
JC 0x000292c0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000358a0
ADD ESP,0x10
MOV EAX,0x27
PUSH 0x1
XOR EDI,EDI
PUSH dword ptr [ESP + 0xc]
PUSH EAX
MOV EAX,EBP
PUSH dword ptr [ESP + 0x7c]
MOV ESI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,ESI
CALL 0x00028d50
MOV EBP,EAX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00028f98
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdeeac]
PUSH 0x5
PUSH EAX
PUSH ECX
CALL 0x00014550
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000290bf
MOVZX EAX,byte ptr [ESI + EDI*0x1]
CMP AL,0x20
JZ 0x000292ed
CMP AL,0x9
JNZ 0x000290bf
MOV ESI,dword ptr [ESP + 0x18]
TEST ESI,ESI
JZ 0x0002960d
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000358a0
MOV EDX,dword ptr [EBX + 0x8c04]
ADD ESP,0x10
TEST EDX,EDX
JNZ 0x000290e7
JMP 0x0002928b
MOV EDI,dword ptr [EBX + 0x8c04]
TEST EDI,EDI
JZ 0x000291e0
CMP ECX,dword ptr [ESP]
JNC 0x0002933d
CMP byte ptr [ESI + ECX*0x1],0x40
JZ 0x00029573
MOV EBP,ECX
XOR EDI,EDI
JMP 0x00028f98
PUSH 0x0
MOV EAX,ESI
PUSH dword ptr [ESP + 0xc]
PUSH 0x26
PUSH dword ptr [ESP + 0x7c]
MOV EDI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,EDI
CALL 0x00028d50
MOV EBP,EAX
MOV EAX,dword ptr [EDI + 0x4]
XOR EDI,EDI
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00028f98
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX]
JMP 0x00029229
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe03fa]
PUSH dword ptr [EBX + 0x8bfc]
ADD EBP,0x2
PUSH EAX
LEA ESI,[ESP + 0x48]
PUSH ESI
CALL 0x00014670
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [ESP + 0x14]
CALL 0x000358e0
JMP 0x00029007
TEST AL,0x4
JZ 0x0002952e
SUB ECX,0x30
MOV EDI,dword ptr [ESP + 0x28]
ADD EBP,0x2
TEST EDI,EDI
JZ 0x0002933f
LEA EAX,[ECX + -0x1]
CMP EAX,dword ptr [EDI + 0x28]
JZ 0x0002953e
MOV EDX,dword ptr [ESP]
JMP 0x000293f9
CMP dword ptr [EDI + 0x28],EAX
JZ 0x00029542
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JNZ 0x000293f0
MOV dword ptr [ESP],EDX
JMP 0x00028f98
SUB ESP,0x8
ADD EBP,0x2
PUSH 0x5c
MOV ESI,dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x000358b0
POP ECX
POP EDI
PUSH 0x26
PUSH ESI
CALL 0x000358b0
JMP 0x00029007
ADD EBP,0x2
CMP EBP,dword ptr [ESP]
JNC 0x00029485
MOVSX EAX,byte ptr [ESI + EBP*0x1]
CMP AL,0x29
JZ 0x00029524
MOV EDI,dword ptr [ESP + 0x4]
MOV ESI,dword ptr [ESP + 0x8]
JMP 0x0002946e
MOV EAX,dword ptr [EDI]
MOVSX EAX,byte ptr [EAX + EBP*0x1]
CMP AL,0x29
JZ 0x00029521
SUB ESP,0x8
ADD EBP,0x1
PUSH EAX
PUSH ESI
CALL 0x000358b0
MOV EDX,dword ptr [EDI + 0x4]
ADD ESP,0x10
CMP EDX,EBP
JA 0x00029460
MOV ECX,dword ptr [ESP + 0x74]
TEST ECX,ECX
JZ 0x000295e5
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdeea0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0xc
PUSH EAX
MOV ECX,dword ptr [ESP + 0x7c]
MOV EAX,dword ptr [ESP + 0x24]
ADD EAX,dword ptr [ECX + 0x20]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x80]
PUSH dword ptr [EAX + 0x1c]
CALL 0x0002bdb0
JMP 0x00029007
PUSH 0x1
LEA EAX,[EBP + 0x2]
XOR EDI,EDI
PUSH dword ptr [ESP + 0xc]
PUSH 0x27
PUSH dword ptr [ESP + 0x7c]
MOV ESI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,ESI
CALL 0x00028d50
MOV EBP,EAX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00028f98
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000358a0
ADD ESP,0x10
MOV EAX,0x27
JMP 0x00029290
MOV dword ptr [ESP],EDX
ADD EBP,0x1
XOR EDI,EDI
JMP 0x00028f98
LEA ESI,[ECX + -0x37]
SUB ECX,0x57
TEST AL,0x80
CMOVNZ ECX,ESI
JMP 0x000293cb
MOV EDI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EDI + 0x20]
TEST EAX,EAX
JZ 0x0002955e
SUB ESP,0x8
ADD EDI,0x1c
PUSH EDI
PUSH dword ptr [ESP + 0x14]
CALL 0x000357f0
JMP 0x00029007
SUB ESP,0x8
ADD EDI,0x10
PUSH EDI
PUSH dword ptr [ESP + 0x14]
CALL 0x000357f0
JMP 0x00029007
SUB ESP,0x8
ADD EBP,0x2
PUSH 0x40
PUSH dword ptr [ESP + 0x14]
CALL 0x000358b0
JMP 0x00029007
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x18]
PUSH ESI
CALL 0x000358a0
MOV EDX,dword ptr [ESP + 0x14]
LEA EAX,[EBP + 0x2]
MOV dword ptr [ESP],ESI
LEA ECX,[EDX + 0x4]
CALL 0x00028c80
MOV dword ptr [ESP],ESI
MOV EBP,EAX
CALL 0x00035970
POP EDX
POP ECX
PUSH EAX
PUSH dword ptr [ESP + 0x7c]
CALL 0x000254b0
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0002976d
MOV ESI,dword ptr [EAX + 0x20]
TEST ESI,ESI
JZ 0x0002975a
SUB ESP,0x8
LEA EAX,[EBX + 0xfffdeeba]
PUSH EAX
JMP 0x000293b0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdeea0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00028f98
SUB ESP,0x8
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH EDI
CALL 0x00035980
MOV ECX,ESI
ADD ESP,0x10
ADD ECX,0x4
MOV EBP,EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP],ECX
LEA ECX,[EBX + 0xfffdef50]
MOV dword ptr [ESP + 0x10],ECX
LEA ECX,[EBX + 0xfffdeeb2]
MOV dword ptr [ESP + 0x2c],ECX
CMP byte ptr [EAX + EBP*0x1],0xa
JNZ 0x000296a9
JMP 0x00029749
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
CALL 0x000141a0
PUSH EDI
PUSH EAX
MOV ECX,dword ptr [ESP + 0x8c]
MOV EAX,dword ptr [ESP + 0x34]
ADD EAX,dword ptr [ECX + 0x20]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x90]
PUSH dword ptr [EAX + 0x1c]
CALL 0x0002bdb0
ADD ESP,0x20
MOV EAX,ESI
CALL 0x00028bf0
SUB ESP,0x8
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH EBP
CALL 0x000359c0
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX + EBP*0x1],0xa
JZ 0x00029749
CALL 0x00028ba0
SUB ESP,0xc
LEA EDI,[EAX + 0x4]
MOV ESI,EAX
MOV EAX,EBP
PUSH EDI
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
CALL 0x00028c80
MOV dword ptr [ESP],EDI
MOV EBP,EAX
CALL 0x00035970
MOV EDI,EAX
POP EAX
POP EDX
PUSH EDI
PUSH dword ptr [ESP + 0x7c]
CALL 0x000254b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00029650
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0x4
MOV dword ptr [ESI + 0x28],0xfffffffd
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBX + 0x8bf8]
ADD EAX,0x1
PUSH EAX
PUSH dword ptr [ESP + 0x34]
MOV dword ptr [EBX + 0x8bf8],EAX
LEA EDX,[ESP + 0x48]
PUSH EDX
MOV dword ptr [ESP + 0x30],EDX
CALL 0x00014670
POP ECX
POP EAX
LEA EAX,[ESI + 0x1c]
MOV EDX,dword ptr [ESP + 0x28]
PUSH EDX
PUSH EAX
CALL 0x000358e0
ADD ESP,0xc
PUSH ESI
PUSH EDI
PUSH dword ptr [ESP + 0x7c]
CALL 0x00025360
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000297a5
MOV dword ptr [ESP + 0x20],ESI
JMP 0x0002968a
MOV EAX,dword ptr [ESP + 0x4]
XOR EDI,EDI
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP],EAX
JMP 0x00028f98
SUB ESP,0x8
PUSH 0x30
PUSH dword ptr [ESP + 0x14]
CALL 0x000358b0
JMP 0x00029007
SUB ESP,0x8
PUSH 0x3d
MOV ESI,dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x000358b0
POP EAX
POP EDX
PUSH 0x3d
PUSH ESI
CALL 0x000358b0
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x000357f0
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00028f98
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x20],ESI
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP],EAX
JMP 0x00028f98
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x0002901b) */\n\nint __regparm3\nFUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}\n\n" comment comment (function_definition "int __regparm3\nFUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined1 local_3c [12];" type_identifier (array_declarator "local_3c [12]" identifier [ number_literal ]) ;) (declaration "char local_30 [28];" primitive_type (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x28f3f;" (assignment_expression "uStack_14 = 0x28f3f" identifier = number_literal) ;) (expression_statement "FUN_00035790(local_3c);" (call_expression "FUN_00035790(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "puVar5 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar5 = PTR__sch_istable_0007ff74" identifier = identifier) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00028f98:\n  uVar11 = uVar10;" statement_identifier : (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;)) (if_statement "if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }" { (labeled_statement "LAB_00029020:\n    FUN_000357d0(local_3c);" statement_identifier : (expression_statement "FUN_000357d0(local_3c);" (call_expression "FUN_000357d0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;)) (while_statement "while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }" while (parenthesized_expression "(local_4c != (int *)0x0)" ( (binary_expression "local_4c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }" { (expression_statement "piVar14 = local_4c + 1;" (assignment_expression "piVar14 = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "local_4c = (int *)*local_4c;" (assignment_expression "local_4c = (int *)*local_4c" identifier = (cast_expression "(int *)*local_4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_4c" * identifier))) ;) (expression_statement "uVar6 = FUN_00035970(piVar14);" (assignment_expression "uVar6 = FUN_00035970(piVar14)" identifier = (call_expression "FUN_00035970(piVar14)" identifier (argument_list "(piVar14)" ( identifier )))) ;) (expression_statement "FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);" (call_expression "FUN_00025530(param_4,uVar6,local_4c == (int *)0x0)" identifier (argument_list "(param_4,uVar6,local_4c == (int *)0x0)" ( identifier , identifier , (binary_expression "local_4c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) (expression_statement "FUN_00028bf0();" (call_expression "FUN_00028bf0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar12;" return identifier ;) })) (labeled_statement "LAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;" statement_identifier : (if_statement "if (uVar13 <= uVar11) goto LAB_00029020;" if (parenthesized_expression "(uVar13 <= uVar11)" ( (binary_expression "uVar13 <= uVar11" identifier <= identifier) )) (goto_statement "goto LAB_00029020;" goto statement_identifier ;))) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar12 + uVar11);" (assignment_expression "bVar1 = *(byte *)(iVar12 + uVar11)" identifier = (pointer_expression "*(byte *)(iVar12 + uVar11)" * (cast_expression "(byte *)(iVar12 + uVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11)" ( (binary_expression "iVar12 + uVar11" identifier + identifier) ))))) ;) (if_statement "if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }" { (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (if_statement "if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }" if (parenthesized_expression "(DAT_00088c08 == 0)" ( (binary_expression "DAT_00088c08 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }" { (expression_statement "uVar10 = FUN_00028d50(param_4,0x26,param_2,0);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x26,param_2,0)" identifier = (call_expression "FUN_00028d50(param_4,0x26,param_2,0)" identifier (argument_list "(param_4,0x26,param_2,0)" ( identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (if_statement "if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }" if (parenthesized_expression "(uVar10 < (uint)param_1[1])" ( (binary_expression "uVar10 < (uint)param_1[1]" identifier < (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }" { (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + uVar10) == '&')" ( (binary_expression "*(char *)(iVar7 + uVar10) == '&'" (pointer_expression "*(char *)(iVar7 + uVar10)" * (cast_expression "(char *)(iVar7 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + uVar10)" ( (binary_expression "iVar7 + uVar10" identifier + identifier) )))) == (char_literal "'&'" ' character ')) )) (compound_statement "{\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = FUN_00028d50(param_4,0x27,param_2,1);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x27,param_2,1)" identifier = (call_expression "FUN_00028d50(param_4,0x27,param_2,1)" identifier (argument_list "(param_4,0x27,param_2,1)" ( identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar7 = *param_1;\n    }" else (compound_statement "{\n      iVar7 = *param_1;\n    }" { (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) }))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));" (call_expression "FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11))" identifier (argument_list "(param_2,(int)*(char *)(iVar7 + uVar11))" ( identifier , (cast_expression "(int)*(char *)(iVar7 + uVar11)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar7 + uVar11)" * (cast_expression "(char *)(iVar7 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + uVar11)" ( (binary_expression "iVar7 + uVar11" identifier + identifier) ))))) ))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" if (parenthesized_expression "(bVar1 == 0x5c)" ( (binary_expression "bVar1 == 0x5c" identifier == number_literal) )) (compound_statement "{\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }" { (if_statement "if (uVar13 <= uVar11 + 1) goto LAB_0002913d;" if (parenthesized_expression "(uVar13 <= uVar11 + 1)" ( (binary_expression "uVar13 <= uVar11 + 1" identifier <= (binary_expression "uVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0002913d;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(iVar12 + 1 + uVar11);" (assignment_expression "bVar1 = *(byte *)(iVar12 + 1 + uVar11)" identifier = (pointer_expression "*(byte *)(iVar12 + 1 + uVar11)" * (cast_expression "(byte *)(iVar12 + 1 + uVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 1 + uVar11)" ( (binary_expression "iVar12 + 1 + uVar11" (binary_expression "iVar12 + 1" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" if (parenthesized_expression "(bVar1 == 0x28)" ( (binary_expression "bVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }" { (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (if_statement "if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }" if (parenthesized_expression "(uVar10 < uVar13)" ( (binary_expression "uVar10 < uVar13" identifier < identifier) )) (compound_statement "{\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }" { (expression_statement "cVar2 = *(char *)(iVar12 + uVar10);" (assignment_expression "cVar2 = *(char *)(iVar12 + uVar10)" identifier = (pointer_expression "*(char *)(iVar12 + uVar10)" * (cast_expression "(char *)(iVar12 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar10)" ( (binary_expression "iVar12 + uVar10" identifier + identifier) ))))) ;) (while_statement "while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }" { (if_statement "if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" if (parenthesized_expression "(cVar2 == ')')" ( (binary_expression "cVar2 == ')'" identifier == (char_literal "')'" ' character ')) )) (compound_statement "{\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,(int)cVar2);" (call_expression "FUN_000358b0(param_2,(int)cVar2)" identifier (argument_list "(param_2,(int)cVar2)" ( identifier , (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar13 <= uVar10) break;" if (parenthesized_expression "(uVar13 <= uVar10)" ( (binary_expression "uVar13 <= uVar10" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar2 = *(char *)(*param_1 + uVar10);" (assignment_expression "cVar2 = *(char *)(*param_1 + uVar10)" identifier = (pointer_expression "*(char *)(*param_1 + uVar10)" * (cast_expression "(char *)(*param_1 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar10)" ( (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" * identifier) + identifier) ))))) ;) })) })) (if_statement "if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (expression_statement "iVar12 = dcgettext(0,"missing `)\'",5);" (assignment_expression "iVar12 = 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 "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "uVar6 = dcgettext(0,"missing `)\'",5);" (assignment_expression "uVar6 = 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_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);" (call_expression "FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6)" identifier (argument_list "(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6)" ( (pointer_expression "*(undefined4 *)(param_5 + 0x1c)" * (cast_expression "(undefined4 *)(param_5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) )))) , (binary_expression "local_50 + *(int *)(param_5 + 0x20)" identifier + (pointer_expression "*(int *)(param_5 + 0x20)" * (cast_expression "(int *)(param_5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x20)" ( (binary_expression "param_5 + 0x20" identifier + number_literal) ))))) , identifier ))) ;) }) (else_clause "else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" else (if_statement "if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }" { (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;) (expression_statement "sprintf(__s,"%d",DAT_00088bfc);" (call_expression "sprintf(__s,"%d",DAT_00088bfc)" identifier (argument_list "(__s,"%d",DAT_00088bfc)" ( identifier , (string_literal ""%d"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_000293b0:\n      FUN_000358e0(param_2,__s);" statement_identifier : (expression_statement "FUN_000358e0(param_2,__s);" (call_expression "FUN_000358e0(param_2,__s)" identifier (argument_list "(param_2,__s)" ( identifier , identifier ))) ;)) }) (else_clause "else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" else (compound_statement "{\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" { (if_statement "if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(bVar1 != 0x26)" ( (binary_expression "bVar1 != 0x26" identifier != number_literal) )) (compound_statement "{\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (if_statement "if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }" if (parenthesized_expression "(DAT_00088c08 != 0)" ( (binary_expression "DAT_00088c08 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }" { (expression_statement "iVar12 = (int)(char)bVar1;" (assignment_expression "iVar12 = (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 *)(puVar5 + (uint)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(puVar5 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(puVar5 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + (uint)bVar1 * 2)" ( (binary_expression "puVar5 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\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            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" { (if_statement "if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\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              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }" { (expression_statement "iVar7 = iVar12 + -0x57;" (assignment_expression "iVar7 = iVar12 + -0x57" identifier = (binary_expression "iVar12 + -0x57" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -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                iVar7 = iVar12 + -0x37;\n              }" { (expression_statement "iVar7 = iVar12 + -0x37;" (assignment_expression "iVar7 = iVar12 + -0x37" identifier = (binary_expression "iVar12 + -0x37" identifier + number_literal)) ;) })) }) (else_clause "else {\n              iVar7 = iVar12 + -0x30;\n            }" else (compound_statement "{\n              iVar7 = iVar12 + -0x30;\n            }" { (expression_statement "iVar7 = iVar12 + -0x30;" (assignment_expression "iVar7 = iVar12 + -0x30" identifier = (binary_expression "iVar12 + -0x30" identifier + number_literal)) ;) }))) (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (if_statement "if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }" { (expression_statement "iVar12 = param_3[10];" (assignment_expression "iVar12 = param_3[10]" identifier = (subscript_expression "param_3[10]" identifier [ number_literal ])) ;) (expression_statement "piVar14 = param_3;" (assignment_expression "piVar14 = param_3" identifier = identifier) ;) (while_statement "while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }" while (parenthesized_expression "(iVar7 + -1 != iVar12)" ( (binary_expression "iVar7 + -1 != iVar12" (binary_expression "iVar7 + -1" identifier + number_literal) != identifier) )) (compound_statement "{\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }" { (expression_statement "piVar14 = (int *)*piVar14;" (assignment_expression "piVar14 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "iVar12 = piVar14[10];" (assignment_expression "iVar12 = piVar14[10]" identifier = (subscript_expression "piVar14[10]" identifier [ number_literal ])) ;) })) (if_statement "if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" if (parenthesized_expression "(piVar14[8] == 0)" ( (binary_expression "piVar14[8] == 0" (subscript_expression "piVar14[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                FUN_000357f0(param_2,piVar14 + 4);\n              }" { (expression_statement "FUN_000357f0(param_2,piVar14 + 4);" (call_expression "FUN_000357f0(param_2,piVar14 + 4)" identifier (argument_list "(param_2,piVar14 + 4)" ( identifier , (binary_expression "piVar14 + 4" identifier + number_literal) ))) ;) }) (else_clause "else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" else (compound_statement "{\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" { (expression_statement "FUN_000357f0(param_2,piVar14 + 7);" (call_expression "FUN_000357f0(param_2,piVar14 + 7)" identifier (argument_list "(param_2,piVar14 + 7)" ( identifier , (binary_expression "piVar14 + 7" identifier + number_literal) ))) ;) }))) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (labeled_statement "LAB_0002933f:\n            iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002913d:\n        FUN_000358a0(local_3c);" statement_identifier : (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = FUN_00028d50(param_4,0x27,param_2,0);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x27,param_2,0)" identifier = (call_expression "FUN_00028d50(param_4,0x27,param_2,0)" identifier (argument_list "(param_4,0x27,param_2,0)" ( identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,0x5c);" (call_expression "FUN_000358b0(param_2,0x5c)" identifier (argument_list "(param_2,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "FUN_000358b0(param_2,0x26);" (call_expression "FUN_000358b0(param_2,0x26)" identifier (argument_list "(param_2,0x26)" ( identifier , number_literal ))) ;) }))))) }) (else_clause "else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" else (compound_statement "{\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" { (if_statement "if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" if (parenthesized_expression "(DAT_00088c08 == 0 && DAT_00088c0c == 0)" ( (binary_expression "DAT_00088c08 == 0 && DAT_00088c0c == 0" (binary_expression "DAT_00088c08 == 0" identifier == number_literal) && (binary_expression "DAT_00088c0c == 0" identifier == number_literal)) )) (compound_statement "{\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }" { (if_statement "if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }" { (labeled_statement "LAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);" statement_identifier : (expression_statement "bVar4 = (bool)(bVar4 ^ 1);" (assignment_expression "bVar4 = (bool)(bVar4 ^ 1)" identifier = (cast_expression "(bool)(bVar4 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar4 ^ 1)" ( (binary_expression "bVar4 ^ 1" identifier ^ number_literal) )))) ;)) }) (else_clause "else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" else (if_statement "if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }" { (labeled_statement "LAB_00029320:\n        uVar10 = uVar11 + 1;" statement_identifier : (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;)) (if_statement "if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" if (parenthesized_expression "(DAT_00088c04 != 0)" ( (binary_expression "DAT_00088c04 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" { (if_statement "if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }" if (parenthesized_expression "((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@'))" ( (binary_expression "(uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')" (parenthesized_expression "(uVar10 < uVar13)" ( (binary_expression "uVar10 < uVar13" identifier < identifier) )) && (parenthesized_expression "(*(char *)(iVar12 + uVar10) == '@')" ( (binary_expression "*(char *)(iVar12 + uVar10) == '@'" (pointer_expression "*(char *)(iVar12 + uVar10)" * (cast_expression "(char *)(iVar12 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar10)" ( (binary_expression "iVar12 + uVar10" identifier + identifier) )))) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }" { (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,0x40);" (call_expression "FUN_000358b0(param_2,0x40)" identifier (argument_list "(param_2,0x40)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002933f;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" else (compound_statement "{\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" { (labeled_statement "LAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);" statement_identifier : (expression_statement "local_50 = local_50 + (uint)(bVar1 == 10);" (assignment_expression "local_50 = local_50 + (uint)(bVar1 == 10)" identifier = (binary_expression "local_50 + (uint)(bVar1 == 10)" identifier + (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) ))))) ;)) }))))) }) (else_clause "else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" else (compound_statement "{\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" { (if_statement "if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(((&DAT_000803c0)[bVar1] & 2) != 0)" ( (binary_expression "((&DAT_000803c0)[bVar1] & 2) != 0" (parenthesized_expression "((&DAT_000803c0)[bVar1] & 2)" ( (binary_expression "(&DAT_000803c0)[bVar1] & 2" (subscript_expression "(&DAT_000803c0)[bVar1]" (parenthesized_expression "(&DAT_000803c0)" ( (pointer_expression "&DAT_000803c0" & identifier) )) [ identifier ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (if_statement "if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }" { (if_statement "if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;" if (parenthesized_expression "((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))" ( (binary_expression "(DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')))" (parenthesized_expression "(DAT_00088c04 != 0)" ( (binary_expression "DAT_00088c04 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')))" ( (parenthesized_expression "(uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))" ( (binary_expression "uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')" (binary_expression "uVar11 == 0" identifier == number_literal) || (parenthesized_expression "(*(char *)(iVar12 + -1 + uVar11) != '@')" ( (binary_expression "*(char *)(iVar12 + -1 + uVar11) != '@'" (pointer_expression "*(char *)(iVar12 + -1 + uVar11)" * (cast_expression "(char *)(iVar12 + -1 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -1 + uVar11)" ( (binary_expression "iVar12 + -1 + uVar11" (binary_expression "iVar12 + -1" identifier + number_literal) + identifier) )))) != (char_literal "'@'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00029190;" goto statement_identifier ;)) (if_statement "if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" if (parenthesized_expression "((param_5 == 0) || (uVar13 <= uVar11 + 5))" ( (binary_expression "(param_5 == 0) || (uVar13 <= uVar11 + 5)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar13 <= uVar11 + 5)" ( (binary_expression "uVar13 <= uVar11 + 5" identifier <= (binary_expression "uVar11 + 5" identifier + number_literal)) ))) )) (compound_statement "{\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }" { (labeled_statement "LAB_000290bf:\n            FUN_000358a0(local_3c);" statement_identifier : (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;)) (if_statement "if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;" if (parenthesized_expression "((DAT_00088c04 == 0) || (!bVar4))" ( (binary_expression "(DAT_00088c04 == 0) || (!bVar4)" (parenthesized_expression "(DAT_00088c04 == 0)" ( (binary_expression "DAT_00088c04 == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) ))) )) (goto_statement "goto LAB_0002928b;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" else (compound_statement "{\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" { (labeled_statement "LAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);" statement_identifier : (expression_statement "iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);" (assignment_expression "iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5)" identifier = (call_expression "strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5)" identifier (argument_list "((char *)(iVar12 + uVar11),"LOCAL",5)" ( (cast_expression "(char *)(iVar12 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11)" ( (binary_expression "iVar12 + uVar11" identifier + identifier) ))) , (string_literal ""LOCAL"" " string_content ") , number_literal )))) ;)) (if_statement "if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;" if (parenthesized_expression "((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))" ( (binary_expression "(iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')))" ( (parenthesized_expression "(cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))" ( (comma_expression "cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')" (assignment_expression "cVar2 = *(char *)(iVar12 + uVar11 + 5)" identifier = (pointer_expression "*(char *)(iVar12 + uVar11 + 5)" * (cast_expression "(char *)(iVar12 + uVar11 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11 + 5)" ( (binary_expression "iVar12 + uVar11 + 5" (binary_expression "iVar12 + uVar11" 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_000290bf;" goto statement_identifier ;)) (if_statement "if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" { (expression_statement "uVar10 = FUN_00035980(uVar11 + 5,param_1);" (assignment_expression "uVar10 = FUN_00035980(uVar11 + 5,param_1)" identifier = (call_expression "FUN_00035980(uVar11 + 5,param_1)" identifier (argument_list "(uVar11 + 5,param_1)" ( (binary_expression "uVar11 + 5" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar14 = param_1 + 1;" (assignment_expression "piVar14 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;" if (parenthesized_expression "(*(char *)(*param_1 + uVar10) == '\n')" ( (binary_expression "*(char *)(*param_1 + uVar10) == '\n'" (pointer_expression "*(char *)(*param_1 + uVar10)" * (cast_expression "(char *)(*param_1 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar10)" ( (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" * identifier) + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00029749;" goto statement_identifier ;)) (goto_statement "goto LAB_000296a9;" goto statement_identifier ;) })) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (if_statement "if (DAT_00088c04 == 0) goto LAB_0002928b;" if (parenthesized_expression "(DAT_00088c04 == 0)" ( (binary_expression "DAT_00088c04 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002928b;" goto statement_identifier ;)) }))) (expression_statement "uVar6 = 0x40;" (assignment_expression "uVar6 = 0x40" identifier = number_literal) ;) }) (else_clause "else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" else (if_statement "if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }" { (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "uVar6 = 0x27;" (assignment_expression "uVar6 = 0x27" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" else (compound_statement "{\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" { (if_statement "if (uVar11 + 5 < uVar13) goto LAB_000292c0;" if (parenthesized_expression "(uVar11 + 5 < uVar13)" ( (binary_expression "uVar11 + 5 < uVar13" (binary_expression "uVar11 + 5" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_000292c0;" goto statement_identifier ;)) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (labeled_statement "LAB_0002928b:\n          uVar6 = 0x27;" statement_identifier : (expression_statement "uVar6 = 0x27;" (assignment_expression "uVar6 = 0x27" identifier = number_literal) ;)) }))))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);" (assignment_expression "uVar10 = FUN_00028d50(param_4,uVar6,param_2,1)" identifier = (call_expression "FUN_00028d50(param_4,uVar6,param_2,1)" identifier (argument_list "(param_4,uVar6,param_2,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (labeled_statement "LAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;" statement_identifier : (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;" if (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0))))" ( (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))" (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) || (parenthesized_expression "((bVar1 == 0x27 && (DAT_00088c08 != 0)))" ( (parenthesized_expression "(bVar1 == 0x27 && (DAT_00088c08 != 0))" ( (binary_expression "bVar1 == 0x27 && (DAT_00088c08 != 0)" (binary_expression "bVar1 == 0x27" identifier == number_literal) && (parenthesized_expression "(DAT_00088c08 != 0)" ( (binary_expression "DAT_00088c08 != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00029258;" goto statement_identifier ;))) (if_statement "if (bVar1 == 0x40) goto LAB_00029320;" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_00029320;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;" if (parenthesized_expression "((bVar1 != 0x3d) || (DAT_00088c08 == 0))" ( (binary_expression "(bVar1 != 0x3d) || (DAT_00088c08 == 0)" (parenthesized_expression "(bVar1 != 0x3d)" ( (binary_expression "bVar1 != 0x3d" identifier != number_literal) )) || (parenthesized_expression "(DAT_00088c08 == 0)" ( (binary_expression "DAT_00088c08 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00028fea;" goto statement_identifier ;)) (if_statement "if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '='))" ( (binary_expression "(uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')" (parenthesized_expression "(uVar11 + 1 < uVar13)" ( (binary_expression "uVar11 + 1 < uVar13" (binary_expression "uVar11 + 1" identifier + number_literal) < identifier) )) && (parenthesized_expression "(*(char *)(iVar12 + uVar11 + 1) == '=')" ( (binary_expression "*(char *)(iVar12 + uVar11 + 1) == '='" (pointer_expression "*(char *)(iVar12 + uVar11 + 1)" * (cast_expression "(char *)(iVar12 + uVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11 + 1)" ( (binary_expression "iVar12 + uVar11 + 1" (binary_expression "iVar12 + uVar11" identifier + identifier) + number_literal) )))) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }" { (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "uVar10 = FUN_00028c80(local_3c);" (assignment_expression "uVar10 = FUN_00028c80(local_3c)" identifier = (call_expression "FUN_00028c80(local_3c)" identifier (argument_list "(local_3c)" ( identifier )))) ;) (expression_statement "uVar6 = FUN_00035970(local_3c);" (assignment_expression "uVar6 = FUN_00035970(local_3c)" identifier = (call_expression "FUN_00035970(local_3c)" identifier (argument_list "(local_3c)" ( identifier )))) ;) (expression_statement "iVar12 = FUN_000254b0(param_4,uVar6);" (assignment_expression "iVar12 = FUN_000254b0(param_4,uVar6)" identifier = (call_expression "FUN_000254b0(param_4,uVar6)" identifier (argument_list "(param_4,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }" { (if_statement "if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x20) != 0" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            __s = "-1";\n            goto LAB_000293b0;\n          }" { (expression_statement "__s = "-1";" (assignment_expression "__s = "-1"" identifier = (string_literal ""-1"" " string_content ")) ;) (goto_statement "goto LAB_000293b0;" goto statement_identifier ;) })) (expression_statement "FUN_000358b0(param_2,0x30);" (call_expression "FUN_000358b0(param_2,0x30)" identifier (argument_list "(param_2,0x30)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (expression_statement "FUN_000358b0(param_2,0x3d);" (call_expression "FUN_000358b0(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_000358b0(param_2,0x3d);" (call_expression "FUN_000358b0(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_000357f0(param_2,local_3c);" (call_expression "FUN_000357f0(param_2,local_3c)" identifier (argument_list "(param_2,local_3c)" ( identifier , identifier ))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }))) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,(int)(char)bVar1);" (call_expression "FUN_000358b0(param_2,(int)(char)bVar1)" identifier (argument_list "(param_2,(int)(char)bVar1)" ( identifier , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) }))) (labeled_statement "LAB_00029007:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (goto_statement "goto LAB_00028fa0;" goto statement_identifier ;) (labeled_statement "LAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');" statement_identifier : (do_statement "do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');" do (compound_statement "{\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  }" { (expression_statement "piVar9 = (int *)FUN_00028ba0(piVar14);" (assignment_expression "piVar9 = (int *)FUN_00028ba0(piVar14)" identifier = (cast_expression "(int *)FUN_00028ba0(piVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00028ba0(piVar14)" identifier (argument_list "(piVar14)" ( identifier ))))) ;) (expression_statement "uVar10 = FUN_00028c80(piVar9 + 1);" (assignment_expression "uVar10 = FUN_00028c80(piVar9 + 1)" identifier = (call_expression "FUN_00028c80(piVar9 + 1)" identifier (argument_list "(piVar9 + 1)" ( (binary_expression "piVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar6 = FUN_00035970(piVar9 + 1);" (assignment_expression "uVar6 = FUN_00035970(piVar9 + 1)" identifier = (call_expression "FUN_00035970(piVar9 + 1)" identifier (argument_list "(piVar9 + 1)" ( (binary_expression "piVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar12 = FUN_000254b0(param_4,uVar6);" (assignment_expression "iVar12 = FUN_000254b0(param_4,uVar6)" identifier = (call_expression "FUN_000254b0(param_4,uVar6)" identifier (argument_list "(param_4,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }" { (expression_statement "piVar9[10] = -3;" (assignment_expression "piVar9[10] = -3" (subscript_expression "piVar9[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar9 = (int)local_4c;" (assignment_expression "*piVar9 = (int)local_4c" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_00088bf8 = DAT_00088bf8 + 1;" (assignment_expression "DAT_00088bf8 = DAT_00088bf8 + 1" identifier = (binary_expression "DAT_00088bf8 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(local_30,".LL%04x",DAT_00088bf8);" (call_expression "sprintf(local_30,".LL%04x",DAT_00088bf8)" identifier (argument_list "(local_30,".LL%04x",DAT_00088bf8)" ( identifier , (string_literal "".LL%04x"" " string_content ") , identifier ))) ;) (expression_statement "FUN_000358e0(piVar9 + 7,local_30);" (call_expression "FUN_000358e0(piVar9 + 7,local_30)" identifier (argument_list "(piVar9 + 7,local_30)" ( (binary_expression "piVar9 + 7" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar12 = FUN_00025360(param_4,uVar6,piVar9);" (assignment_expression "iVar12 = FUN_00025360(param_4,uVar6,piVar9)" identifier = (call_expression "FUN_00025360(param_4,uVar6,piVar9)" identifier (argument_list "(param_4,uVar6,piVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_4c = piVar9;" (assignment_expression "local_4c = piVar9" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" else (compound_statement "{\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" { (expression_statement "uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "uVar8 = 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_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);" (call_expression "FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6)" identifier (argument_list "(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6)" ( (pointer_expression "*(undefined4 *)(param_5 + 0x1c)" * (cast_expression "(undefined4 *)(param_5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) )))) , (binary_expression "local_50 + *(int *)(param_5 + 0x20)" identifier + (pointer_expression "*(int *)(param_5 + 0x20)" * (cast_expression "(int *)(param_5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x20)" ( (binary_expression "param_5 + 0x20" identifier + number_literal) ))))) , identifier , identifier ))) ;) (expression_statement "FUN_00028bf0();" (call_expression "FUN_00028bf0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar10 = FUN_000359c0(uVar10,param_1);" (assignment_expression "uVar10 = FUN_000359c0(uVar10,param_1)" identifier = (call_expression "FUN_000359c0(uVar10,param_1)" identifier (argument_list "(uVar10,param_1)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(*(char *)(*param_1 + uVar10) != '\n')" ( (binary_expression "*(char *)(*param_1 + uVar10) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar10)" * (cast_expression "(char *)(*param_1 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar10)" ( (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (labeled_statement "LAB_00029749:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x0002901b) */\n\nchar * __regparm3\nmacro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,macro_entry *macro)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  formal_struct *pfVar4;\n  bool bVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  formal_entry *formal;\n  void *pvVar9;\n  int iVar10;\n  size_t start;\n  size_t start_00;\n  char *pcVar11;\n  uint local_6c;\n  int local_50;\n  formal_entry *local_4c;\n  sb t;\n  char buffer [12];\n  \n  start = 0;\n  pcVar11 = (char *)0x0;\n  sb_new(&t);\n  puVar6 = PTR__sch_istable_0007ff74;\n  local_6c = in->len;\n  local_50 = 0;\n  bVar5 = false;\n  local_4c = (formal_entry *)0x0;\nLAB_00028f98:\n  start_00 = start;\n  if (pcVar11 != (char *)0x0) {\nLAB_00029020:\n    sb_kill(&t);\n    while (local_4c != (formal_entry *)0x0) {\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }\n    return pcVar11;\n  }\nLAB_00028fa0:\n  if (local_6c <= start_00) goto LAB_00029020;\n  pcVar11 = in->ptr;\n  bVar1 = pcVar11[start_00];\n  if (bVar1 == 0x26) {\n    start = start_00 + 1;\n    sb_reset(&t);\n    if (macro_mri == 0) {\n      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }\n    if (start < in->len) {\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = in->ptr;\n    }\n    pcVar11 = (char *)0x0;\n    sb_add_char(out,(int)pcVar7[start_00]);\n    local_6c = in->len;\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (local_6c <= start_00 + 1) goto LAB_0002913d;\n    bVar1 = pcVar11[start_00 + 1];\n    if (bVar1 == 0x28) {\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }\n    else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }\n  }\n  else {\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }\n    start = start_00 + 1;\n    sb_add_char(out,(int)(char)bVar1);\n  }\nLAB_00029007:\n  pcVar11 = (char *)0x0;\n  local_6c = in->len;\n  start_00 = start;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    formal = new_formal();\n    start = get_token(start,in,(sb *)&in->len,&formal->name);\n    pcVar11 = sb_terminate(&formal->name);\n    pvVar9 = hash_find(formal_hash,pcVar11);\n    if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }\n    start = sb_skip_comma(start,in);\n  } while (in->ptr[start] != '\n');\nLAB_00029749:\n  pcVar11 = (char *)0x0;\n  local_6c = in->len;\n  goto LAB_00028f98;\n}\n\n" comment comment (function_definition "char * __regparm3\nmacro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,macro_entry *macro)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  formal_struct *pfVar4;\n  bool bVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  formal_entry *formal;\n  void *pvVar9;\n  int iVar10;\n  size_t start;\n  size_t start_00;\n  char *pcVar11;\n  uint local_6c;\n  int local_50;\n  formal_entry *local_4c;\n  sb t;\n  char buffer [12];\n  \n  start = 0;\n  pcVar11 = (char *)0x0;\n  sb_new(&t);\n  puVar6 = PTR__sch_istable_0007ff74;\n  local_6c = in->len;\n  local_50 = 0;\n  bVar5 = false;\n  local_4c = (formal_entry *)0x0;\nLAB_00028f98:\n  start_00 = start;\n  if (pcVar11 != (char *)0x0) {\nLAB_00029020:\n    sb_kill(&t);\n    while (local_4c != (formal_entry *)0x0) {\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }\n    return pcVar11;\n  }\nLAB_00028fa0:\n  if (local_6c <= start_00) goto LAB_00029020;\n  pcVar11 = in->ptr;\n  bVar1 = pcVar11[start_00];\n  if (bVar1 == 0x26) {\n    start = start_00 + 1;\n    sb_reset(&t);\n    if (macro_mri == 0) {\n      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }\n    if (start < in->len) {\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = in->ptr;\n    }\n    pcVar11 = (char *)0x0;\n    sb_add_char(out,(int)pcVar7[start_00]);\n    local_6c = in->len;\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (local_6c <= start_00 + 1) goto LAB_0002913d;\n    bVar1 = pcVar11[start_00 + 1];\n    if (bVar1 == 0x28) {\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }\n    else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }\n  }\n  else {\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }\n    start = start_00 + 1;\n    sb_add_char(out,(int)(char)bVar1);\n  }\nLAB_00029007:\n  pcVar11 = (char *)0x0;\n  local_6c = in->len;\n  start_00 = start;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    formal = new_formal();\n    start = get_token(start,in,(sb *)&in->len,&formal->name);\n    pcVar11 = sb_terminate(&formal->name);\n    pvVar9 = hash_find(formal_hash,pcVar11);\n    if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }\n    start = sb_skip_comma(start,in);\n  } while (in->ptr[start] != '\n');\nLAB_00029749:\n  pcVar11 = (char *)0x0;\n  local_6c = in->len;\n  goto LAB_00028f98;\n}" primitive_type (pointer_declarator "* __regparm3\nmacro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,macro_entry *macro)" * (ERROR "__regparm3" identifier) (function_declarator "macro_expand_body(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,macro_entry *macro)" identifier (parameter_list "(sb *in,sb *out,formal_entry *formals,hash_control *formal_hash,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  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  formal_struct *pfVar4;\n  bool bVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  formal_entry *formal;\n  void *pvVar9;\n  int iVar10;\n  size_t start;\n  size_t start_00;\n  char *pcVar11;\n  uint local_6c;\n  int local_50;\n  formal_entry *local_4c;\n  sb t;\n  char buffer [12];\n  \n  start = 0;\n  pcVar11 = (char *)0x0;\n  sb_new(&t);\n  puVar6 = PTR__sch_istable_0007ff74;\n  local_6c = in->len;\n  local_50 = 0;\n  bVar5 = false;\n  local_4c = (formal_entry *)0x0;\nLAB_00028f98:\n  start_00 = start;\n  if (pcVar11 != (char *)0x0) {\nLAB_00029020:\n    sb_kill(&t);\n    while (local_4c != (formal_entry *)0x0) {\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }\n    return pcVar11;\n  }\nLAB_00028fa0:\n  if (local_6c <= start_00) goto LAB_00029020;\n  pcVar11 = in->ptr;\n  bVar1 = pcVar11[start_00];\n  if (bVar1 == 0x26) {\n    start = start_00 + 1;\n    sb_reset(&t);\n    if (macro_mri == 0) {\n      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }\n    if (start < in->len) {\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = in->ptr;\n    }\n    pcVar11 = (char *)0x0;\n    sb_add_char(out,(int)pcVar7[start_00]);\n    local_6c = in->len;\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (local_6c <= start_00 + 1) goto LAB_0002913d;\n    bVar1 = pcVar11[start_00 + 1];\n    if (bVar1 == 0x28) {\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }\n    else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }\n  }\n  else {\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }\n    start = start_00 + 1;\n    sb_add_char(out,(int)(char)bVar1);\n  }\nLAB_00029007:\n  pcVar11 = (char *)0x0;\n  local_6c = in->len;\n  start_00 = start;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    formal = new_formal();\n    start = get_token(start,in,(sb *)&in->len,&formal->name);\n    pcVar11 = sb_terminate(&formal->name);\n    pvVar9 = hash_find(formal_hash,pcVar11);\n    if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }\n    start = sb_skip_comma(start,in);\n  } while (in->ptr[start] != '\n');\nLAB_00029749:\n  pcVar11 = (char *)0x0;\n  local_6c = in->len;\n  goto LAB_00028f98;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "formal_struct *pfVar4;" type_identifier (pointer_declarator "*pfVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "formal_entry *formal;" type_identifier (pointer_declarator "*formal" * identifier) ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "size_t start;" primitive_type identifier ;) (declaration "size_t start_00;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "formal_entry *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "sb t;" type_identifier identifier ;) (declaration "char buffer [12];" primitive_type (array_declarator "buffer [12]" identifier [ number_literal ]) ;) (expression_statement "start = 0;" (assignment_expression "start = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (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 "puVar6 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar6 = PTR__sch_istable_0007ff74" identifier = identifier) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "local_4c = (formal_entry *)0x0;" (assignment_expression "local_4c = (formal_entry *)0x0" identifier = (cast_expression "(formal_entry *)0x0" ( (type_descriptor "formal_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00028f98:\n  start_00 = start;" statement_identifier : (expression_statement "start_00 = start;" (assignment_expression "start_00 = start" identifier = identifier) ;)) (if_statement "if (pcVar11 != (char *)0x0) {\nLAB_00029020:\n    sb_kill(&t);\n    while (local_4c != (formal_entry *)0x0) {\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }\n    return pcVar11;\n  }" if (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00029020:\n    sb_kill(&t);\n    while (local_4c != (formal_entry *)0x0) {\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }\n    return pcVar11;\n  }" { (labeled_statement "LAB_00029020:\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 (local_4c != (formal_entry *)0x0) {\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }" while (parenthesized_expression "(local_4c != (formal_entry *)0x0)" ( (binary_expression "local_4c != (formal_entry *)0x0" identifier != (cast_expression "(formal_entry *)0x0" ( (type_descriptor "formal_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pfVar4 = local_4c->next;\n      pcVar7 = sb_terminate(&local_4c->name);\n      hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));\n      del_formal(local_4c);\n      local_4c = pfVar4;\n    }" { (expression_statement "pfVar4 = local_4c->next;" (assignment_expression "pfVar4 = local_4c->next" identifier = (field_expression "local_4c->next" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = sb_terminate(&local_4c->name);" (assignment_expression "pcVar7 = sb_terminate(&local_4c->name)" identifier = (call_expression "sb_terminate(&local_4c->name)" identifier (argument_list "(&local_4c->name)" ( (pointer_expression "&local_4c->name" & (field_expression "local_4c->name" identifier -> field_identifier)) )))) ;) (expression_statement "hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0));" (call_expression "hash_delete(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0))" identifier (argument_list "(formal_hash,pcVar7,(uint)(pfVar4 == (formal_struct *)0x0))" ( identifier , identifier , (call_expression "(uint)(pfVar4 == (formal_struct *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pfVar4 == (formal_struct *)0x0)" ( (binary_expression "pfVar4 == (formal_struct *)0x0" identifier == (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ))) ;) (expression_statement "del_formal(local_4c);" (call_expression "del_formal(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (expression_statement "local_4c = pfVar4;" (assignment_expression "local_4c = pfVar4" identifier = identifier) ;) })) (return_statement "return pcVar11;" return identifier ;) })) (labeled_statement "LAB_00028fa0:\n  if (local_6c <= start_00) goto LAB_00029020;" statement_identifier : (if_statement "if (local_6c <= start_00) goto LAB_00029020;" if (parenthesized_expression "(local_6c <= start_00)" ( (binary_expression "local_6c <= start_00" identifier <= identifier) )) (goto_statement "goto LAB_00029020;" goto statement_identifier ;))) (expression_statement "pcVar11 = in->ptr;" (assignment_expression "pcVar11 = in->ptr" identifier = (field_expression "in->ptr" identifier -> field_identifier)) ;) (expression_statement "bVar1 = pcVar11[start_00];" (assignment_expression "bVar1 = pcVar11[start_00]" identifier = (subscript_expression "pcVar11[start_00]" identifier [ identifier ])) ;) (if_statement "if (bVar1 == 0x26) {\n    start = start_00 + 1;\n    sb_reset(&t);\n    if (macro_mri == 0) {\n      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }\n    if (start < in->len) {\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = in->ptr;\n    }\n    pcVar11 = (char *)0x0;\n    sb_add_char(out,(int)pcVar7[start_00]);\n    local_6c = in->len;\n    goto LAB_00028f98;\n  }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n    start = start_00 + 1;\n    sb_reset(&t);\n    if (macro_mri == 0) {\n      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }\n    if (start < in->len) {\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = in->ptr;\n    }\n    pcVar11 = (char *)0x0;\n    sb_add_char(out,(int)pcVar7[start_00]);\n    local_6c = in->len;\n    goto LAB_00028f98;\n  }" { (expression_statement "start = start_00 + 1;" (assignment_expression "start = start_00 + 1" identifier = (binary_expression "start_00 + 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      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }" if (parenthesized_expression "(macro_mri == 0)" ( (binary_expression "macro_mri == 0" identifier == number_literal) )) (compound_statement "{\n      start = sub_actual(start,in,&t,formal_hash,0x26,out,0);\n      local_6c = in->len;\n      pcVar11 = (char *)0x0;\n      goto LAB_00028f98;\n    }" { (expression_statement "start = sub_actual(start,in,&t,formal_hash,0x26,out,0);" (assignment_expression "start = sub_actual(start,in,&t,formal_hash,0x26,out,0)" identifier = (call_expression "sub_actual(start,in,&t,formal_hash,0x26,out,0)" identifier (argument_list "(start,in,&t,formal_hash,0x26,out,0)" ( identifier , identifier , (pointer_expression "&t" & identifier) , identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (if_statement "if (start < in->len) {\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = in->ptr;\n    }" if (parenthesized_expression "(start < in->len)" ( (binary_expression "start < in->len" identifier < (field_expression "in->len" identifier -> field_identifier)) )) (compound_statement "{\n      pcVar7 = in->ptr;\n      if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }" { (expression_statement "pcVar7 = in->ptr;" (assignment_expression "pcVar7 = in->ptr" identifier = (field_expression "in->ptr" identifier -> field_identifier)) ;) (if_statement "if (pcVar7[start] == '&') {\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(pcVar7[start] == '&')" ( (binary_expression "pcVar7[start] == '&'" (subscript_expression "pcVar7[start]" identifier [ identifier ]) == (char_literal "'&'" ' character ')) )) (compound_statement "{\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" { (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1);" (assignment_expression "start = sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1)" identifier = (call_expression "sub_actual(start_00 + 2,in,&t,formal_hash,0x27,out,1)" identifier (argument_list "(start_00 + 2,in,&t,formal_hash,0x27,out,1)" ( (binary_expression "start_00 + 2" identifier + number_literal) , identifier , (pointer_expression "&t" & identifier) , identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }) (else_clause "else {\n      pcVar7 = in->ptr;\n    }" else (compound_statement "{\n      pcVar7 = in->ptr;\n    }" { (expression_statement "pcVar7 = in->ptr;" (assignment_expression "pcVar7 = in->ptr" identifier = (field_expression "in->ptr" identifier -> field_identifier)) ;) }))) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sb_add_char(out,(int)pcVar7[start_00]);" (call_expression "sb_add_char(out,(int)pcVar7[start_00])" identifier (argument_list "(out,(int)pcVar7[start_00])" ( identifier , (cast_expression "(int)pcVar7[start_00]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar7[start_00]" identifier [ identifier ])) ))) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x5c) {\n    if (local_6c <= start_00 + 1) goto LAB_0002913d;\n    bVar1 = pcVar11[start_00 + 1];\n    if (bVar1 == 0x28) {\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }\n    else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }\n  }\n  else {\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }\n    start = start_00 + 1;\n    sb_add_char(out,(int)(char)bVar1);\n  }" if (parenthesized_expression "(bVar1 == 0x5c)" ( (binary_expression "bVar1 == 0x5c" identifier == number_literal) )) (compound_statement "{\n    if (local_6c <= start_00 + 1) goto LAB_0002913d;\n    bVar1 = pcVar11[start_00 + 1];\n    if (bVar1 == 0x28) {\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }\n    else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }\n  }" { (if_statement "if (local_6c <= start_00 + 1) goto LAB_0002913d;" if (parenthesized_expression "(local_6c <= start_00 + 1)" ( (binary_expression "local_6c <= start_00 + 1" identifier <= (binary_expression "start_00 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0002913d;" goto statement_identifier ;)) (expression_statement "bVar1 = pcVar11[start_00 + 1];" (assignment_expression "bVar1 = pcVar11[start_00 + 1]" identifier = (subscript_expression "pcVar11[start_00 + 1]" identifier [ (binary_expression "start_00 + 1" identifier + number_literal) ])) ;) (if_statement "if (bVar1 == 0x28) {\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }\n    else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }" if (parenthesized_expression "(bVar1 == 0x28)" ( (binary_expression "bVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n      start = start_00 + 2;\n      if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }\n      if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar11);\n    }" { (expression_statement "start = start_00 + 2;" (assignment_expression "start = start_00 + 2" identifier = (binary_expression "start_00 + 2" identifier + number_literal)) ;) (if_statement "if (start < local_6c) {\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }" if (parenthesized_expression "(start < local_6c)" ( (binary_expression "start < local_6c" identifier < identifier) )) (compound_statement "{\n        cVar2 = pcVar11[start];\n        while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }\n      }" { (expression_statement "cVar2 = pcVar11[start];" (assignment_expression "cVar2 = pcVar11[start]" identifier = (subscript_expression "pcVar11[start]" identifier [ identifier ])) ;) (while_statement "while( true ) {\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n          start = start + 1;\n          sb_add_char(out,(int)cVar2);\n          local_6c = in->len;\n          if (local_6c <= start) break;\n          cVar2 = in->ptr[start];\n        }" { (if_statement "if (cVar2 == ')') {\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }" if (parenthesized_expression "(cVar2 == ')')" ( (binary_expression "cVar2 == ')'" identifier == (char_literal "')'" ' character ')) )) (compound_statement "{\n            start = start + 1;\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }" { (expression_statement "start = start + 1;" (assignment_expression "start = start + 1" identifier = (binary_expression "start + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "start = start + 1;" (assignment_expression "start = start + 1" identifier = (binary_expression "start + 1" identifier + number_literal)) ;) (expression_statement "sb_add_char(out,(int)cVar2);" (call_expression "sb_add_char(out,(int)cVar2)" identifier (argument_list "(out,(int)cVar2)" ( identifier , (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (if_statement "if (local_6c <= start) break;" if (parenthesized_expression "(local_6c <= start)" ( (binary_expression "local_6c <= start" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar2 = in->ptr[start];" (assignment_expression "cVar2 = in->ptr[start]" identifier = (subscript_expression "in->ptr[start]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ])) ;) })) })) (if_statement "if (macro == (macro_entry *)0x0) {\n        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\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        pcVar11 = (char *)dcgettext(0,"missing `)\'",5);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" { (expression_statement "pcVar11 = (char *)dcgettext(0,"missing `)\'",5);" (assignment_expression "pcVar11 = (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 "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "pcVar11 = (char *)dcgettext(0,"missing `)\'",5);" (assignment_expression "pcVar11 = (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_50 + macro->line,pcVar11);" (call_expression "as_bad_where(macro->file,local_50 + macro->line,pcVar11)" identifier (argument_list "(macro->file,local_50 + macro->line,pcVar11)" ( (field_expression "macro->file" identifier -> field_identifier) , (binary_expression "local_50 + macro->line" identifier + (field_expression "macro->line" identifier -> field_identifier)) , identifier ))) ;) }) (else_clause "else if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }" else (if_statement "if (bVar1 == 0x40) {\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\n      start = start_00 + 2;\n      pcVar11 = buffer;\n      sprintf(pcVar11,"%d",macro_number);\nLAB_000293b0:\n      sb_add_string(out,pcVar11);\n    }" { (expression_statement "start = start_00 + 2;" (assignment_expression "start = start_00 + 2" identifier = (binary_expression "start_00 + 2" identifier + number_literal)) ;) (expression_statement "pcVar11 = buffer;" (assignment_expression "pcVar11 = buffer" identifier = identifier) ;) (expression_statement "sprintf(pcVar11,"%d",macro_number);" (call_expression "sprintf(pcVar11,"%d",macro_number)" identifier (argument_list "(pcVar11,"%d",macro_number)" ( identifier , (string_literal ""%d"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_000293b0:\n      sb_add_string(out,pcVar11);" statement_identifier : (expression_statement "sb_add_string(out,pcVar11);" (call_expression "sb_add_string(out,pcVar11)" identifier (argument_list "(out,pcVar11)" ( identifier , identifier ))) ;)) }) (else_clause "else {\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }" else (compound_statement "{\n      if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n      start = start_00 + 2;\n      sb_add_char(out,0x5c);\n      sb_add_char(out,0x26);\n    }" { (if_statement "if (bVar1 != 0x26) {\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(bVar1 != 0x26)" ( (binary_expression "bVar1 != 0x26" identifier != number_literal) )) (compound_statement "{\n        if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        sb_reset(&t);\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" { (if_statement "if (macro_mri != 0) {\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }" if (parenthesized_expression "(macro_mri != 0)" ( (binary_expression "macro_mri != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }\n        }" { (expression_statement "iVar8 = (int)(char)bVar1;" (assignment_expression "iVar8 = (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 *)(puVar6 + (uint)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar6 + (uint)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(puVar6 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(puVar6 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + (uint)bVar1 * 2)" ( (binary_expression "puVar6 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\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            if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\n            }\n            start = start_00 + 2;\n            if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            pcVar11 = (char *)0x0;\n            goto LAB_00028f98;\n          }" { (if_statement "if ((uVar3 & 4) == 0) {\n              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }\n            else {\n              iVar10 = iVar8 + -0x30;\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              iVar10 = iVar8 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -0x37;\n              }\n            }" { (expression_statement "iVar10 = iVar8 + -0x57;" (assignment_expression "iVar10 = iVar8 + -0x57" identifier = (binary_expression "iVar8 + -0x57" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 0x80) != 0) {\n                iVar10 = iVar8 + -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                iVar10 = iVar8 + -0x37;\n              }" { (expression_statement "iVar10 = iVar8 + -0x37;" (assignment_expression "iVar10 = iVar8 + -0x37" identifier = (binary_expression "iVar8 + -0x37" identifier + number_literal)) ;) })) }) (else_clause "else {\n              iVar10 = iVar8 + -0x30;\n            }" else (compound_statement "{\n              iVar10 = iVar8 + -0x30;\n            }" { (expression_statement "iVar10 = iVar8 + -0x30;" (assignment_expression "iVar10 = iVar8 + -0x30" identifier = (binary_expression "iVar8 + -0x30" identifier + number_literal)) ;) }))) (expression_statement "start = start_00 + 2;" (assignment_expression "start = start_00 + 2" identifier = (binary_expression "start_00 + 2" identifier + number_literal)) ;) (if_statement "if (formals != (formal_entry *)0x0) {\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }" 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)) )) (compound_statement "{\n              iVar8 = formals->index;\n              pfVar4 = formals;\n              while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }\n              if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }\n              goto LAB_00029007;\n            }" { (expression_statement "iVar8 = formals->index;" (assignment_expression "iVar8 = formals->index" identifier = (field_expression "formals->index" identifier -> field_identifier)) ;) (expression_statement "pfVar4 = formals;" (assignment_expression "pfVar4 = formals" identifier = identifier) ;) (while_statement "while (iVar10 + -1 != iVar8) {\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }" while (parenthesized_expression "(iVar10 + -1 != iVar8)" ( (binary_expression "iVar10 + -1 != iVar8" (binary_expression "iVar10 + -1" identifier + number_literal) != identifier) )) (compound_statement "{\n                pfVar4 = pfVar4->next;\n                if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }\n                iVar8 = pfVar4->index;\n              }" { (expression_statement "pfVar4 = pfVar4->next;" (assignment_expression "pfVar4 = pfVar4->next" identifier = (field_expression "pfVar4->next" identifier -> field_identifier)) ;) (if_statement "if (pfVar4 == (formal_struct *)0x0) {\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }" if (parenthesized_expression "(pfVar4 == (formal_struct *)0x0)" ( (binary_expression "pfVar4 == (formal_struct *)0x0" identifier == (cast_expression "(formal_struct *)0x0" ( (type_descriptor "formal_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pcVar11 = (char *)0x0;\n                  goto LAB_00028f98;\n                }" { (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "iVar8 = pfVar4->index;" (assignment_expression "iVar8 = pfVar4->index" identifier = (field_expression "pfVar4->index" identifier -> field_identifier)) ;) })) (if_statement "if ((pfVar4->actual).len == 0) {\n                sb_add_sb(out,&pfVar4->def);\n              }\n              else {\n                sb_add_sb(out,&pfVar4->actual);\n              }" if (parenthesized_expression "((pfVar4->actual).len == 0)" ( (binary_expression "(pfVar4->actual).len == 0" (field_expression "(pfVar4->actual).len" (parenthesized_expression "(pfVar4->actual)" ( (field_expression "pfVar4->actual" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n                sb_add_sb(out,&pfVar4->def);\n              }" { (expression_statement "sb_add_sb(out,&pfVar4->def);" (call_expression "sb_add_sb(out,&pfVar4->def)" identifier (argument_list "(out,&pfVar4->def)" ( identifier , (pointer_expression "&pfVar4->def" & (field_expression "pfVar4->def" identifier -> field_identifier)) ))) ;) }) (else_clause "else {\n                sb_add_sb(out,&pfVar4->actual);\n              }" else (compound_statement "{\n                sb_add_sb(out,&pfVar4->actual);\n              }" { (expression_statement "sb_add_sb(out,&pfVar4->actual);" (call_expression "sb_add_sb(out,&pfVar4->actual)" identifier (argument_list "(out,&pfVar4->actual)" ( identifier , (pointer_expression "&pfVar4->actual" & (field_expression "pfVar4->actual" identifier -> field_identifier)) ))) ;) }))) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (labeled_statement "LAB_0002933f:\n            pcVar11 = (char *)0x0;" statement_identifier : (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002913d:\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 "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0);" (assignment_expression "start = sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0)" identifier = (call_expression "sub_actual(start_00 + 1,in,&t,formal_hash,0x27,out,0)" identifier (argument_list "(start_00 + 1,in,&t,formal_hash,0x27,out,0)" ( (binary_expression "start_00 + 1" identifier + number_literal) , identifier , (pointer_expression "&t" & identifier) , identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "start = start_00 + 2;" (assignment_expression "start = start_00 + 2" identifier = (binary_expression "start_00 + 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 "sb_add_char(out,0x26);" (call_expression "sb_add_char(out,0x26)" identifier (argument_list "(out,0x26)" ( identifier , number_literal ))) ;) }))))) }) (else_clause "else {\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }\n    start = start_00 + 1;\n    sb_add_char(out,(int)(char)bVar1);\n  }" else (compound_statement "{\n    if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }\n    start = start_00 + 1;\n    sb_add_char(out,(int)(char)bVar1);\n  }" { (if_statement "if (macro_mri == 0 && macro_alternate == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\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 (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }" { (if_statement "if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\nLAB_00029258:\n        bVar5 = (bool)(bVar5 ^ 1);\n      }" { (labeled_statement "LAB_00029258:\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_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" else (if_statement "if (bVar1 == 0x40) {\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_00029320:\n        start = start_00 + 1;\n        if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }" { (labeled_statement "LAB_00029320:\n        start = start_00 + 1;" statement_identifier : (expression_statement "start = start_00 + 1;" (assignment_expression "start = start_00 + 1" identifier = (binary_expression "start_00 + 1" identifier + number_literal)) ;)) (if_statement "if (macro_strip_at != 0) {\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" if (parenthesized_expression "(macro_strip_at != 0)" ( (binary_expression "macro_strip_at != 0" identifier != number_literal) )) (compound_statement "{\n          if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" { (if_statement "if ((start < local_6c) && (pcVar11[start] == '@')) {\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }" if (parenthesized_expression "((start < local_6c) && (pcVar11[start] == '@'))" ( (binary_expression "(start < local_6c) && (pcVar11[start] == '@')" (parenthesized_expression "(start < local_6c)" ( (binary_expression "start < local_6c" identifier < identifier) )) && (parenthesized_expression "(pcVar11[start] == '@')" ( (binary_expression "pcVar11[start] == '@'" (subscript_expression "pcVar11[start]" identifier [ identifier ]) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            start = start_00 + 2;\n            sb_add_char(out,0x40);\n            goto LAB_00029007;\n          }" { (expression_statement "start = start_00 + 2;" (assignment_expression "start = start_00 + 2" identifier = (binary_expression "start_00 + 2" identifier + number_literal)) ;) (expression_statement "sb_add_char(out,0x40);" (call_expression "sb_add_char(out,0x40)" identifier (argument_list "(out,0x40)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002933f;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" else (compound_statement "{\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" { (labeled_statement "LAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);" statement_identifier : (expression_statement "local_50 = local_50 + (uint)(bVar1 == 10);" (assignment_expression "local_50 = local_50 + (uint)(bVar1 == 10)" identifier = (binary_expression "local_50 + (uint)(bVar1 == 10)" identifier + (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) ))))) ;)) }))))) }) (else_clause "else {\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }" else (compound_statement "{\n      if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;\n      if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }\n    }" { (if_statement "if ((lex_type[bVar1] & 2) != 0) {\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "((lex_type[bVar1] & 2) != 0)" ( (binary_expression "(lex_type[bVar1] & 2) != 0" (parenthesized_expression "(lex_type[bVar1] & 2)" ( (binary_expression "lex_type[bVar1] & 2" (subscript_expression "lex_type[bVar1]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }\n        pcVar11 = (char *)0x0;\n        start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" { (if_statement "if (bVar5) {\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }\n        else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n          if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;\n          if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }\n          iVar8 = 0x40;\n        }" { (if_statement "if ((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))\n          goto LAB_00029190;" if (parenthesized_expression "((macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@'))))" ( (binary_expression "(macro_strip_at != 0) && ((start_00 == 0 || (pcVar11[start_00 - 1] != '@')))" (parenthesized_expression "(macro_strip_at != 0)" ( (binary_expression "macro_strip_at != 0" identifier != number_literal) )) && (parenthesized_expression "((start_00 == 0 || (pcVar11[start_00 - 1] != '@')))" ( (parenthesized_expression "(start_00 == 0 || (pcVar11[start_00 - 1] != '@'))" ( (binary_expression "start_00 == 0 || (pcVar11[start_00 - 1] != '@')" (binary_expression "start_00 == 0" identifier == number_literal) || (parenthesized_expression "(pcVar11[start_00 - 1] != '@')" ( (binary_expression "pcVar11[start_00 - 1] != '@'" (subscript_expression "pcVar11[start_00 - 1]" identifier [ (binary_expression "start_00 - 1" identifier - number_literal) ]) != (char_literal "'@'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00029190;" goto statement_identifier ;)) (if_statement "if ((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5)) {\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }" if (parenthesized_expression "((macro == (macro_entry *)0x0) || (local_6c <= start_00 + 5))" ( (binary_expression "(macro == (macro_entry *)0x0) || (local_6c <= start_00 + 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 "(local_6c <= start_00 + 5)" ( (binary_expression "local_6c <= start_00 + 5" identifier <= (binary_expression "start_00 + 5" identifier + number_literal)) ))) )) (compound_statement "{\nLAB_000290bf:\n            sb_reset(&t);\n            if ((macro_strip_at == 0) || (!bVar5)) goto LAB_0002928b;\n          }" { (labeled_statement "LAB_000290bf:\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) || (!bVar5)) goto LAB_0002928b;" if (parenthesized_expression "((macro_strip_at == 0) || (!bVar5))" ( (binary_expression "(macro_strip_at == 0) || (!bVar5)" (parenthesized_expression "(macro_strip_at == 0)" ( (binary_expression "macro_strip_at == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) ))) )) (goto_statement "goto LAB_0002928b;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }" else (compound_statement "{\nLAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);\n            if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            sb_reset(&t);\n            if (macro_strip_at == 0) goto LAB_0002928b;\n          }" { (labeled_statement "LAB_000292c0:\n            iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);" statement_identifier : (expression_statement "iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5);" (assignment_expression "iVar8 = strncasecmp(pcVar11 + start_00,"LOCAL",5)" identifier = (call_expression "strncasecmp(pcVar11 + start_00,"LOCAL",5)" identifier (argument_list "(pcVar11 + start_00,"LOCAL",5)" ( (binary_expression "pcVar11 + start_00" identifier + identifier) , (string_literal ""LOCAL"" " string_content ") , number_literal )))) ;)) (if_statement "if ((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))\n            goto LAB_000290bf;" if (parenthesized_expression "((iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))))" ( (binary_expression "(iVar8 != 0) || ((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t')))" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "((pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t')))" ( (parenthesized_expression "(pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t'))" ( (binary_expression "pcVar11[start_00 + 5] != ' ' && (pcVar11[start_00 + 5] != '\t')" (binary_expression "pcVar11[start_00 + 5] != ' '" (subscript_expression "pcVar11[start_00 + 5]" identifier [ (binary_expression "start_00 + 5" identifier + number_literal) ]) != (char_literal "' '" ' character ')) && (parenthesized_expression "(pcVar11[start_00 + 5] != '\t')" ( (binary_expression "pcVar11[start_00 + 5] != '\t'" (subscript_expression "pcVar11[start_00 + 5]" identifier [ (binary_expression "start_00 + 5" identifier + number_literal) ]) != (char_literal "'\t'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_000290bf;" goto statement_identifier ;)) (if_statement "if (!bVar5) {\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n              start = sb_skip_white(start_00 + 5,in);\n              if (in->ptr[start] == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" { (expression_statement "start = sb_skip_white(start_00 + 5,in);" (assignment_expression "start = sb_skip_white(start_00 + 5,in)" identifier = (call_expression "sb_skip_white(start_00 + 5,in)" identifier (argument_list "(start_00 + 5,in)" ( (binary_expression "start_00 + 5" identifier + number_literal) , identifier )))) ;) (if_statement "if (in->ptr[start] == '\n') goto LAB_00029749;" if (parenthesized_expression "(in->ptr[start] == '\n')" ( (binary_expression "in->ptr[start] == '\n'" (subscript_expression "in->ptr[start]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ]) == (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00029749;" goto statement_identifier ;)) (goto_statement "goto LAB_000296a9;" goto 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) goto LAB_0002928b;" if (parenthesized_expression "(macro_strip_at == 0)" ( (binary_expression "macro_strip_at == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002928b;" goto statement_identifier ;)) }))) (expression_statement "iVar8 = 0x40;" (assignment_expression "iVar8 = 0x40" identifier = number_literal) ;) }) (else_clause "else if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }" else (if_statement "if (macro == (macro_entry *)0x0) {\n          sb_reset(&t);\n          iVar8 = 0x27;\n        }\n        else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 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          iVar8 = 0x27;\n        }" { (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (expression_statement "iVar8 = 0x27;" (assignment_expression "iVar8 = 0x27" identifier = number_literal) ;) }) (else_clause "else {\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }" else (compound_statement "{\n          if (start_00 + 5 < local_6c) goto LAB_000292c0;\n          sb_reset(&t);\nLAB_0002928b:\n          iVar8 = 0x27;\n        }" { (if_statement "if (start_00 + 5 < local_6c) goto LAB_000292c0;" if (parenthesized_expression "(start_00 + 5 < local_6c)" ( (binary_expression "start_00 + 5 < local_6c" (binary_expression "start_00 + 5" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_000292c0;" goto statement_identifier ;)) (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (labeled_statement "LAB_0002928b:\n          iVar8 = 0x27;" statement_identifier : (expression_statement "iVar8 = 0x27;" (assignment_expression "iVar8 = 0x27" identifier = number_literal) ;)) }))))) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1);" (assignment_expression "start = sub_actual(start_00,in,&t,formal_hash,iVar8,out,1)" identifier = (call_expression "sub_actual(start_00,in,&t,formal_hash,iVar8,out,1)" identifier (argument_list "(start_00,in,&t,formal_hash,iVar8,out,1)" ( identifier , identifier , (pointer_expression "&t" & identifier) , identifier , identifier , identifier , number_literal )))) ;) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (labeled_statement "LAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;" statement_identifier : (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))) goto LAB_00029258;" if (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0))))" ( (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (macro_mri != 0)))" (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) || (parenthesized_expression "((bVar1 == 0x27 && (macro_mri != 0)))" ( (parenthesized_expression "(bVar1 == 0x27 && (macro_mri != 0))" ( (binary_expression "bVar1 == 0x27 && (macro_mri != 0)" (binary_expression "bVar1 == 0x27" identifier == number_literal) && (parenthesized_expression "(macro_mri != 0)" ( (binary_expression "macro_mri != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00029258;" goto statement_identifier ;))) (if_statement "if (bVar1 == 0x40) goto LAB_00029320;" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_00029320;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x3d) || (macro_mri == 0)) goto LAB_00028fea;" if (parenthesized_expression "((bVar1 != 0x3d) || (macro_mri == 0))" ( (binary_expression "(bVar1 != 0x3d) || (macro_mri == 0)" (parenthesized_expression "(bVar1 != 0x3d)" ( (binary_expression "bVar1 != 0x3d" identifier != number_literal) )) || (parenthesized_expression "(macro_mri == 0)" ( (binary_expression "macro_mri == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00028fea;" goto statement_identifier ;)) (if_statement "if ((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')) {\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "((start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '='))" ( (binary_expression "(start_00 + 1 < local_6c) && (pcVar11[start_00 + 1] == '=')" (parenthesized_expression "(start_00 + 1 < local_6c)" ( (binary_expression "start_00 + 1 < local_6c" (binary_expression "start_00 + 1" identifier + number_literal) < identifier) )) && (parenthesized_expression "(pcVar11[start_00 + 1] == '=')" ( (binary_expression "pcVar11[start_00 + 1] == '='" (subscript_expression "pcVar11[start_00 + 1]" identifier [ (binary_expression "start_00 + 1" identifier + number_literal) ]) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        sb_reset(&t);\n        start = get_token(start_00 + 2,in,(sb *)&in->len,&t);\n        pcVar11 = sb_terminate(&t);\n        pvVar9 = hash_find(formal_hash,pcVar11);\n        if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }\n        sb_add_char(out,0x3d);\n        sb_add_char(out,0x3d);\n        sb_add_sb(out,&t);\n        local_6c = in->len;\n        pcVar11 = (char *)0x0;\n        goto LAB_00028f98;\n      }" { (expression_statement "sb_reset(&t);" (call_expression "sb_reset(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))) ;) (expression_statement "start = get_token(start_00 + 2,in,(sb *)&in->len,&t);" (assignment_expression "start = get_token(start_00 + 2,in,(sb *)&in->len,&t)" identifier = (call_expression "get_token(start_00 + 2,in,(sb *)&in->len,&t)" identifier (argument_list "(start_00 + 2,in,(sb *)&in->len,&t)" ( (binary_expression "start_00 + 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 "pcVar11 = sb_terminate(&t);" (assignment_expression "pcVar11 = sb_terminate(&t)" identifier = (call_expression "sb_terminate(&t)" identifier (argument_list "(&t)" ( (pointer_expression "&t" & identifier) )))) ;) (expression_statement "pvVar9 = hash_find(formal_hash,pcVar11);" (assignment_expression "pvVar9 = hash_find(formal_hash,pcVar11)" identifier = (call_expression "hash_find(formal_hash,pcVar11)" identifier (argument_list "(formal_hash,pcVar11)" ( identifier , identifier )))) ;) (if_statement "if (pvVar9 != (void *)0x0) {\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }" if (parenthesized_expression "(pvVar9 != (void *)0x0)" ( (binary_expression "pvVar9 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }\n          sb_add_char(out,0x30);\n          goto LAB_00029007;\n        }" { (if_statement "if (*(int *)((int)pvVar9 + 0x20) != 0) {\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }" if (parenthesized_expression "(*(int *)((int)pvVar9 + 0x20) != 0)" ( (binary_expression "*(int *)((int)pvVar9 + 0x20) != 0" (pointer_expression "*(int *)((int)pvVar9 + 0x20)" * (cast_expression "(int *)((int)pvVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar9 + 0x20)" ( (binary_expression "(int)pvVar9 + 0x20" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n            pcVar11 = "-1";\n            goto LAB_000293b0;\n          }" { (expression_statement "pcVar11 = "-1";" (assignment_expression "pcVar11 = "-1"" identifier = (string_literal ""-1"" " string_content ")) ;) (goto_statement "goto LAB_000293b0;" goto statement_identifier ;) })) (expression_statement "sb_add_char(out,0x30);" (call_expression "sb_add_char(out,0x30)" identifier (argument_list "(out,0x30)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (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 "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }))) (expression_statement "start = start_00 + 1;" (assignment_expression "start = start_00 + 1" identifier = (binary_expression "start_00 + 1" identifier + number_literal)) ;) (expression_statement "sb_add_char(out,(int)(char)bVar1);" (call_expression "sb_add_char(out,(int)(char)bVar1)" identifier (argument_list "(out,(int)(char)bVar1)" ( identifier , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) }))) (labeled_statement "LAB_00029007:\n  pcVar11 = (char *)0x0;" statement_identifier : (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (expression_statement "start_00 = start;" (assignment_expression "start_00 = start" identifier = identifier) ;) (goto_statement "goto LAB_00028fa0;" goto statement_identifier ;) (labeled_statement "LAB_000296a9:\n  do {\n    formal = new_formal();\n    start = get_token(start,in,(sb *)&in->len,&formal->name);\n    pcVar11 = sb_terminate(&formal->name);\n    pvVar9 = hash_find(formal_hash,pcVar11);\n    if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }\n    start = sb_skip_comma(start,in);\n  } while (in->ptr[start] != '\n');" statement_identifier : (do_statement "do {\n    formal = new_formal();\n    start = get_token(start,in,(sb *)&in->len,&formal->name);\n    pcVar11 = sb_terminate(&formal->name);\n    pvVar9 = hash_find(formal_hash,pcVar11);\n    if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }\n    start = sb_skip_comma(start,in);\n  } while (in->ptr[start] != '\n');" do (compound_statement "{\n    formal = new_formal();\n    start = get_token(start,in,(sb *)&in->len,&formal->name);\n    pcVar11 = sb_terminate(&formal->name);\n    pvVar9 = hash_find(formal_hash,pcVar11);\n    if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }\n    start = sb_skip_comma(start,in);\n  }" { (expression_statement "formal = new_formal();" (assignment_expression "formal = new_formal()" identifier = (call_expression "new_formal()" identifier (argument_list "()" ( )))) ;) (expression_statement "start = get_token(start,in,(sb *)&in->len,&formal->name);" (assignment_expression "start = get_token(start,in,(sb *)&in->len,&formal->name)" identifier = (call_expression "get_token(start,in,(sb *)&in->len,&formal->name)" identifier (argument_list "(start,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 "pcVar11 = sb_terminate(&formal->name);" (assignment_expression "pcVar11 = 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 "pvVar9 = hash_find(formal_hash,pcVar11);" (assignment_expression "pvVar9 = hash_find(formal_hash,pcVar11)" identifier = (call_expression "hash_find(formal_hash,pcVar11)" identifier (argument_list "(formal_hash,pcVar11)" ( identifier , identifier )))) ;) (if_statement "if (pvVar9 == (void *)0x0) {\n      formal->index = -3;\n      formal->next = local_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }" if (parenthesized_expression "(pvVar9 == (void *)0x0)" ( (binary_expression "pvVar9 == (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_4c;\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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);\n      sb_add_string(&formal->actual,buffer);\n      pcVar11 = hash_jam(formal_hash,pcVar11,formal);\n      local_4c = formal;\n      if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\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_4c;" (assignment_expression "formal->next = local_4c" (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",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt);" (call_expression "sprintf(buffer,".LL%04x",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt)" identifier (argument_list "(buffer,".LL%04x",macro_expand_body::lexical_block_13::lexical_block_13_2::loccnt)" ( identifier , (string_literal "".LL%04x"" " string_content ") , (ERROR "macro_expand_body::lexical_block_13::lexical_block_13_2::" identifier : : identifier : : identifier : :) identifier ))) ;) (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 "pcVar11 = hash_jam(formal_hash,pcVar11,formal);" (assignment_expression "pcVar11 = hash_jam(formal_hash,pcVar11,formal)" identifier = (call_expression "hash_jam(formal_hash,pcVar11,formal)" identifier (argument_list "(formal_hash,pcVar11,formal)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_4c = formal;" (assignment_expression "local_4c = formal" identifier = identifier) ;) (if_statement "if (pcVar11 != (char *)0x0) {\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_6c = in->len;\n        goto LAB_00028f98;\n      }" { (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }) (else_clause "else {\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }" else (compound_statement "{\n      pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11);\n      del_formal(formal);\n    }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "pcVar7 = (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_50 + macro->line,pcVar7,pcVar11);" (call_expression "as_bad_where(macro->file,local_50 + macro->line,pcVar7,pcVar11)" identifier (argument_list "(macro->file,local_50 + macro->line,pcVar7,pcVar11)" ( (field_expression "macro->file" identifier -> field_identifier) , (binary_expression "local_50 + 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 "start = sb_skip_comma(start,in);" (assignment_expression "start = sb_skip_comma(start,in)" identifier = (call_expression "sb_skip_comma(start,in)" identifier (argument_list "(start,in)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(in->ptr[start] != '\n')" ( (binary_expression "in->ptr[start] != '\n'" (subscript_expression "in->ptr[start]" (field_expression "in->ptr" identifier -> field_identifier) [ identifier ]) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (labeled_statement "LAB_00029749:\n  pcVar11 = (char *)0x0;" statement_identifier : (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_6c = in->len;" (assignment_expression "local_6c = in->len" identifier = (field_expression "in->len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })))
(translation_unit "int __regparm3\nFUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}\n\n" (function_definition "int __regparm3\nFUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined1 local_3c [12];" type_identifier (array_declarator "local_3c [12]" identifier [ number_literal ]) ;) (declaration "char local_30 [28];" primitive_type (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x28f3f;" (assignment_expression "uStack_14 = 0x28f3f" identifier = number_literal) ;) (expression_statement "FUN_00035790(local_3c);" (call_expression "FUN_00035790(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "puVar5 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar5 = PTR__sch_istable_0007ff74" identifier = identifier) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00028f98:\n  uVar11 = uVar10;" statement_identifier : (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;)) (if_statement "if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }" { (labeled_statement "LAB_00029020:\n    FUN_000357d0(local_3c);" statement_identifier : (expression_statement "FUN_000357d0(local_3c);" (call_expression "FUN_000357d0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;)) (while_statement "while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }" while (parenthesized_expression "(local_4c != (int *)0x0)" ( (binary_expression "local_4c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }" { (expression_statement "piVar14 = local_4c + 1;" (assignment_expression "piVar14 = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "local_4c = (int *)*local_4c;" (assignment_expression "local_4c = (int *)*local_4c" identifier = (cast_expression "(int *)*local_4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_4c" * identifier))) ;) (expression_statement "uVar6 = FUN_00035970(piVar14);" (assignment_expression "uVar6 = FUN_00035970(piVar14)" identifier = (call_expression "FUN_00035970(piVar14)" identifier (argument_list "(piVar14)" ( identifier )))) ;) (expression_statement "FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);" (call_expression "FUN_00025530(param_4,uVar6,local_4c == (int *)0x0)" identifier (argument_list "(param_4,uVar6,local_4c == (int *)0x0)" ( identifier , identifier , (binary_expression "local_4c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) (expression_statement "FUN_00028bf0();" (call_expression "FUN_00028bf0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar12;" return identifier ;) })) (labeled_statement "LAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;" statement_identifier : (if_statement "if (uVar13 <= uVar11) goto LAB_00029020;" if (parenthesized_expression "(uVar13 <= uVar11)" ( (binary_expression "uVar13 <= uVar11" identifier <= identifier) )) (goto_statement "goto LAB_00029020;" goto statement_identifier ;))) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar12 + uVar11);" (assignment_expression "bVar1 = *(byte *)(iVar12 + uVar11)" identifier = (pointer_expression "*(byte *)(iVar12 + uVar11)" * (cast_expression "(byte *)(iVar12 + uVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11)" ( (binary_expression "iVar12 + uVar11" identifier + identifier) ))))) ;) (if_statement "if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }" if (parenthesized_expression "(bVar1 == 0x26)" ( (binary_expression "bVar1 == 0x26" identifier == number_literal) )) (compound_statement "{\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }" { (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (if_statement "if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }" if (parenthesized_expression "(DAT_00088c08 == 0)" ( (binary_expression "DAT_00088c08 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }" { (expression_statement "uVar10 = FUN_00028d50(param_4,0x26,param_2,0);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x26,param_2,0)" identifier = (call_expression "FUN_00028d50(param_4,0x26,param_2,0)" identifier (argument_list "(param_4,0x26,param_2,0)" ( identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (if_statement "if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }" if (parenthesized_expression "(uVar10 < (uint)param_1[1])" ( (binary_expression "uVar10 < (uint)param_1[1]" identifier < (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }" { (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + uVar10) == '&')" ( (binary_expression "*(char *)(iVar7 + uVar10) == '&'" (pointer_expression "*(char *)(iVar7 + uVar10)" * (cast_expression "(char *)(iVar7 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + uVar10)" ( (binary_expression "iVar7 + uVar10" identifier + identifier) )))) == (char_literal "'&'" ' character ')) )) (compound_statement "{\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = FUN_00028d50(param_4,0x27,param_2,1);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x27,param_2,1)" identifier = (call_expression "FUN_00028d50(param_4,0x27,param_2,1)" identifier (argument_list "(param_4,0x27,param_2,1)" ( identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar7 = *param_1;\n    }" else (compound_statement "{\n      iVar7 = *param_1;\n    }" { (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) }))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));" (call_expression "FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11))" identifier (argument_list "(param_2,(int)*(char *)(iVar7 + uVar11))" ( identifier , (cast_expression "(int)*(char *)(iVar7 + uVar11)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar7 + uVar11)" * (cast_expression "(char *)(iVar7 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + uVar11)" ( (binary_expression "iVar7 + uVar11" identifier + identifier) ))))) ))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" if (parenthesized_expression "(bVar1 == 0x5c)" ( (binary_expression "bVar1 == 0x5c" identifier == number_literal) )) (compound_statement "{\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }" { (if_statement "if (uVar13 <= uVar11 + 1) goto LAB_0002913d;" if (parenthesized_expression "(uVar13 <= uVar11 + 1)" ( (binary_expression "uVar13 <= uVar11 + 1" identifier <= (binary_expression "uVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0002913d;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(iVar12 + 1 + uVar11);" (assignment_expression "bVar1 = *(byte *)(iVar12 + 1 + uVar11)" identifier = (pointer_expression "*(byte *)(iVar12 + 1 + uVar11)" * (cast_expression "(byte *)(iVar12 + 1 + uVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 1 + uVar11)" ( (binary_expression "iVar12 + 1 + uVar11" (binary_expression "iVar12 + 1" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" if (parenthesized_expression "(bVar1 == 0x28)" ( (binary_expression "bVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }" { (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (if_statement "if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }" if (parenthesized_expression "(uVar10 < uVar13)" ( (binary_expression "uVar10 < uVar13" identifier < identifier) )) (compound_statement "{\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }" { (expression_statement "cVar2 = *(char *)(iVar12 + uVar10);" (assignment_expression "cVar2 = *(char *)(iVar12 + uVar10)" identifier = (pointer_expression "*(char *)(iVar12 + uVar10)" * (cast_expression "(char *)(iVar12 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar10)" ( (binary_expression "iVar12 + uVar10" identifier + identifier) ))))) ;) (while_statement "while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }" { (if_statement "if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" if (parenthesized_expression "(cVar2 == ')')" ( (binary_expression "cVar2 == ')'" identifier == (char_literal "')'" ' character ')) )) (compound_statement "{\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,(int)cVar2);" (call_expression "FUN_000358b0(param_2,(int)cVar2)" identifier (argument_list "(param_2,(int)cVar2)" ( identifier , (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar13 <= uVar10) break;" if (parenthesized_expression "(uVar13 <= uVar10)" ( (binary_expression "uVar13 <= uVar10" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar2 = *(char *)(*param_1 + uVar10);" (assignment_expression "cVar2 = *(char *)(*param_1 + uVar10)" identifier = (pointer_expression "*(char *)(*param_1 + uVar10)" * (cast_expression "(char *)(*param_1 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar10)" ( (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" * identifier) + identifier) ))))) ;) })) })) (if_statement "if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (expression_statement "iVar12 = dcgettext(0,"missing `)\'",5);" (assignment_expression "iVar12 = 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 "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "uVar6 = dcgettext(0,"missing `)\'",5);" (assignment_expression "uVar6 = 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_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);" (call_expression "FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6)" identifier (argument_list "(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6)" ( (pointer_expression "*(undefined4 *)(param_5 + 0x1c)" * (cast_expression "(undefined4 *)(param_5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) )))) , (binary_expression "local_50 + *(int *)(param_5 + 0x20)" identifier + (pointer_expression "*(int *)(param_5 + 0x20)" * (cast_expression "(int *)(param_5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x20)" ( (binary_expression "param_5 + 0x20" identifier + number_literal) ))))) , identifier ))) ;) }) (else_clause "else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" else (if_statement "if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }" { (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;) (expression_statement "sprintf(__s,"%d",DAT_00088bfc);" (call_expression "sprintf(__s,"%d",DAT_00088bfc)" identifier (argument_list "(__s,"%d",DAT_00088bfc)" ( identifier , (string_literal ""%d"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_000293b0:\n      FUN_000358e0(param_2,__s);" statement_identifier : (expression_statement "FUN_000358e0(param_2,__s);" (call_expression "FUN_000358e0(param_2,__s)" identifier (argument_list "(param_2,__s)" ( identifier , identifier ))) ;)) }) (else_clause "else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" else (compound_statement "{\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" { (if_statement "if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(bVar1 != 0x26)" ( (binary_expression "bVar1 != 0x26" identifier != number_literal) )) (compound_statement "{\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (if_statement "if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }" if (parenthesized_expression "(DAT_00088c08 != 0)" ( (binary_expression "DAT_00088c08 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }" { (expression_statement "iVar12 = (int)(char)bVar1;" (assignment_expression "iVar12 = (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 *)(puVar5 + (uint)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2)" identifier = (pointer_expression "*(ushort *)(puVar5 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(puVar5 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + (uint)bVar1 * 2)" ( (binary_expression "puVar5 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\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            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" { (if_statement "if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\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              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }" { (expression_statement "iVar7 = iVar12 + -0x57;" (assignment_expression "iVar7 = iVar12 + -0x57" identifier = (binary_expression "iVar12 + -0x57" identifier + number_literal)) ;) (if_statement "if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -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                iVar7 = iVar12 + -0x37;\n              }" { (expression_statement "iVar7 = iVar12 + -0x37;" (assignment_expression "iVar7 = iVar12 + -0x37" identifier = (binary_expression "iVar12 + -0x37" identifier + number_literal)) ;) })) }) (else_clause "else {\n              iVar7 = iVar12 + -0x30;\n            }" else (compound_statement "{\n              iVar7 = iVar12 + -0x30;\n            }" { (expression_statement "iVar7 = iVar12 + -0x30;" (assignment_expression "iVar7 = iVar12 + -0x30" identifier = (binary_expression "iVar12 + -0x30" identifier + number_literal)) ;) }))) (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (if_statement "if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }" { (expression_statement "iVar12 = param_3[10];" (assignment_expression "iVar12 = param_3[10]" identifier = (subscript_expression "param_3[10]" identifier [ number_literal ])) ;) (expression_statement "piVar14 = param_3;" (assignment_expression "piVar14 = param_3" identifier = identifier) ;) (while_statement "while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }" while (parenthesized_expression "(iVar7 + -1 != iVar12)" ( (binary_expression "iVar7 + -1 != iVar12" (binary_expression "iVar7 + -1" identifier + number_literal) != identifier) )) (compound_statement "{\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }" { (expression_statement "piVar14 = (int *)*piVar14;" (assignment_expression "piVar14 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "iVar12 = piVar14[10];" (assignment_expression "iVar12 = piVar14[10]" identifier = (subscript_expression "piVar14[10]" identifier [ number_literal ])) ;) })) (if_statement "if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" if (parenthesized_expression "(piVar14[8] == 0)" ( (binary_expression "piVar14[8] == 0" (subscript_expression "piVar14[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                FUN_000357f0(param_2,piVar14 + 4);\n              }" { (expression_statement "FUN_000357f0(param_2,piVar14 + 4);" (call_expression "FUN_000357f0(param_2,piVar14 + 4)" identifier (argument_list "(param_2,piVar14 + 4)" ( identifier , (binary_expression "piVar14 + 4" identifier + number_literal) ))) ;) }) (else_clause "else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" else (compound_statement "{\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" { (expression_statement "FUN_000357f0(param_2,piVar14 + 7);" (call_expression "FUN_000357f0(param_2,piVar14 + 7)" identifier (argument_list "(param_2,piVar14 + 7)" ( identifier , (binary_expression "piVar14 + 7" identifier + number_literal) ))) ;) }))) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (labeled_statement "LAB_0002933f:\n            iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002913d:\n        FUN_000358a0(local_3c);" statement_identifier : (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = FUN_00028d50(param_4,0x27,param_2,0);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x27,param_2,0)" identifier = (call_expression "FUN_00028d50(param_4,0x27,param_2,0)" identifier (argument_list "(param_4,0x27,param_2,0)" ( identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,0x5c);" (call_expression "FUN_000358b0(param_2,0x5c)" identifier (argument_list "(param_2,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "FUN_000358b0(param_2,0x26);" (call_expression "FUN_000358b0(param_2,0x26)" identifier (argument_list "(param_2,0x26)" ( identifier , number_literal ))) ;) }))))) }) (else_clause "else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" else (compound_statement "{\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" { (if_statement "if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" if (parenthesized_expression "(DAT_00088c08 == 0 && DAT_00088c0c == 0)" ( (binary_expression "DAT_00088c08 == 0 && DAT_00088c0c == 0" (binary_expression "DAT_00088c08 == 0" identifier == number_literal) && (binary_expression "DAT_00088c0c == 0" identifier == number_literal)) )) (compound_statement "{\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }" { (if_statement "if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }" { (labeled_statement "LAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);" statement_identifier : (expression_statement "bVar4 = (bool)(bVar4 ^ 1);" (assignment_expression "bVar4 = (bool)(bVar4 ^ 1)" identifier = (cast_expression "(bool)(bVar4 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar4 ^ 1)" ( (binary_expression "bVar4 ^ 1" identifier ^ number_literal) )))) ;)) }) (else_clause "else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" else (if_statement "if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }" { (labeled_statement "LAB_00029320:\n        uVar10 = uVar11 + 1;" statement_identifier : (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;)) (if_statement "if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" if (parenthesized_expression "(DAT_00088c04 != 0)" ( (binary_expression "DAT_00088c04 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" { (if_statement "if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }" if (parenthesized_expression "((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@'))" ( (binary_expression "(uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')" (parenthesized_expression "(uVar10 < uVar13)" ( (binary_expression "uVar10 < uVar13" identifier < identifier) )) && (parenthesized_expression "(*(char *)(iVar12 + uVar10) == '@')" ( (binary_expression "*(char *)(iVar12 + uVar10) == '@'" (pointer_expression "*(char *)(iVar12 + uVar10)" * (cast_expression "(char *)(iVar12 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar10)" ( (binary_expression "iVar12 + uVar10" identifier + identifier) )))) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }" { (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,0x40);" (call_expression "FUN_000358b0(param_2,0x40)" identifier (argument_list "(param_2,0x40)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002933f;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" else (compound_statement "{\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" { (labeled_statement "LAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);" statement_identifier : (expression_statement "local_50 = local_50 + (uint)(bVar1 == 10);" (assignment_expression "local_50 = local_50 + (uint)(bVar1 == 10)" identifier = (binary_expression "local_50 + (uint)(bVar1 == 10)" identifier + (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) ))))) ;)) }))))) }) (else_clause "else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" else (compound_statement "{\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" { (if_statement "if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(((&DAT_000803c0)[bVar1] & 2) != 0)" ( (binary_expression "((&DAT_000803c0)[bVar1] & 2) != 0" (parenthesized_expression "((&DAT_000803c0)[bVar1] & 2)" ( (binary_expression "(&DAT_000803c0)[bVar1] & 2" (subscript_expression "(&DAT_000803c0)[bVar1]" (parenthesized_expression "(&DAT_000803c0)" ( (pointer_expression "&DAT_000803c0" & identifier) )) [ identifier ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (if_statement "if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }" { (if_statement "if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;" if (parenthesized_expression "((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))" ( (binary_expression "(DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')))" (parenthesized_expression "(DAT_00088c04 != 0)" ( (binary_expression "DAT_00088c04 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')))" ( (parenthesized_expression "(uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))" ( (binary_expression "uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')" (binary_expression "uVar11 == 0" identifier == number_literal) || (parenthesized_expression "(*(char *)(iVar12 + -1 + uVar11) != '@')" ( (binary_expression "*(char *)(iVar12 + -1 + uVar11) != '@'" (pointer_expression "*(char *)(iVar12 + -1 + uVar11)" * (cast_expression "(char *)(iVar12 + -1 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -1 + uVar11)" ( (binary_expression "iVar12 + -1 + uVar11" (binary_expression "iVar12 + -1" identifier + number_literal) + identifier) )))) != (char_literal "'@'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00029190;" goto statement_identifier ;)) (if_statement "if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" if (parenthesized_expression "((param_5 == 0) || (uVar13 <= uVar11 + 5))" ( (binary_expression "(param_5 == 0) || (uVar13 <= uVar11 + 5)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar13 <= uVar11 + 5)" ( (binary_expression "uVar13 <= uVar11 + 5" identifier <= (binary_expression "uVar11 + 5" identifier + number_literal)) ))) )) (compound_statement "{\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }" { (labeled_statement "LAB_000290bf:\n            FUN_000358a0(local_3c);" statement_identifier : (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;)) (if_statement "if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;" if (parenthesized_expression "((DAT_00088c04 == 0) || (!bVar4))" ( (binary_expression "(DAT_00088c04 == 0) || (!bVar4)" (parenthesized_expression "(DAT_00088c04 == 0)" ( (binary_expression "DAT_00088c04 == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) ))) )) (goto_statement "goto LAB_0002928b;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" else (compound_statement "{\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" { (labeled_statement "LAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);" statement_identifier : (expression_statement "iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);" (assignment_expression "iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5)" identifier = (call_expression "strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5)" identifier (argument_list "((char *)(iVar12 + uVar11),"LOCAL",5)" ( (cast_expression "(char *)(iVar12 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11)" ( (binary_expression "iVar12 + uVar11" identifier + identifier) ))) , (string_literal ""LOCAL"" " string_content ") , number_literal )))) ;)) (if_statement "if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;" if (parenthesized_expression "((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))" ( (binary_expression "(iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')))" ( (parenthesized_expression "(cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))" ( (comma_expression "cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')" (assignment_expression "cVar2 = *(char *)(iVar12 + uVar11 + 5)" identifier = (pointer_expression "*(char *)(iVar12 + uVar11 + 5)" * (cast_expression "(char *)(iVar12 + uVar11 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11 + 5)" ( (binary_expression "iVar12 + uVar11 + 5" (binary_expression "iVar12 + uVar11" 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_000290bf;" goto statement_identifier ;)) (if_statement "if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" { (expression_statement "uVar10 = FUN_00035980(uVar11 + 5,param_1);" (assignment_expression "uVar10 = FUN_00035980(uVar11 + 5,param_1)" identifier = (call_expression "FUN_00035980(uVar11 + 5,param_1)" identifier (argument_list "(uVar11 + 5,param_1)" ( (binary_expression "uVar11 + 5" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar14 = param_1 + 1;" (assignment_expression "piVar14 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;" if (parenthesized_expression "(*(char *)(*param_1 + uVar10) == '\n')" ( (binary_expression "*(char *)(*param_1 + uVar10) == '\n'" (pointer_expression "*(char *)(*param_1 + uVar10)" * (cast_expression "(char *)(*param_1 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar10)" ( (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" * identifier) + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00029749;" goto statement_identifier ;)) (goto_statement "goto LAB_000296a9;" goto statement_identifier ;) })) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (if_statement "if (DAT_00088c04 == 0) goto LAB_0002928b;" if (parenthesized_expression "(DAT_00088c04 == 0)" ( (binary_expression "DAT_00088c04 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002928b;" goto statement_identifier ;)) }))) (expression_statement "uVar6 = 0x40;" (assignment_expression "uVar6 = 0x40" identifier = number_literal) ;) }) (else_clause "else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" else (if_statement "if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }" { (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "uVar6 = 0x27;" (assignment_expression "uVar6 = 0x27" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" else (compound_statement "{\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" { (if_statement "if (uVar11 + 5 < uVar13) goto LAB_000292c0;" if (parenthesized_expression "(uVar11 + 5 < uVar13)" ( (binary_expression "uVar11 + 5 < uVar13" (binary_expression "uVar11 + 5" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_000292c0;" goto statement_identifier ;)) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (labeled_statement "LAB_0002928b:\n          uVar6 = 0x27;" statement_identifier : (expression_statement "uVar6 = 0x27;" (assignment_expression "uVar6 = 0x27" identifier = number_literal) ;)) }))))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);" (assignment_expression "uVar10 = FUN_00028d50(param_4,uVar6,param_2,1)" identifier = (call_expression "FUN_00028d50(param_4,uVar6,param_2,1)" identifier (argument_list "(param_4,uVar6,param_2,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) (labeled_statement "LAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;" statement_identifier : (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;" if (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0))))" ( (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))" (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) || (parenthesized_expression "((bVar1 == 0x27 && (DAT_00088c08 != 0)))" ( (parenthesized_expression "(bVar1 == 0x27 && (DAT_00088c08 != 0))" ( (binary_expression "bVar1 == 0x27 && (DAT_00088c08 != 0)" (binary_expression "bVar1 == 0x27" identifier == number_literal) && (parenthesized_expression "(DAT_00088c08 != 0)" ( (binary_expression "DAT_00088c08 != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00029258;" goto statement_identifier ;))) (if_statement "if (bVar1 == 0x40) goto LAB_00029320;" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_00029320;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;" if (parenthesized_expression "((bVar1 != 0x3d) || (DAT_00088c08 == 0))" ( (binary_expression "(bVar1 != 0x3d) || (DAT_00088c08 == 0)" (parenthesized_expression "(bVar1 != 0x3d)" ( (binary_expression "bVar1 != 0x3d" identifier != number_literal) )) || (parenthesized_expression "(DAT_00088c08 == 0)" ( (binary_expression "DAT_00088c08 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00028fea;" goto statement_identifier ;)) (if_statement "if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '='))" ( (binary_expression "(uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')" (parenthesized_expression "(uVar11 + 1 < uVar13)" ( (binary_expression "uVar11 + 1 < uVar13" (binary_expression "uVar11 + 1" identifier + number_literal) < identifier) )) && (parenthesized_expression "(*(char *)(iVar12 + uVar11 + 1) == '=')" ( (binary_expression "*(char *)(iVar12 + uVar11 + 1) == '='" (pointer_expression "*(char *)(iVar12 + uVar11 + 1)" * (cast_expression "(char *)(iVar12 + uVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + uVar11 + 1)" ( (binary_expression "iVar12 + uVar11 + 1" (binary_expression "iVar12 + uVar11" identifier + identifier) + number_literal) )))) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }" { (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" identifier (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "uVar10 = FUN_00028c80(local_3c);" (assignment_expression "uVar10 = FUN_00028c80(local_3c)" identifier = (call_expression "FUN_00028c80(local_3c)" identifier (argument_list "(local_3c)" ( identifier )))) ;) (expression_statement "uVar6 = FUN_00035970(local_3c);" (assignment_expression "uVar6 = FUN_00035970(local_3c)" identifier = (call_expression "FUN_00035970(local_3c)" identifier (argument_list "(local_3c)" ( identifier )))) ;) (expression_statement "iVar12 = FUN_000254b0(param_4,uVar6);" (assignment_expression "iVar12 = FUN_000254b0(param_4,uVar6)" identifier = (call_expression "FUN_000254b0(param_4,uVar6)" identifier (argument_list "(param_4,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }" { (if_statement "if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x20) != 0" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            __s = "-1";\n            goto LAB_000293b0;\n          }" { (expression_statement "__s = "-1";" (assignment_expression "__s = "-1"" identifier = (string_literal ""-1"" " string_content ")) ;) (goto_statement "goto LAB_000293b0;" goto statement_identifier ;) })) (expression_statement "FUN_000358b0(param_2,0x30);" (call_expression "FUN_000358b0(param_2,0x30)" identifier (argument_list "(param_2,0x30)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00029007;" goto statement_identifier ;) })) (expression_statement "FUN_000358b0(param_2,0x3d);" (call_expression "FUN_000358b0(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_000358b0(param_2,0x3d);" (call_expression "FUN_000358b0(param_2,0x3d)" identifier (argument_list "(param_2,0x3d)" ( identifier , number_literal ))) ;) (expression_statement "FUN_000357f0(param_2,local_3c);" (call_expression "FUN_000357f0(param_2,local_3c)" identifier (argument_list "(param_2,local_3c)" ( identifier , identifier ))) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }))) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000358b0(param_2,(int)(char)bVar1);" (call_expression "FUN_000358b0(param_2,(int)(char)bVar1)" identifier (argument_list "(param_2,(int)(char)bVar1)" ( identifier , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) }))) (labeled_statement "LAB_00029007:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (goto_statement "goto LAB_00028fa0;" goto statement_identifier ;) (labeled_statement "LAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');" statement_identifier : (do_statement "do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');" do (compound_statement "{\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  }" { (expression_statement "piVar9 = (int *)FUN_00028ba0(piVar14);" (assignment_expression "piVar9 = (int *)FUN_00028ba0(piVar14)" identifier = (cast_expression "(int *)FUN_00028ba0(piVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00028ba0(piVar14)" identifier (argument_list "(piVar14)" ( identifier ))))) ;) (expression_statement "uVar10 = FUN_00028c80(piVar9 + 1);" (assignment_expression "uVar10 = FUN_00028c80(piVar9 + 1)" identifier = (call_expression "FUN_00028c80(piVar9 + 1)" identifier (argument_list "(piVar9 + 1)" ( (binary_expression "piVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar6 = FUN_00035970(piVar9 + 1);" (assignment_expression "uVar6 = FUN_00035970(piVar9 + 1)" identifier = (call_expression "FUN_00035970(piVar9 + 1)" identifier (argument_list "(piVar9 + 1)" ( (binary_expression "piVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar12 = FUN_000254b0(param_4,uVar6);" (assignment_expression "iVar12 = FUN_000254b0(param_4,uVar6)" identifier = (call_expression "FUN_000254b0(param_4,uVar6)" identifier (argument_list "(param_4,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }" { (expression_statement "piVar9[10] = -3;" (assignment_expression "piVar9[10] = -3" (subscript_expression "piVar9[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar9 = (int)local_4c;" (assignment_expression "*piVar9 = (int)local_4c" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_00088bf8 = DAT_00088bf8 + 1;" (assignment_expression "DAT_00088bf8 = DAT_00088bf8 + 1" identifier = (binary_expression "DAT_00088bf8 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(local_30,".LL%04x",DAT_00088bf8);" (call_expression "sprintf(local_30,".LL%04x",DAT_00088bf8)" identifier (argument_list "(local_30,".LL%04x",DAT_00088bf8)" ( identifier , (string_literal "".LL%04x"" " string_content ") , identifier ))) ;) (expression_statement "FUN_000358e0(piVar9 + 7,local_30);" (call_expression "FUN_000358e0(piVar9 + 7,local_30)" identifier (argument_list "(piVar9 + 7,local_30)" ( (binary_expression "piVar9 + 7" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar12 = FUN_00025360(param_4,uVar6,piVar9);" (assignment_expression "iVar12 = FUN_00025360(param_4,uVar6,piVar9)" identifier = (call_expression "FUN_00025360(param_4,uVar6,piVar9)" identifier (argument_list "(param_4,uVar6,piVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_4c = piVar9;" (assignment_expression "local_4c = piVar9" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" { (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" else (compound_statement "{\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" { (expression_statement "uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "uVar8 = 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_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);" (call_expression "FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6)" identifier (argument_list "(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6)" ( (pointer_expression "*(undefined4 *)(param_5 + 0x1c)" * (cast_expression "(undefined4 *)(param_5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) )))) , (binary_expression "local_50 + *(int *)(param_5 + 0x20)" identifier + (pointer_expression "*(int *)(param_5 + 0x20)" * (cast_expression "(int *)(param_5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x20)" ( (binary_expression "param_5 + 0x20" identifier + number_literal) ))))) , identifier , identifier ))) ;) (expression_statement "FUN_00028bf0();" (call_expression "FUN_00028bf0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar10 = FUN_000359c0(uVar10,param_1);" (assignment_expression "uVar10 = FUN_000359c0(uVar10,param_1)" identifier = (call_expression "FUN_000359c0(uVar10,param_1)" identifier (argument_list "(uVar10,param_1)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(*(char *)(*param_1 + uVar10) != '\n')" ( (binary_expression "*(char *)(*param_1 + uVar10) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar10)" * (cast_expression "(char *)(*param_1 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + uVar10)" ( (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" * identifier) + identifier) )))) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (labeled_statement "LAB_00029749:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00028f98;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = 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 TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (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 = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + 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 (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (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 ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 { (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)) ;) })) }) (else_clause else (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 TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }))) (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 (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT )))) ;) (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 (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }))))) }) (else_clause else (compound_statement { (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 (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (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) ))))) ;)) }))))) }) (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 { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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 ;)) }) (else_clause else (compound_statement { (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 ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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) ;)) }))))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (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 (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 (binary_expression IDENT + LIT) < IDENT) )) && (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 ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (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 = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 ( ))) ;) }))) (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 ')) )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3\nFUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00028f30(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)" (identifier "FUN_00028f30") (parameter_list "(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *__s;\n  uint uVar13;\n  int *piVar14;\n  int local_50;\n  int *local_4c;\n  undefined1 local_3c [12];\n  char local_30 [28];\n  undefined4 uStack_14;\n  \n  uVar10 = 0;\n  iVar12 = 0;\n  uStack_14 = 0x28f3f;\n  FUN_00035790(local_3c);\n  puVar5 = PTR__sch_istable_0007ff74;\n  uVar13 = param_1[1];\n  local_50 = 0;\n  bVar4 = false;\n  local_4c = (int *)0x0;\nLAB_00028f98:\n  uVar11 = uVar10;\n  if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }\nLAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;\n  iVar12 = *param_1;\n  bVar1 = *(byte *)(iVar12 + uVar11);\n  if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }\n  if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }\nLAB_00029007:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  uVar11 = uVar10;\n  goto LAB_00028fa0;\nLAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');\nLAB_00029749:\n  iVar12 = 0;\n  uVar13 = param_1[1];\n  goto LAB_00028f98;\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 "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int *local_4c;" (primitive_type "int") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined1 local_3c [12];" (type_identifier "undefined1") (array_declarator "local_3c [12]" (identifier "local_3c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "char local_30 [28];" (primitive_type "char") (array_declarator "local_30 [28]" (identifier "local_30") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x28f3f;" (assignment_expression "uStack_14 = 0x28f3f" (identifier "uStack_14") (= "=") (number_literal "0x28f3f")) (; ";")) (expression_statement "FUN_00035790(local_3c);" (call_expression "FUN_00035790(local_3c)" (identifier "FUN_00035790") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "puVar5 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar5 = PTR__sch_istable_0007ff74" (identifier "puVar5") (= "=") (identifier "PTR__sch_istable_0007ff74")) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" (identifier "local_4c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00028f98:\n  uVar11 = uVar10;" (statement_identifier "LAB_00028f98") (: ":") (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" (identifier "uVar11") (= "=") (identifier "uVar10")) (; ";"))) (if_statement "if (iVar12 != 0) {\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00029020:\n    FUN_000357d0(local_3c);\n    while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }\n    return iVar12;\n  }" ({ "{") (labeled_statement "LAB_00029020:\n    FUN_000357d0(local_3c);" (statement_identifier "LAB_00029020") (: ":") (expression_statement "FUN_000357d0(local_3c);" (call_expression "FUN_000357d0(local_3c)" (identifier "FUN_000357d0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";"))) (while_statement "while (local_4c != (int *)0x0) {\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }" (while "while") (parenthesized_expression "(local_4c != (int *)0x0)" (( "(") (binary_expression "local_4c != (int *)0x0" (identifier "local_4c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar14 = local_4c + 1;\n      local_4c = (int *)*local_4c;\n      uVar6 = FUN_00035970(piVar14);\n      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);\n      FUN_00028bf0();\n    }" ({ "{") (expression_statement "piVar14 = local_4c + 1;" (assignment_expression "piVar14 = local_4c + 1" (identifier "piVar14") (= "=") (binary_expression "local_4c + 1" (identifier "local_4c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_4c = (int *)*local_4c;" (assignment_expression "local_4c = (int *)*local_4c" (identifier "local_4c") (= "=") (cast_expression "(int *)*local_4c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_4c" (* "*") (identifier "local_4c")))) (; ";")) (expression_statement "uVar6 = FUN_00035970(piVar14);" (assignment_expression "uVar6 = FUN_00035970(piVar14)" (identifier "uVar6") (= "=") (call_expression "FUN_00035970(piVar14)" (identifier "FUN_00035970") (argument_list "(piVar14)" (( "(") (identifier "piVar14") () ")")))) (; ";")) (expression_statement "FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);" (call_expression "FUN_00025530(param_4,uVar6,local_4c == (int *)0x0)" (identifier "FUN_00025530") (argument_list "(param_4,uVar6,local_4c == (int *)0x0)" (( "(") (identifier "param_4") (, ",") (identifier "uVar6") (, ",") (binary_expression "local_4c == (int *)0x0" (identifier "local_4c") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) (; ";")) (expression_statement "FUN_00028bf0();" (call_expression "FUN_00028bf0()" (identifier "FUN_00028bf0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (labeled_statement "LAB_00028fa0:\n  if (uVar13 <= uVar11) goto LAB_00029020;" (statement_identifier "LAB_00028fa0") (: ":") (if_statement "if (uVar13 <= uVar11) goto LAB_00029020;" (if "if") (parenthesized_expression "(uVar13 <= uVar11)" (( "(") (binary_expression "uVar13 <= uVar11" (identifier "uVar13") (<= "<=") (identifier "uVar11")) () ")")) (goto_statement "goto LAB_00029020;" (goto "goto") (statement_identifier "LAB_00029020") (; ";")))) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" (identifier "iVar12") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar12 + uVar11);" (assignment_expression "bVar1 = *(byte *)(iVar12 + uVar11)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar12 + uVar11)" (* "*") (cast_expression "(byte *)(iVar12 + uVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + uVar11)" (( "(") (binary_expression "iVar12 + uVar11" (identifier "iVar12") (+ "+") (identifier "uVar11")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0x26) {\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0x26)" (( "(") (binary_expression "bVar1 == 0x26" (identifier "bVar1") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n    uVar10 = uVar11 + 1;\n    FUN_000358a0(local_3c);\n    if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }\n    if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }\n    iVar12 = 0;\n    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));\n    uVar13 = param_1[1];\n    goto LAB_00028f98;\n  }" ({ "{") (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (if_statement "if (DAT_00088c08 == 0) {\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }" (if "if") (parenthesized_expression "(DAT_00088c08 == 0)" (( "(") (binary_expression "DAT_00088c08 == 0" (identifier "DAT_00088c08") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);\n      uVar13 = param_1[1];\n      iVar12 = 0;\n      goto LAB_00028f98;\n    }" ({ "{") (expression_statement "uVar10 = FUN_00028d50(param_4,0x26,param_2,0);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x26,param_2,0)" (identifier "uVar10") (= "=") (call_expression "FUN_00028d50(param_4,0x26,param_2,0)" (identifier "FUN_00028d50") (argument_list "(param_4,0x26,param_2,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x26") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (if_statement "if (uVar10 < (uint)param_1[1]) {\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      iVar7 = *param_1;\n    }" (if "if") (parenthesized_expression "(uVar10 < (uint)param_1[1])" (( "(") (binary_expression "uVar10 < (uint)param_1[1]" (identifier "uVar10") (< "<") (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      iVar7 = *param_1;\n      if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }" ({ "{") (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" (identifier "iVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(char *)(iVar7 + uVar10) == '&') {\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar7 + uVar10) == '&')" (( "(") (binary_expression "*(char *)(iVar7 + uVar10) == '&'" (pointer_expression "*(char *)(iVar7 + uVar10)" (* "*") (cast_expression "(char *)(iVar7 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + uVar10)" (( "(") (binary_expression "iVar7 + uVar10" (identifier "iVar7") (+ "+") (identifier "uVar10")) () ")")))) (== "==") (char_literal "'&'" (' "'") (character "&") (' "'"))) () ")")) (compound_statement "{\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = FUN_00028d50(param_4,0x27,param_2,1);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x27,param_2,1)" (identifier "uVar10") (= "=") (call_expression "FUN_00028d50(param_4,0x27,param_2,1)" (identifier "FUN_00028d50") (argument_list "(param_4,0x27,param_2,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x27") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar7 = *param_1;\n    }" (else "else") (compound_statement "{\n      iVar7 = *param_1;\n    }" ({ "{") (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" (identifier "iVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}")))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));" (call_expression "FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11))" (identifier "FUN_000358b0") (argument_list "(param_2,(int)*(char *)(iVar7 + uVar11))" (( "(") (identifier "param_2") (, ",") (cast_expression "(int)*(char *)(iVar7 + uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar7 + uVar11)" (* "*") (cast_expression "(char *)(iVar7 + uVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + uVar11)" (( "(") (binary_expression "iVar7 + uVar11" (identifier "iVar7") (+ "+") (identifier "uVar11")) () ")"))))) () ")"))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x5c) {\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }\n  else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" (if "if") (parenthesized_expression "(bVar1 == 0x5c)" (( "(") (binary_expression "bVar1 == 0x5c" (identifier "bVar1") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;\n    bVar1 = *(byte *)(iVar12 + 1 + uVar11);\n    if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }\n  }" ({ "{") (if_statement "if (uVar13 <= uVar11 + 1) goto LAB_0002913d;" (if "if") (parenthesized_expression "(uVar13 <= uVar11 + 1)" (( "(") (binary_expression "uVar13 <= uVar11 + 1" (identifier "uVar13") (<= "<=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_0002913d;" (goto "goto") (statement_identifier "LAB_0002913d") (; ";"))) (expression_statement "bVar1 = *(byte *)(iVar12 + 1 + uVar11);" (assignment_expression "bVar1 = *(byte *)(iVar12 + 1 + uVar11)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar12 + 1 + uVar11)" (* "*") (cast_expression "(byte *)(iVar12 + 1 + uVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 1 + uVar11)" (( "(") (binary_expression "iVar12 + 1 + uVar11" (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1")) (+ "+") (identifier "uVar11")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0x28) {\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }\n    else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x28)" (( "(") (binary_expression "bVar1 == 0x28" (identifier "bVar1") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n      uVar10 = uVar11 + 2;\n      if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }\n      if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar6 = dcgettext(0,"missing `)\'",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);\n    }" ({ "{") (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar10 < uVar13) {\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }" (if "if") (parenthesized_expression "(uVar10 < uVar13)" (( "(") (binary_expression "uVar10 < uVar13" (identifier "uVar10") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n        cVar2 = *(char *)(iVar12 + uVar10);\n        while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }\n      }" ({ "{") (expression_statement "cVar2 = *(char *)(iVar12 + uVar10);" (assignment_expression "cVar2 = *(char *)(iVar12 + uVar10)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(iVar12 + uVar10)" (* "*") (cast_expression "(char *)(iVar12 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + uVar10)" (( "(") (binary_expression "iVar12 + uVar10" (identifier "iVar12") (+ "+") (identifier "uVar10")) () ")"))))) (; ";")) (while_statement "while( true ) {\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n          uVar10 = uVar10 + 1;\n          FUN_000358b0(param_2,(int)cVar2);\n          uVar13 = param_1[1];\n          if (uVar13 <= uVar10) break;\n          cVar2 = *(char *)(*param_1 + uVar10);\n        }" ({ "{") (if_statement "if (cVar2 == ')') {\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" (if "if") (parenthesized_expression "(cVar2 == ')')" (( "(") (binary_expression "cVar2 == ')'" (identifier "cVar2") (== "==") (char_literal "')'" (' "'") (character ")") (' "'"))) () ")")) (compound_statement "{\n            uVar10 = uVar10 + 1;\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" ({ "{") (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_000358b0(param_2,(int)cVar2);" (call_expression "FUN_000358b0(param_2,(int)cVar2)" (identifier "FUN_000358b0") (argument_list "(param_2,(int)cVar2)" (( "(") (identifier "param_2") (, ",") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) () ")"))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar13 <= uVar10) break;" (if "if") (parenthesized_expression "(uVar13 <= uVar10)" (( "(") (binary_expression "uVar13 <= uVar10" (identifier "uVar13") (<= "<=") (identifier "uVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar2 = *(char *)(*param_1 + uVar10);" (assignment_expression "cVar2 = *(char *)(*param_1 + uVar10)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(*param_1 + uVar10)" (* "*") (cast_expression "(char *)(*param_1 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar10)" (( "(") (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar10")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_5 == 0) {\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar12 = dcgettext(0,"missing `)\'",5);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" ({ "{") (expression_statement "iVar12 = dcgettext(0,"missing `)\'",5);" (assignment_expression "iVar12 = dcgettext(0,"missing `)\'",5)" (identifier "iVar12") (= "=") (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 "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (expression_statement "uVar6 = dcgettext(0,"missing `)\'",5);" (assignment_expression "uVar6 = dcgettext(0,"missing `)\'",5)" (identifier "uVar6") (= "=") (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_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);" (call_expression "FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6)" (identifier "FUN_0002bdb0") (argument_list "(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6)" (( "(") (pointer_expression "*(undefined4 *)(param_5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x1c)" (( "(") (binary_expression "param_5 + 0x1c" (identifier "param_5") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (binary_expression "local_50 + *(int *)(param_5 + 0x20)" (identifier "local_50") (+ "+") (pointer_expression "*(int *)(param_5 + 0x20)" (* "*") (cast_expression "(int *)(param_5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x20)" (( "(") (binary_expression "param_5 + 0x20" (identifier "param_5") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}")) (else_clause "else if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" (else "else") (if_statement "if (bVar1 == 0x40) {\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }\n    else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n      uVar10 = uVar11 + 2;\n      __s = local_30;\n      sprintf(__s,"%d",DAT_00088bfc);\nLAB_000293b0:\n      FUN_000358e0(param_2,__s);\n    }" ({ "{") (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" (identifier "__s") (= "=") (identifier "local_30")) (; ";")) (expression_statement "sprintf(__s,"%d",DAT_00088bfc);" (call_expression "sprintf(__s,"%d",DAT_00088bfc)" (identifier "sprintf") (argument_list "(__s,"%d",DAT_00088bfc)" (( "(") (identifier "__s") (, ",") (string_literal ""%d"" (" """) (string_content "%d") (" """)) (, ",") (identifier "DAT_00088bfc") () ")"))) (; ";")) (labeled_statement "LAB_000293b0:\n      FUN_000358e0(param_2,__s);" (statement_identifier "LAB_000293b0") (: ":") (expression_statement "FUN_000358e0(param_2,__s);" (call_expression "FUN_000358e0(param_2,__s)" (identifier "FUN_000358e0") (argument_list "(param_2,__s)" (( "(") (identifier "param_2") (, ",") (identifier "__s") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" (else "else") (compound_statement "{\n      if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n      uVar10 = uVar11 + 2;\n      FUN_000358b0(param_2,0x5c);\n      FUN_000358b0(param_2,0x26);\n    }" ({ "{") (if_statement "if (bVar1 != 0x26) {\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" (if "if") (parenthesized_expression "(bVar1 != 0x26)" (( "(") (binary_expression "bVar1 != 0x26" (identifier "bVar1") (!= "!=") (number_literal "0x26")) () ")")) (compound_statement "{\n        if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }\nLAB_0002913d:\n        FUN_000358a0(local_3c);\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" ({ "{") (if_statement "if (DAT_00088c08 != 0) {\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_00088c08 != 0)" (( "(") (binary_expression "DAT_00088c08 != 0" (identifier "DAT_00088c08") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar12 = (int)(char)bVar1;\n          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);\n          if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }\n        }" ({ "{") (expression_statement "iVar12 = (int)(char)bVar1;" (assignment_expression "iVar12 = (int)(char)bVar1" (identifier "iVar12") (= "=") (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 *)(puVar5 + (uint)bVar1 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(puVar5 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(puVar5 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + (uint)bVar1 * 2)" (( "(") (binary_expression "puVar5 + (uint)bVar1 * 2" (identifier "puVar5") (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (if_statement "if ((uVar3 & 0x8c) != 0) {\n            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\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            if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\n            }\n            uVar10 = uVar11 + 2;\n            if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }\nLAB_0002933f:\n            iVar12 = 0;\n            goto LAB_00028f98;\n          }" ({ "{") (if_statement "if ((uVar3 & 4) == 0) {\n              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }\n            else {\n              iVar7 = iVar12 + -0x30;\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              iVar7 = iVar12 + -0x57;\n              if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -0x37;\n              }\n            }" ({ "{") (expression_statement "iVar7 = iVar12 + -0x57;" (assignment_expression "iVar7 = iVar12 + -0x57" (identifier "iVar7") (= "=") (binary_expression "iVar12 + -0x57" (identifier "iVar12") (+ "+") (number_literal "-0x57"))) (; ";")) (if_statement "if ((uVar3 & 0x80) != 0) {\n                iVar7 = iVar12 + -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                iVar7 = iVar12 + -0x37;\n              }" ({ "{") (expression_statement "iVar7 = iVar12 + -0x37;" (assignment_expression "iVar7 = iVar12 + -0x37" (identifier "iVar7") (= "=") (binary_expression "iVar12 + -0x37" (identifier "iVar12") (+ "+") (number_literal "-0x37"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar7 = iVar12 + -0x30;\n            }" (else "else") (compound_statement "{\n              iVar7 = iVar12 + -0x30;\n            }" ({ "{") (expression_statement "iVar7 = iVar12 + -0x30;" (assignment_expression "iVar7 = iVar12 + -0x30" (identifier "iVar7") (= "=") (binary_expression "iVar12 + -0x30" (identifier "iVar12") (+ "+") (number_literal "-0x30"))) (; ";")) (} "}")))) (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_3 != (int *)0x0) {\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }" (if "if") (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar12 = param_3[10];\n              piVar14 = param_3;\n              while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }\n              if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }\n              goto LAB_00029007;\n            }" ({ "{") (expression_statement "iVar12 = param_3[10];" (assignment_expression "iVar12 = param_3[10]" (identifier "iVar12") (= "=") (subscript_expression "param_3[10]" (identifier "param_3") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "piVar14 = param_3;" (assignment_expression "piVar14 = param_3" (identifier "piVar14") (= "=") (identifier "param_3")) (; ";")) (while_statement "while (iVar7 + -1 != iVar12) {\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }" (while "while") (parenthesized_expression "(iVar7 + -1 != iVar12)" (( "(") (binary_expression "iVar7 + -1 != iVar12" (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1")) (!= "!=") (identifier "iVar12")) () ")")) (compound_statement "{\n                piVar14 = (int *)*piVar14;\n                if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }\n                iVar12 = piVar14[10];\n              }" ({ "{") (expression_statement "piVar14 = (int *)*piVar14;" (assignment_expression "piVar14 = (int *)*piVar14" (identifier "piVar14") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (if_statement "if (piVar14 == (int *)0x0) {\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }" (if "if") (parenthesized_expression "(piVar14 == (int *)0x0)" (( "(") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  iVar12 = 0;\n                  goto LAB_00028f98;\n                }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (expression_statement "iVar12 = piVar14[10];" (assignment_expression "iVar12 = piVar14[10]" (identifier "iVar12") (= "=") (subscript_expression "piVar14[10]" (identifier "piVar14") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}"))) (if_statement "if (piVar14[8] == 0) {\n                FUN_000357f0(param_2,piVar14 + 4);\n              }\n              else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" (if "if") (parenthesized_expression "(piVar14[8] == 0)" (( "(") (binary_expression "piVar14[8] == 0" (subscript_expression "piVar14[8]" (identifier "piVar14") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_000357f0(param_2,piVar14 + 4);\n              }" ({ "{") (expression_statement "FUN_000357f0(param_2,piVar14 + 4);" (call_expression "FUN_000357f0(param_2,piVar14 + 4)" (identifier "FUN_000357f0") (argument_list "(param_2,piVar14 + 4)" (( "(") (identifier "param_2") (, ",") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" (else "else") (compound_statement "{\n                FUN_000357f0(param_2,piVar14 + 7);\n              }" ({ "{") (expression_statement "FUN_000357f0(param_2,piVar14 + 7);" (call_expression "FUN_000357f0(param_2,piVar14 + 7)" (identifier "FUN_000357f0") (argument_list "(param_2,piVar14 + 7)" (( "(") (identifier "param_2") (, ",") (binary_expression "piVar14 + 7" (identifier "piVar14") (+ "+") (number_literal "7")) () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00029007;" (goto "goto") (statement_identifier "LAB_00029007") (; ";")) (} "}"))) (labeled_statement "LAB_0002933f:\n            iVar12 = 0;" (statement_identifier "LAB_0002933f") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002913d:\n        FUN_000358a0(local_3c);" (statement_identifier "LAB_0002913d") (: ":") (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = FUN_00028d50(param_4,0x27,param_2,0);" (assignment_expression "uVar10 = FUN_00028d50(param_4,0x27,param_2,0)" (identifier "uVar10") (= "=") (call_expression "FUN_00028d50(param_4,0x27,param_2,0)" (identifier "FUN_00028d50") (argument_list "(param_4,0x27,param_2,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x27") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_000358b0(param_2,0x5c);" (call_expression "FUN_000358b0(param_2,0x5c)" (identifier "FUN_000358b0") (argument_list "(param_2,0x5c)" (( "(") (identifier "param_2") (, ",") (number_literal "0x5c") () ")"))) (; ";")) (expression_statement "FUN_000358b0(param_2,0x26);" (call_expression "FUN_000358b0(param_2,0x26)" (identifier "FUN_000358b0") (argument_list "(param_2,0x26)" (( "(") (identifier "param_2") (, ",") (number_literal "0x26") () ")"))) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" (else "else") (compound_statement "{\n    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }\n    uVar10 = uVar11 + 1;\n    FUN_000358b0(param_2,(int)(char)bVar1);\n  }" ({ "{") (if_statement "if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }\n    else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_00088c08 == 0 && DAT_00088c0c == 0)" (( "(") (binary_expression "DAT_00088c08 == 0 && DAT_00088c0c == 0" (binary_expression "DAT_00088c08 == 0" (identifier "DAT_00088c08") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_00088c0c == 0" (identifier "DAT_00088c0c") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }\n    }" ({ "{") (if_statement "if (bVar1 == 0x22) {\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }\n      else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x22)" (( "(") (binary_expression "bVar1 == 0x22" (identifier "bVar1") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\nLAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);\n      }" ({ "{") (labeled_statement "LAB_00029258:\n        bVar4 = (bool)(bVar4 ^ 1);" (statement_identifier "LAB_00029258") (: ":") (expression_statement "bVar4 = (bool)(bVar4 ^ 1);" (assignment_expression "bVar4 = (bool)(bVar4 ^ 1)" (identifier "bVar4") (= "=") (cast_expression "(bool)(bVar4 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar4 ^ 1)" (( "(") (binary_expression "bVar4 ^ 1" (identifier "bVar4") (^ "^") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (else_clause "else if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" (else "else") (if_statement "if (bVar1 == 0x40) {\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }\n      else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\nLAB_00029320:\n        uVar10 = uVar11 + 1;\n        if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }\n      }" ({ "{") (labeled_statement "LAB_00029320:\n        uVar10 = uVar11 + 1;" (statement_identifier "LAB_00029320") (: ":") (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (DAT_00088c04 != 0) {\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" (if "if") (parenthesized_expression "(DAT_00088c04 != 0)" (( "(") (binary_expression "DAT_00088c04 != 0" (identifier "DAT_00088c04") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }\n          goto LAB_0002933f;\n        }" ({ "{") (if_statement "if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }" (if "if") (parenthesized_expression "((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@'))" (( "(") (binary_expression "(uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')" (parenthesized_expression "(uVar10 < uVar13)" (( "(") (binary_expression "uVar10 < uVar13" (identifier "uVar10") (< "<") (identifier "uVar13")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar12 + uVar10) == '@')" (( "(") (binary_expression "*(char *)(iVar12 + uVar10) == '@'" (pointer_expression "*(char *)(iVar12 + uVar10)" (* "*") (cast_expression "(char *)(iVar12 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + uVar10)" (( "(") (binary_expression "iVar12 + uVar10" (identifier "iVar12") (+ "+") (identifier "uVar10")) () ")")))) (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            uVar10 = uVar11 + 2;\n            FUN_000358b0(param_2,0x40);\n            goto LAB_00029007;\n          }" ({ "{") (expression_statement "uVar10 = uVar11 + 2;" (assignment_expression "uVar10 = uVar11 + 2" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_000358b0(param_2,0x40);" (call_expression "FUN_000358b0(param_2,0x40)" (identifier "FUN_000358b0") (argument_list "(param_2,0x40)" (( "(") (identifier "param_2") (, ",") (number_literal "0x40") () ")"))) (; ";")) (goto_statement "goto LAB_00029007;" (goto "goto") (statement_identifier "LAB_00029007") (; ";")) (} "}"))) (goto_statement "goto LAB_0002933f;" (goto "goto") (statement_identifier "LAB_0002933f") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" (else "else") (compound_statement "{\nLAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);\n      }" ({ "{") (labeled_statement "LAB_00028fea:\n        local_50 = local_50 + (uint)(bVar1 == 10);" (statement_identifier "LAB_00028fea") (: ":") (expression_statement "local_50 = local_50 + (uint)(bVar1 == 10);" (assignment_expression "local_50 = local_50 + (uint)(bVar1 == 10)" (identifier "local_50") (= "=") (binary_expression "local_50 + (uint)(bVar1 == 10)" (identifier "local_50") (+ "+") (call_expression "(uint)(bVar1 == 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar1 == 10)" (( "(") (binary_expression "bVar1 == 10" (identifier "bVar1") (== "==") (number_literal "10")) () ")"))))) (; ";"))) (} "}")))))) (} "}")) (else_clause "else {\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" (else "else") (compound_statement "{\n      if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\nLAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;\n      if (bVar1 == 0x40) goto LAB_00029320;\n      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;\n      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }\n    }" ({ "{") (if_statement "if (((&DAT_000803c0)[bVar1] & 2) != 0) {\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" (if "if") (parenthesized_expression "(((&DAT_000803c0)[bVar1] & 2) != 0)" (( "(") (binary_expression "((&DAT_000803c0)[bVar1] & 2) != 0" (parenthesized_expression "((&DAT_000803c0)[bVar1] & 2)" (( "(") (binary_expression "(&DAT_000803c0)[bVar1] & 2" (subscript_expression "(&DAT_000803c0)[bVar1]" (parenthesized_expression "(&DAT_000803c0)" (( "(") (pointer_expression "&DAT_000803c0" (& "&") (identifier "DAT_000803c0")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }\n        iVar12 = 0;\n        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" ({ "{") (if_statement "if (bVar4) {\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }\n        else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;\n          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }\n          uVar6 = 0x40;\n        }" ({ "{") (if_statement "if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))\n          goto LAB_00029190;" (if "if") (parenthesized_expression "((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))" (( "(") (binary_expression "(DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')))" (parenthesized_expression "(DAT_00088c04 != 0)" (( "(") (binary_expression "DAT_00088c04 != 0" (identifier "DAT_00088c04") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')))" (( "(") (parenthesized_expression "(uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))" (( "(") (binary_expression "uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@')" (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(char *)(iVar12 + -1 + uVar11) != '@')" (( "(") (binary_expression "*(char *)(iVar12 + -1 + uVar11) != '@'" (pointer_expression "*(char *)(iVar12 + -1 + uVar11)" (* "*") (cast_expression "(char *)(iVar12 + -1 + uVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + -1 + uVar11)" (( "(") (binary_expression "iVar12 + -1 + uVar11" (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar11")) () ")")))) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00029190;" (goto "goto") (statement_identifier "LAB_00029190") (; ";"))) (if_statement "if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }\n          else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" (if "if") (parenthesized_expression "((param_5 == 0) || (uVar13 <= uVar11 + 5))" (( "(") (binary_expression "(param_5 == 0) || (uVar13 <= uVar11 + 5)" (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar13 <= uVar11 + 5)" (( "(") (binary_expression "uVar13 <= uVar11 + 5" (identifier "uVar13") (<= "<=") (binary_expression "uVar11 + 5" (identifier "uVar11") (+ "+") (number_literal "5"))) () ")"))) () ")")) (compound_statement "{\nLAB_000290bf:\n            FUN_000358a0(local_3c);\n            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;\n          }" ({ "{") (labeled_statement "LAB_000290bf:\n            FUN_000358a0(local_3c);" (statement_identifier "LAB_000290bf") (: ":") (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";"))) (if_statement "if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;" (if "if") (parenthesized_expression "((DAT_00088c04 == 0) || (!bVar4))" (( "(") (binary_expression "(DAT_00088c04 == 0) || (!bVar4)" (parenthesized_expression "(DAT_00088c04 == 0)" (( "(") (binary_expression "DAT_00088c04 == 0" (identifier "DAT_00088c04") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")"))) () ")")) (goto_statement "goto LAB_0002928b;" (goto "goto") (statement_identifier "LAB_0002928b") (; ";"))) (} "}")) (else_clause "else {\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" (else "else") (compound_statement "{\nLAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);\n            if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;\n            if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }\n            FUN_000358a0(local_3c);\n            if (DAT_00088c04 == 0) goto LAB_0002928b;\n          }" ({ "{") (labeled_statement "LAB_000292c0:\n            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);" (statement_identifier "LAB_000292c0") (: ":") (expression_statement "iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);" (assignment_expression "iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5)" (identifier "iVar7") (= "=") (call_expression "strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5)" (identifier "strncasecmp") (argument_list "((char *)(iVar12 + uVar11),"LOCAL",5)" (( "(") (cast_expression "(char *)(iVar12 + uVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + uVar11)" (( "(") (binary_expression "iVar12 + uVar11" (identifier "iVar12") (+ "+") (identifier "uVar11")) () ")"))) (, ",") (string_literal ""LOCAL"" (" """) (string_content "LOCAL") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (if_statement "if ((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))\n            goto LAB_000290bf;" (if "if") (parenthesized_expression "((iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))" (( "(") (binary_expression "(iVar7 != 0) ||\n               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')))" (( "(") (parenthesized_expression "(cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))" (( "(") (comma_expression "cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t')" (assignment_expression "cVar2 = *(char *)(iVar12 + uVar11 + 5)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(iVar12 + uVar11 + 5)" (* "*") (cast_expression "(char *)(iVar12 + uVar11 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + uVar11 + 5)" (( "(") (binary_expression "iVar12 + uVar11 + 5" (binary_expression "iVar12 + uVar11" (identifier "iVar12") (+ "+") (identifier "uVar11")) (+ "+") (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_000290bf;" (goto "goto") (statement_identifier "LAB_000290bf") (; ";"))) (if_statement "if (!bVar4) {\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n              uVar10 = FUN_00035980(uVar11 + 5,param_1);\n              piVar14 = param_1 + 1;\n              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;\n              goto LAB_000296a9;\n            }" ({ "{") (expression_statement "uVar10 = FUN_00035980(uVar11 + 5,param_1);" (assignment_expression "uVar10 = FUN_00035980(uVar11 + 5,param_1)" (identifier "uVar10") (= "=") (call_expression "FUN_00035980(uVar11 + 5,param_1)" (identifier "FUN_00035980") (argument_list "(uVar11 + 5,param_1)" (( "(") (binary_expression "uVar11 + 5" (identifier "uVar11") (+ "+") (number_literal "5")) (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "piVar14 = param_1 + 1;" (assignment_expression "piVar14 = param_1 + 1" (identifier "piVar14") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;" (if "if") (parenthesized_expression "(*(char *)(*param_1 + uVar10) == '\n')" (( "(") (binary_expression "*(char *)(*param_1 + uVar10) == '\n'" (pointer_expression "*(char *)(*param_1 + uVar10)" (* "*") (cast_expression "(char *)(*param_1 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar10)" (( "(") (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar10")) () ")")))) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (goto_statement "goto LAB_00029749;" (goto "goto") (statement_identifier "LAB_00029749") (; ";"))) (goto_statement "goto LAB_000296a9;" (goto "goto") (statement_identifier "LAB_000296a9") (; ";")) (} "}"))) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (if_statement "if (DAT_00088c04 == 0) goto LAB_0002928b;" (if "if") (parenthesized_expression "(DAT_00088c04 == 0)" (( "(") (binary_expression "DAT_00088c04 == 0" (identifier "DAT_00088c04") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002928b;" (goto "goto") (statement_identifier "LAB_0002928b") (; ";"))) (} "}")))) (expression_statement "uVar6 = 0x40;" (assignment_expression "uVar6 = 0x40" (identifier "uVar6") (= "=") (number_literal "0x40")) (; ";")) (} "}")) (else_clause "else if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" (else "else") (if_statement "if (param_5 == 0) {\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }\n        else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000358a0(local_3c);\n          uVar6 = 0x27;\n        }" ({ "{") (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "uVar6 = 0x27;" (assignment_expression "uVar6 = 0x27" (identifier "uVar6") (= "=") (number_literal "0x27")) (; ";")) (} "}")) (else_clause "else {\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" (else "else") (compound_statement "{\n          if (uVar11 + 5 < uVar13) goto LAB_000292c0;\n          FUN_000358a0(local_3c);\nLAB_0002928b:\n          uVar6 = 0x27;\n        }" ({ "{") (if_statement "if (uVar11 + 5 < uVar13) goto LAB_000292c0;" (if "if") (parenthesized_expression "(uVar11 + 5 < uVar13)" (( "(") (binary_expression "uVar11 + 5 < uVar13" (binary_expression "uVar11 + 5" (identifier "uVar11") (+ "+") (number_literal "5")) (< "<") (identifier "uVar13")) () ")")) (goto_statement "goto LAB_000292c0;" (goto "goto") (statement_identifier "LAB_000292c0") (; ";"))) (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (labeled_statement "LAB_0002928b:\n          uVar6 = 0x27;" (statement_identifier "LAB_0002928b") (: ":") (expression_statement "uVar6 = 0x27;" (assignment_expression "uVar6 = 0x27" (identifier "uVar6") (= "=") (number_literal "0x27")) (; ";"))) (} "}")))))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);" (assignment_expression "uVar10 = FUN_00028d50(param_4,uVar6,param_2,1)" (identifier "uVar10") (= "=") (call_expression "FUN_00028d50(param_4,uVar6,param_2,1)" (identifier "FUN_00028d50") (argument_list "(param_4,uVar6,param_2,1)" (( "(") (identifier "param_4") (, ",") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (labeled_statement "LAB_00029190:\n      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;" (statement_identifier "LAB_00029190") (: ":") (if_statement "if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;" (if "if") (parenthesized_expression "((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0))))" (( "(") (binary_expression "(bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))" (parenthesized_expression "(bVar1 == 0x22)" (( "(") (binary_expression "bVar1 == 0x22" (identifier "bVar1") (== "==") (number_literal "0x22")) () ")")) (|| "||") (parenthesized_expression "((bVar1 == 0x27 && (DAT_00088c08 != 0)))" (( "(") (parenthesized_expression "(bVar1 == 0x27 && (DAT_00088c08 != 0))" (( "(") (binary_expression "bVar1 == 0x27 && (DAT_00088c08 != 0)" (binary_expression "bVar1 == 0x27" (identifier "bVar1") (== "==") (number_literal "0x27")) (&& "&&") (parenthesized_expression "(DAT_00088c08 != 0)" (( "(") (binary_expression "DAT_00088c08 != 0" (identifier "DAT_00088c08") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00029258;" (goto "goto") (statement_identifier "LAB_00029258") (; ";")))) (if_statement "if (bVar1 == 0x40) goto LAB_00029320;" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_00029320;" (goto "goto") (statement_identifier "LAB_00029320") (; ";"))) (if_statement "if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;" (if "if") (parenthesized_expression "((bVar1 != 0x3d) || (DAT_00088c08 == 0))" (( "(") (binary_expression "(bVar1 != 0x3d) || (DAT_00088c08 == 0)" (parenthesized_expression "(bVar1 != 0x3d)" (( "(") (binary_expression "bVar1 != 0x3d" (identifier "bVar1") (!= "!=") (number_literal "0x3d")) () ")")) (|| "||") (parenthesized_expression "(DAT_00088c08 == 0)" (( "(") (binary_expression "DAT_00088c08 == 0" (identifier "DAT_00088c08") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00028fea;" (goto "goto") (statement_identifier "LAB_00028fea") (; ";"))) (if_statement "if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }" (if "if") (parenthesized_expression "((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '='))" (( "(") (binary_expression "(uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')" (parenthesized_expression "(uVar11 + 1 < uVar13)" (( "(") (binary_expression "uVar11 + 1 < uVar13" (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) (< "<") (identifier "uVar13")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar12 + uVar11 + 1) == '=')" (( "(") (binary_expression "*(char *)(iVar12 + uVar11 + 1) == '='" (pointer_expression "*(char *)(iVar12 + uVar11 + 1)" (* "*") (cast_expression "(char *)(iVar12 + uVar11 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + uVar11 + 1)" (( "(") (binary_expression "iVar12 + uVar11 + 1" (binary_expression "iVar12 + uVar11" (identifier "iVar12") (+ "+") (identifier "uVar11")) (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        FUN_000358a0(local_3c);\n        uVar10 = FUN_00028c80(local_3c);\n        uVar6 = FUN_00035970(local_3c);\n        iVar12 = FUN_000254b0(param_4,uVar6);\n        if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }\n        FUN_000358b0(param_2,0x3d);\n        FUN_000358b0(param_2,0x3d);\n        FUN_000357f0(param_2,local_3c);\n        uVar13 = param_1[1];\n        iVar12 = 0;\n        goto LAB_00028f98;\n      }" ({ "{") (expression_statement "FUN_000358a0(local_3c);" (call_expression "FUN_000358a0(local_3c)" (identifier "FUN_000358a0") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "uVar10 = FUN_00028c80(local_3c);" (assignment_expression "uVar10 = FUN_00028c80(local_3c)" (identifier "uVar10") (= "=") (call_expression "FUN_00028c80(local_3c)" (identifier "FUN_00028c80") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")")))) (; ";")) (expression_statement "uVar6 = FUN_00035970(local_3c);" (assignment_expression "uVar6 = FUN_00035970(local_3c)" (identifier "uVar6") (= "=") (call_expression "FUN_00035970(local_3c)" (identifier "FUN_00035970") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")")))) (; ";")) (expression_statement "iVar12 = FUN_000254b0(param_4,uVar6);" (assignment_expression "iVar12 = FUN_000254b0(param_4,uVar6)" (identifier "iVar12") (= "=") (call_expression "FUN_000254b0(param_4,uVar6)" (identifier "FUN_000254b0") (argument_list "(param_4,uVar6)" (( "(") (identifier "param_4") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }\n          FUN_000358b0(param_2,0x30);\n          goto LAB_00029007;\n        }" ({ "{") (if_statement "if (*(int *)(iVar12 + 0x20) != 0) {\n            __s = "-1";\n            goto LAB_000293b0;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x20) != 0" (pointer_expression "*(int *)(iVar12 + 0x20)" (* "*") (cast_expression "(int *)(iVar12 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __s = "-1";\n            goto LAB_000293b0;\n          }" ({ "{") (expression_statement "__s = "-1";" (assignment_expression "__s = "-1"" (identifier "__s") (= "=") (string_literal ""-1"" (" """) (string_content "-1") (" """))) (; ";")) (goto_statement "goto LAB_000293b0;" (goto "goto") (statement_identifier "LAB_000293b0") (; ";")) (} "}"))) (expression_statement "FUN_000358b0(param_2,0x30);" (call_expression "FUN_000358b0(param_2,0x30)" (identifier "FUN_000358b0") (argument_list "(param_2,0x30)" (( "(") (identifier "param_2") (, ",") (number_literal "0x30") () ")"))) (; ";")) (goto_statement "goto LAB_00029007;" (goto "goto") (statement_identifier "LAB_00029007") (; ";")) (} "}"))) (expression_statement "FUN_000358b0(param_2,0x3d);" (call_expression "FUN_000358b0(param_2,0x3d)" (identifier "FUN_000358b0") (argument_list "(param_2,0x3d)" (( "(") (identifier "param_2") (, ",") (number_literal "0x3d") () ")"))) (; ";")) (expression_statement "FUN_000358b0(param_2,0x3d);" (call_expression "FUN_000358b0(param_2,0x3d)" (identifier "FUN_000358b0") (argument_list "(param_2,0x3d)" (( "(") (identifier "param_2") (, ",") (number_literal "0x3d") () ")"))) (; ";")) (expression_statement "FUN_000357f0(param_2,local_3c);" (call_expression "FUN_000357f0(param_2,local_3c)" (identifier "FUN_000357f0") (argument_list "(param_2,local_3c)" (( "(") (identifier "param_2") (, ",") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_000358b0(param_2,(int)(char)bVar1);" (call_expression "FUN_000358b0(param_2,(int)(char)bVar1)" (identifier "FUN_000358b0") (argument_list "(param_2,(int)(char)bVar1)" (( "(") (identifier "param_2") (, ",") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_00029007:\n  iVar12 = 0;" (statement_identifier "LAB_00029007") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" (identifier "uVar11") (= "=") (identifier "uVar10")) (; ";")) (goto_statement "goto LAB_00028fa0;" (goto "goto") (statement_identifier "LAB_00028fa0") (; ";")) (labeled_statement "LAB_000296a9:\n  do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');" (statement_identifier "LAB_000296a9") (: ":") (do_statement "do {\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  } while (*(char *)(*param_1 + uVar10) != '\n');" (do "do") (compound_statement "{\n    piVar9 = (int *)FUN_00028ba0(piVar14);\n    uVar10 = FUN_00028c80(piVar9 + 1);\n    uVar6 = FUN_00035970(piVar9 + 1);\n    iVar12 = FUN_000254b0(param_4,uVar6);\n    if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }\n    uVar10 = FUN_000359c0(uVar10,param_1);\n  }" ({ "{") (expression_statement "piVar9 = (int *)FUN_00028ba0(piVar14);" (assignment_expression "piVar9 = (int *)FUN_00028ba0(piVar14)" (identifier "piVar9") (= "=") (cast_expression "(int *)FUN_00028ba0(piVar14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00028ba0(piVar14)" (identifier "FUN_00028ba0") (argument_list "(piVar14)" (( "(") (identifier "piVar14") () ")"))))) (; ";")) (expression_statement "uVar10 = FUN_00028c80(piVar9 + 1);" (assignment_expression "uVar10 = FUN_00028c80(piVar9 + 1)" (identifier "uVar10") (= "=") (call_expression "FUN_00028c80(piVar9 + 1)" (identifier "FUN_00028c80") (argument_list "(piVar9 + 1)" (( "(") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar6 = FUN_00035970(piVar9 + 1);" (assignment_expression "uVar6 = FUN_00035970(piVar9 + 1)" (identifier "uVar6") (= "=") (call_expression "FUN_00035970(piVar9 + 1)" (identifier "FUN_00035970") (argument_list "(piVar9 + 1)" (( "(") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar12 = FUN_000254b0(param_4,uVar6);" (assignment_expression "iVar12 = FUN_000254b0(param_4,uVar6)" (identifier "iVar12") (= "=") (call_expression "FUN_000254b0(param_4,uVar6)" (identifier "FUN_000254b0") (argument_list "(param_4,uVar6)" (( "(") (identifier "param_4") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }\n    else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar9[10] = -3;\n      *piVar9 = (int)local_4c;\n      DAT_00088bf8 = DAT_00088bf8 + 1;\n      sprintf(local_30,".LL%04x",DAT_00088bf8);\n      FUN_000358e0(piVar9 + 7,local_30);\n      iVar12 = FUN_00025360(param_4,uVar6,piVar9);\n      local_4c = piVar9;\n      if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }\n    }" ({ "{") (expression_statement "piVar9[10] = -3;" (assignment_expression "piVar9[10] = -3" (subscript_expression "piVar9[10]" (identifier "piVar9") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "-3")) (; ";")) (expression_statement "*piVar9 = (int)local_4c;" (assignment_expression "*piVar9 = (int)local_4c" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "DAT_00088bf8 = DAT_00088bf8 + 1;" (assignment_expression "DAT_00088bf8 = DAT_00088bf8 + 1" (identifier "DAT_00088bf8") (= "=") (binary_expression "DAT_00088bf8 + 1" (identifier "DAT_00088bf8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sprintf(local_30,".LL%04x",DAT_00088bf8);" (call_expression "sprintf(local_30,".LL%04x",DAT_00088bf8)" (identifier "sprintf") (argument_list "(local_30,".LL%04x",DAT_00088bf8)" (( "(") (identifier "local_30") (, ",") (string_literal "".LL%04x"" (" """) (string_content ".LL%04x") (" """)) (, ",") (identifier "DAT_00088bf8") () ")"))) (; ";")) (expression_statement "FUN_000358e0(piVar9 + 7,local_30);" (call_expression "FUN_000358e0(piVar9 + 7,local_30)" (identifier "FUN_000358e0") (argument_list "(piVar9 + 7,local_30)" (( "(") (binary_expression "piVar9 + 7" (identifier "piVar9") (+ "+") (number_literal "7")) (, ",") (identifier "local_30") () ")"))) (; ";")) (expression_statement "iVar12 = FUN_00025360(param_4,uVar6,piVar9);" (assignment_expression "iVar12 = FUN_00025360(param_4,uVar6,piVar9)" (identifier "iVar12") (= "=") (call_expression "FUN_00025360(param_4,uVar6,piVar9)" (identifier "FUN_00025360") (argument_list "(param_4,uVar6,piVar9)" (( "(") (identifier "param_4") (, ",") (identifier "uVar6") (, ",") (identifier "piVar9") () ")")))) (; ";")) (expression_statement "local_4c = piVar9;" (assignment_expression "local_4c = piVar9" (identifier "local_4c") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (iVar12 != 0) {\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = param_1[1];\n        goto LAB_00028f98;\n      }" ({ "{") (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" (else "else") (compound_statement "{\n      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);\n      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);\n      FUN_00028bf0();\n    }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);" (assignment_expression "uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5)" (identifier "uVar8") (= "=") (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_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);" (call_expression "FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6)" (identifier "FUN_0002bdb0") (argument_list "(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6)" (( "(") (pointer_expression "*(undefined4 *)(param_5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x1c)" (( "(") (binary_expression "param_5 + 0x1c" (identifier "param_5") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (binary_expression "local_50 + *(int *)(param_5 + 0x20)" (identifier "local_50") (+ "+") (pointer_expression "*(int *)(param_5 + 0x20)" (* "*") (cast_expression "(int *)(param_5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x20)" (( "(") (binary_expression "param_5 + 0x20" (identifier "param_5") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (identifier "uVar8") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "FUN_00028bf0();" (call_expression "FUN_00028bf0()" (identifier "FUN_00028bf0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar10 = FUN_000359c0(uVar10,param_1);" (assignment_expression "uVar10 = FUN_000359c0(uVar10,param_1)" (identifier "uVar10") (= "=") (call_expression "FUN_000359c0(uVar10,param_1)" (identifier "FUN_000359c0") (argument_list "(uVar10,param_1)" (( "(") (identifier "uVar10") (, ",") (identifier "param_1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(char *)(*param_1 + uVar10) != '\n')" (( "(") (binary_expression "*(char *)(*param_1 + uVar10) != '\n'" (pointer_expression "*(char *)(*param_1 + uVar10)" (* "*") (cast_expression "(char *)(*param_1 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + uVar10)" (( "(") (binary_expression "*param_1 + uVar10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "uVar10")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (; ";"))) (labeled_statement "LAB_00029749:\n  iVar12 = 0;" (statement_identifier "LAB_00029749") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00028f98;" (goto "goto") (statement_identifier "LAB_00028f98") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x0002901b) */

char * __regparm3
function_1(type_1 *in,type_1 *out,type_2 *var_27,type_3 *formal_hash,type_4 *var_18)

{
  type_5 var_11;
  char var_17;
  type_6 var_25;
  type_7 *var_7;
  bool var_31;
  type_8 *var_24;
  char *pcVar7;
  int var_26;
  type_2 *formal;
  void *var_37;
  int var_28;
  size_t var_15;
  size_t var_10;
  char *var_2;
  type_9 var_9;
  int var_21;
  type_2 *var_4;
  type_1 t;
  char buffer [12];
  
  var_15 = 0;
  var_2 = (char *)0x0;
  var_1(&t);
  var_24 = PTR__sch_istable_0007ff74;
  var_9 = in->len;
  var_21 = 0;
  var_31 = false;
  var_4 = (type_2 *)0x0;
LAB_00028f98:
  var_10 = var_15;
  if (var_2 != (char *)0x0) {
LAB_00029020:
    var_3(&t);
    while (var_4 != (type_2 *)0x0) {
      var_7 = var_4->next;
      pcVar7 = var_5(&var_4->name);
      var_6(formal_hash,pcVar7,(type_9)(var_7 == (type_7 *)0x0));
      var_8(var_4);
      var_4 = var_7;
    }
    return var_2;
  }
LAB_00028fa0:
  if (var_9 <= var_10) goto LAB_00029020;
  var_2 = in->ptr;
  var_11 = var_2[var_10];
  if (var_11 == 0x26) {
    var_15 = var_10 + 1;
    var_12(&t);
    if (var_13 == 0) {
      var_15 = var_14(var_15,in,&t,formal_hash,0x26,out,0);
      var_9 = in->len;
      var_2 = (char *)0x0;
      goto LAB_00028f98;
    }
    if (var_15 < in->len) {
      pcVar7 = in->ptr;
      if (pcVar7[var_15] == '&') {
        var_2 = (char *)0x0;
        var_15 = var_14(var_10 + 2,in,&t,formal_hash,0x27,out,1);
        var_9 = in->len;
        goto LAB_00028f98;
      }
    }
    else {
      pcVar7 = in->ptr;
    }
    var_2 = (char *)0x0;
    var_16(out,(int)pcVar7[var_10]);
    var_9 = in->len;
    goto LAB_00028f98;
  }
  if (var_11 == 0x5c) {
    if (var_9 <= var_10 + 1) goto LAB_0002913d;
    var_11 = var_2[var_10 + 1];
    if (var_11 == 0x28) {
      var_15 = var_10 + 2;
      if (var_15 < var_9) {
        var_17 = var_2[var_15];
        while( true ) {
          if (var_17 == ')') {
            var_15 = var_15 + 1;
            var_2 = (char *)0x0;
            goto LAB_00028f98;
          }
          var_15 = var_15 + 1;
          var_16(out,(int)var_17);
          var_9 = in->len;
          if (var_9 <= var_15) break;
          var_17 = in->ptr[var_15];
        }
      }
      if (var_18 == (type_4 *)0x0) {
        var_2 = (char *)var_19(0,"missing `)\'",5);
        var_9 = in->len;
        goto LAB_00028f98;
      }
      var_2 = (char *)var_19(0,"missing `)\'",5);
      var_20(var_18->file,var_21 + var_18->line,var_2);
    }
    else if (var_11 == 0x40) {
      var_15 = var_10 + 2;
      var_2 = buffer;
      var_22(var_2,"%d",macro_number);
LAB_000293b0:
      var_23(out,var_2);
    }
    else {
      if (var_11 != 0x26) {
        if (var_13 != 0) {
          var_26 = (int)(char)var_11;
          var_25 = *(type_6 *)(var_24 + (type_9)var_11 * 2);
          if ((var_25 & 0x8c) != 0) {
            if ((var_25 & 4) == 0) {
              var_28 = var_26 + -0x57;
              if ((var_25 & 0x80) != 0) {
                var_28 = var_26 + -0x37;
              }
            }
            else {
              var_28 = var_26 + -0x30;
            }
            var_15 = var_10 + 2;
            if (var_27 != (type_2 *)0x0) {
              var_26 = var_27->index;
              var_7 = var_27;
              while (var_28 + -1 != var_26) {
                var_7 = var_7->next;
                if (var_7 == (type_7 *)0x0) {
                  var_2 = (char *)0x0;
                  goto LAB_00028f98;
                }
                var_26 = var_7->index;
              }
              if ((var_7->actual).len == 0) {
                var_29(out,&var_7->def);
              }
              else {
                var_29(out,&var_7->actual);
              }
              goto LAB_00029007;
            }
LAB_0002933f:
            var_2 = (char *)0x0;
            goto LAB_00028f98;
          }
        }
LAB_0002913d:
        var_12(&t);
        var_2 = (char *)0x0;
        var_15 = var_14(var_10 + 1,in,&t,formal_hash,0x27,out,0);
        var_9 = in->len;
        goto LAB_00028f98;
      }
      var_15 = var_10 + 2;
      var_16(out,0x5c);
      var_16(out,0x26);
    }
  }
  else {
    if (var_13 == 0 && var_30 == 0) {
      if (var_11 == 0x22) {
LAB_00029258:
        var_31 = (bool)(var_31 ^ 1);
      }
      else if (var_11 == 0x40) {
LAB_00029320:
        var_15 = var_10 + 1;
        if (var_32 != 0) {
          if ((var_15 < var_9) && (var_2[var_15] == '@')) {
            var_15 = var_10 + 2;
            var_16(out,0x40);
            goto LAB_00029007;
          }
          goto LAB_0002933f;
        }
      }
      else {
LAB_00028fea:
        var_21 = var_21 + (type_9)(var_11 == 10);
      }
    }
    else {
      if ((lex_type[var_11] & 2) != 0) {
        if (var_31) {
          if ((var_32 != 0) && ((var_10 == 0 || (var_2[var_10 - 1] != '@'))))
          goto LAB_00029190;
          if ((var_18 == (type_4 *)0x0) || (var_9 <= var_10 + 5)) {
LAB_000290bf:
            var_12(&t);
            if ((var_32 == 0) || (!var_31)) goto LAB_0002928b;
          }
          else {
LAB_000292c0:
            var_26 = var_33(var_2 + var_10,"LOCAL",5);
            if ((var_26 != 0) || ((var_2[var_10 + 5] != ' ' && (var_2[var_10 + 5] != '\t'))))
            goto LAB_000290bf;
            if (!var_31) {
              var_15 = var_34(var_10 + 5,in);
              if (in->ptr[var_15] == '\n') goto LAB_00029749;
              goto LAB_000296a9;
            }
            var_12(&t);
            if (var_32 == 0) goto LAB_0002928b;
          }
          var_26 = 0x40;
        }
        else if (var_18 == (type_4 *)0x0) {
          var_12(&t);
          var_26 = 0x27;
        }
        else {
          if (var_10 + 5 < var_9) goto LAB_000292c0;
          var_12(&t);
LAB_0002928b:
          var_26 = 0x27;
        }
        var_2 = (char *)0x0;
        var_15 = var_14(var_10,in,&t,formal_hash,var_26,out,1);
        var_9 = in->len;
        goto LAB_00028f98;
      }
LAB_00029190:
      if ((var_11 == 0x22) || ((var_11 == 0x27 && (var_13 != 0)))) goto LAB_00029258;
      if (var_11 == 0x40) goto LAB_00029320;
      if ((var_11 != 0x3d) || (var_13 == 0)) goto LAB_00028fea;
      if ((var_10 + 1 < var_9) && (var_2[var_10 + 1] == '=')) {
        var_12(&t);
        var_15 = var_35(var_10 + 2,in,(type_1 *)&in->len,&t);
        var_2 = var_5(&t);
        var_37 = var_36(formal_hash,var_2);
        if (var_37 != (void *)0x0) {
          if (*(int *)((int)var_37 + 0x20) != 0) {
            var_2 = "-1";
            goto LAB_000293b0;
          }
          var_16(out,0x30);
          goto LAB_00029007;
        }
        var_16(out,0x3d);
        var_16(out,0x3d);
        var_29(out,&t);
        var_9 = in->len;
        var_2 = (char *)0x0;
        goto LAB_00028f98;
      }
    }
    var_15 = var_10 + 1;
    var_16(out,(int)(char)var_11);
  }
LAB_00029007:
  var_2 = (char *)0x0;
  var_9 = in->len;
  var_10 = var_15;
  goto LAB_00028fa0;
LAB_000296a9:
  do {
    formal = var_38();
    var_15 = var_35(var_15,in,(type_1 *)&in->len,&formal->name);
    var_2 = var_5(&formal->name);
    var_37 = var_36(formal_hash,var_2);
    if (var_37 == (void *)0x0) {
      formal->index = -3;
      formal->next = var_4;
      macro_expand_body::lexical_block_13::lexical_block_13_2::var_39 =
           function_1::lexical_block_13::lexical_block_13_2::var_39 + 1;
      var_22(buffer,".LL%04x",function_1::lexical_block_13::lexical_block_13_2::var_39);
      var_23(&formal->actual,buffer);
      var_2 = var_40(formal_hash,var_2,formal);
      var_4 = formal;
      if (var_2 != (char *)0x0) {
        var_9 = in->len;
        goto LAB_00028f98;
      }
    }
    else {
      pcVar7 = (char *)var_19(0,"`%s\' was already used as parameter (or another local) name",5);
      var_20(var_18->file,var_21 + var_18->line,pcVar7,var_2);
      var_8(formal);
    }
    var_15 = var_41(var_15,in);
  } while (in->ptr[var_15] != '\n');
LAB_00029749:
  var_2 = (char *)0x0;
  var_9 = in->len;
  goto LAB_00028f98;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x0002901b) */

int __regparm3
MASKED(int *param_1,undefined4 param_2,int *param_3,undefined4 param_4,int param_5)

{
  byte bVar1;
  char cVar2;
  ushort uVar3;
  bool bVar4;
  undefined *puVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 uVar8;
  int *piVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  char *__s;
  uint uVar13;
  int *piVar14;
  int local_50;
  int *local_4c;
  undefined1 local_3c [12];
  char local_30 [28];
  undefined4 uStack_14;
  
  uVar10 = 0;
  iVar12 = 0;
  uStack_14 = 0x28f3f;
  FUN_00035790(local_3c);
  puVar5 = PTR__sch_istable_0007ff74;
  uVar13 = param_1[1];
  local_50 = 0;
  bVar4 = false;
  local_4c = (int *)0x0;
LAB_00028f98:
  uVar11 = uVar10;
  if (iVar12 != 0) {
LAB_00029020:
    FUN_000357d0(local_3c);
    while (local_4c != (int *)0x0) {
      piVar14 = local_4c + 1;
      local_4c = (int *)*local_4c;
      uVar6 = FUN_00035970(piVar14);
      FUN_00025530(param_4,uVar6,local_4c == (int *)0x0);
      FUN_00028bf0();
    }
    return iVar12;
  }
LAB_00028fa0:
  if (uVar13 <= uVar11) goto LAB_00029020;
  iVar12 = *param_1;
  bVar1 = *(byte *)(iVar12 + uVar11);
  if (bVar1 == 0x26) {
    uVar10 = uVar11 + 1;
    FUN_000358a0(local_3c);
    if (DAT_00088c08 == 0) {
      uVar10 = FUN_00028d50(param_4,0x26,param_2,0);
      uVar13 = param_1[1];
      iVar12 = 0;
      goto LAB_00028f98;
    }
    if (uVar10 < (uint)param_1[1]) {
      iVar7 = *param_1;
      if (*(char *)(iVar7 + uVar10) == '&') {
        iVar12 = 0;
        uVar10 = FUN_00028d50(param_4,0x27,param_2,1);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
    }
    else {
      iVar7 = *param_1;
    }
    iVar12 = 0;
    FUN_000358b0(param_2,(int)*(char *)(iVar7 + uVar11));
    uVar13 = param_1[1];
    goto LAB_00028f98;
  }
  if (bVar1 == 0x5c) {
    if (uVar13 <= uVar11 + 1) goto LAB_0002913d;
    bVar1 = *(byte *)(iVar12 + 1 + uVar11);
    if (bVar1 == 0x28) {
      uVar10 = uVar11 + 2;
      if (uVar10 < uVar13) {
        cVar2 = *(char *)(iVar12 + uVar10);
        while( true ) {
          if (cVar2 == ')') {
            uVar10 = uVar10 + 1;
            iVar12 = 0;
            goto LAB_00028f98;
          }
          uVar10 = uVar10 + 1;
          FUN_000358b0(param_2,(int)cVar2);
          uVar13 = param_1[1];
          if (uVar13 <= uVar10) break;
          cVar2 = *(char *)(*param_1 + uVar10);
        }
      }
      if (param_5 == 0) {
        iVar12 = dcgettext(0,"missing `)\'",5);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
      uVar6 = dcgettext(0,"missing `)\'",5);
      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar6);
    }
    else if (bVar1 == 0x40) {
      uVar10 = uVar11 + 2;
      __s = local_30;
      sprintf(__s,"%d",DAT_00088bfc);
LAB_000293b0:
      FUN_000358e0(param_2,__s);
    }
    else {
      if (bVar1 != 0x26) {
        if (DAT_00088c08 != 0) {
          iVar12 = (int)(char)bVar1;
          uVar3 = *(ushort *)(puVar5 + (uint)bVar1 * 2);
          if ((uVar3 & 0x8c) != 0) {
            if ((uVar3 & 4) == 0) {
              iVar7 = iVar12 + -0x57;
              if ((uVar3 & 0x80) != 0) {
                iVar7 = iVar12 + -0x37;
              }
            }
            else {
              iVar7 = iVar12 + -0x30;
            }
            uVar10 = uVar11 + 2;
            if (param_3 != (int *)0x0) {
              iVar12 = param_3[10];
              piVar14 = param_3;
              while (iVar7 + -1 != iVar12) {
                piVar14 = (int *)*piVar14;
                if (piVar14 == (int *)0x0) {
                  iVar12 = 0;
                  goto LAB_00028f98;
                }
                iVar12 = piVar14[10];
              }
              if (piVar14[8] == 0) {
                FUN_000357f0(param_2,piVar14 + 4);
              }
              else {
                FUN_000357f0(param_2,piVar14 + 7);
              }
              goto LAB_00029007;
            }
LAB_0002933f:
            iVar12 = 0;
            goto LAB_00028f98;
          }
        }
LAB_0002913d:
        FUN_000358a0(local_3c);
        iVar12 = 0;
        uVar10 = FUN_00028d50(param_4,0x27,param_2,0);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
      uVar10 = uVar11 + 2;
      FUN_000358b0(param_2,0x5c);
      FUN_000358b0(param_2,0x26);
    }
  }
  else {
    if (DAT_00088c08 == 0 && DAT_00088c0c == 0) {
      if (bVar1 == 0x22) {
LAB_00029258:
        bVar4 = (bool)(bVar4 ^ 1);
      }
      else if (bVar1 == 0x40) {
LAB_00029320:
        uVar10 = uVar11 + 1;
        if (DAT_00088c04 != 0) {
          if ((uVar10 < uVar13) && (*(char *)(iVar12 + uVar10) == '@')) {
            uVar10 = uVar11 + 2;
            FUN_000358b0(param_2,0x40);
            goto LAB_00029007;
          }
          goto LAB_0002933f;
        }
      }
      else {
LAB_00028fea:
        local_50 = local_50 + (uint)(bVar1 == 10);
      }
    }
    else {
      if (((&DAT_000803c0)[bVar1] & 2) != 0) {
        if (bVar4) {
          if ((DAT_00088c04 != 0) && ((uVar11 == 0 || (*(char *)(iVar12 + -1 + uVar11) != '@'))))
          goto LAB_00029190;
          if ((param_5 == 0) || (uVar13 <= uVar11 + 5)) {
LAB_000290bf:
            FUN_000358a0(local_3c);
            if ((DAT_00088c04 == 0) || (!bVar4)) goto LAB_0002928b;
          }
          else {
LAB_000292c0:
            iVar7 = strncasecmp((char *)(iVar12 + uVar11),"LOCAL",5);
            if ((iVar7 != 0) ||
               ((cVar2 = *(char *)(iVar12 + uVar11 + 5), cVar2 != ' ' && (cVar2 != '\t'))))
            goto LAB_000290bf;
            if (!bVar4) {
              uVar10 = FUN_00035980(uVar11 + 5,param_1);
              piVar14 = param_1 + 1;
              if (*(char *)(*param_1 + uVar10) == '\n') goto LAB_00029749;
              goto LAB_000296a9;
            }
            FUN_000358a0(local_3c);
            if (DAT_00088c04 == 0) goto LAB_0002928b;
          }
          uVar6 = 0x40;
        }
        else if (param_5 == 0) {
          FUN_000358a0(local_3c);
          uVar6 = 0x27;
        }
        else {
          if (uVar11 + 5 < uVar13) goto LAB_000292c0;
          FUN_000358a0(local_3c);
LAB_0002928b:
          uVar6 = 0x27;
        }
        iVar12 = 0;
        uVar10 = FUN_00028d50(param_4,uVar6,param_2,1);
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
LAB_00029190:
      if ((bVar1 == 0x22) || ((bVar1 == 0x27 && (DAT_00088c08 != 0)))) goto LAB_00029258;
      if (bVar1 == 0x40) goto LAB_00029320;
      if ((bVar1 != 0x3d) || (DAT_00088c08 == 0)) goto LAB_00028fea;
      if ((uVar11 + 1 < uVar13) && (*(char *)(iVar12 + uVar11 + 1) == '=')) {
        FUN_000358a0(local_3c);
        uVar10 = FUN_00028c80(local_3c);
        uVar6 = FUN_00035970(local_3c);
        iVar12 = FUN_000254b0(param_4,uVar6);
        if (iVar12 != 0) {
          if (*(int *)(iVar12 + 0x20) != 0) {
            __s = "-1";
            goto LAB_000293b0;
          }
          FUN_000358b0(param_2,0x30);
          goto LAB_00029007;
        }
        FUN_000358b0(param_2,0x3d);
        FUN_000358b0(param_2,0x3d);
        FUN_000357f0(param_2,local_3c);
        uVar13 = param_1[1];
        iVar12 = 0;
        goto LAB_00028f98;
      }
    }
    uVar10 = uVar11 + 1;
    FUN_000358b0(param_2,(int)(char)bVar1);
  }
LAB_00029007:
  iVar12 = 0;
  uVar13 = param_1[1];
  uVar11 = uVar10;
  goto LAB_00028fa0;
LAB_000296a9:
  do {
    piVar9 = (int *)FUN_00028ba0(piVar14);
    uVar10 = FUN_00028c80(piVar9 + 1);
    uVar6 = FUN_00035970(piVar9 + 1);
    iVar12 = FUN_000254b0(param_4,uVar6);
    if (iVar12 == 0) {
      piVar9[10] = -3;
      *piVar9 = (int)local_4c;
      DAT_00088bf8 = DAT_00088bf8 + 1;
      sprintf(local_30,".LL%04x",DAT_00088bf8);
      FUN_000358e0(piVar9 + 7,local_30);
      iVar12 = FUN_00025360(param_4,uVar6,piVar9);
      local_4c = piVar9;
      if (iVar12 != 0) {
        uVar13 = param_1[1];
        goto LAB_00028f98;
      }
    }
    else {
      uVar8 = dcgettext(0,"`%s\' was already used as parameter (or another local) name",5);
      FUN_0002bdb0(*(undefined4 *)(param_5 + 0x1c),local_50 + *(int *)(param_5 + 0x20),uVar8,uVar6);
      FUN_00028bf0();
    }
    uVar10 = FUN_000359c0(uVar10,param_1);
  } while (*(char *)(*param_1 + uVar10) != '\n');
LAB_00029749:
  iVar12 = 0;
  uVar13 = param_1[1];
  goto LAB_00028f98;
}

