
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void add_cmd(void)

{
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

void __regparm3 FUN_000a32ae(byte *param_1,undefined4 param_2)

{
  byte *__s;
  int iVar1;
  byte bVar2;
  uint uVar3;
  size_t sVar4;
  int *piVar5;
  int iVar6;
  byte *pbVar7;
  char *pcVar8;
  char *pcVar9;
  long lVar10;
  int iVar11;
  char cVar12;
  int in_GS_OFFSET;
  char *local_28;
  byte *local_24;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_000dc380 != (byte *)0x0) {
    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);
    free(DAT_000dc380);
    DAT_000dc380 = param_1;
  }
  pbVar7 = DAT_000dc380;
  uVar3 = strlen((char *)param_1);
  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {
LAB_000a3332:
    do {
      while( true ) {
        if (*param_1 == 0) goto LAB_000a3337;
        sVar4 = strspn((char *)param_1,"; \n\r\t\v");
        param_1 = param_1 + sVar4;
        if (*param_1 == 0) goto LAB_000a3337;
        if (*param_1 == 0x23) break;
        piVar5 = (int *)FUN_0001a2f5();
        iVar6 = FUN_000a3087();
        param_1 = param_1 + iVar6;
        piVar5[5] = piVar5[4];
        if (*param_1 == 0x2c) {
          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {
            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);
            piVar5[6] = -2 - iVar6;
          }
          else {
            iVar6 = FUN_000a3087();
            iVar6 = iVar6 + -1;
          }
          if (iVar6 < 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000192f3("no address after comma");
          }
          piVar5[7] = piVar5[6];
        }
        pbVar7 = (byte *)FUN_00019041();
        bVar2 = *pbVar7;
        if (bVar2 == 0x21) {
          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;
          pbVar7 = (byte *)FUN_00019041();
          bVar2 = *pbVar7;
        }
        uVar3 = (uint)bVar2;
        if (bVar2 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000192f3("missing command");
        }
        param_1 = pbVar7 + 1;
        *(byte *)((int)piVar5 + 0x2e) = bVar2;
        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);
        pcVar9 = pcVar8 + -0xd7d6b;
        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {
          pbVar7 = (byte *)FUN_000a31a8();
          piVar5[10] = 1;
          do {
            while( true ) {
              while( true ) {
                do {
                  while( true ) {
                    pbVar7 = pbVar7 + 1;
                    __s = param_1 + (int)pbVar7;
                    bVar2 = *__s;
                    if (bVar2 == 0) goto LAB_000a3743;
                    if (9 < (byte)(bVar2 - 0x30)) break;
                    if (*local_28 != '^') {
                      local_24 = __s;
                      lVar10 = strtol((char *)__s,(char **)&local_24,10);
                      piVar5[10] = lVar10;
                      pbVar7 = local_24 + ~(uint)param_1;
                    }
                  }
                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));
                if (bVar2 != 0x67) break;
                if (*local_28 != '^') {
                  piVar5[10] = 0;
                }
              }
              if (bVar2 < 0x68) break;
              if (bVar2 == 0x70) {
                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;
              }
              else if (bVar2 < 0x71) {
                if (bVar2 != 0x69) goto LAB_000a37e1;
              }
              else {
                if (bVar2 != 0x77) {
                  if (bVar2 != 0x7d) goto LAB_000a37e1;
LAB_000a3743:
                  cVar12 = *local_28;
                  param_1 = __s;
                  goto joined_r0x000a3817;
                }
                iVar6 = FUN_000a3224();
                pbVar7 = pbVar7 + iVar6;
                iVar6 = FUN_000193e3();
                piVar5[8] = iVar6;
                *(undefined1 *)((int)piVar5 + 0x2d) = 10;
                free(local_24);
              }
            }
            if (bVar2 == 0x3b) goto LAB_000a3743;
          } while (bVar2 == 0x49);
          if (bVar2 != 0x23) {
LAB_000a37e1:
                    /* WARNING: Subroutine does not return */
            FUN_000192f3("bad option in substitution expression");
          }
          sVar4 = strlen((char *)__s);
          cVar12 = *local_28;
          param_1 = pbVar7 + sVar4 + (int)param_1;
joined_r0x000a3817:
          if (cVar12 != '\0') {
            iVar6 = FUN_0001a2f5();
            piVar5[3] = iVar6;
            FUN_000bfea7();
          }
          free(local_28);
        }
        else if (pcVar9 < (char *)0x4) {
          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {
LAB_000a351c:
                    /* WARNING: Subroutine does not return */
            FUN_000192f3("command \'%c\' uses only one address",uVar3);
          }
          bVar2 = pbVar7[1];
          while (bVar2 != 10) {
            while( true ) {
              if (bVar2 == 0x5c) goto LAB_000a36b9;
              if ((byte)(bVar2 - 9) == 0x17) break;
              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;
              param_1 = param_1 + 1;
              bVar2 = *param_1;
              if (bVar2 == 10) goto LAB_000a36b9;
            }
            param_1 = param_1 + 1;
            bVar2 = *param_1;
          }
LAB_000a36b9:
          param_1 = param_1 + 1;
LAB_000a36ba:
          sVar4 = strlen((char *)param_1);
          iVar6 = FUN_000a302d();
          piVar5[9] = iVar6;
          param_1 = param_1 + sVar4;
          FUN_000a2f4d(0,0);
        }
        else if (pcVar9 < (char *)0x6) {
          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))
          goto LAB_000a351c;
          iVar6 = FUN_000a3224();
          param_1 = param_1 + iVar6;
          if (*(char *)((int)piVar5 + 0x2e) == 'w') {
            iVar6 = FUN_000193e3();
            piVar5[8] = iVar6;
            *(undefined1 *)((int)piVar5 + 0x2d) = 10;
          }
        }
        else if (pcVar9 < (char *)0xa) {
          param_1 = (byte *)FUN_00019041();
          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");
          if (sVar4 != 0) {
            iVar6 = FUN_0001a346();
            piVar5[9] = iVar6;
            param_1 = param_1 + sVar4;
          }
        }
        else if (pcVar9 == (char *)0xa) {
          bVar2 = pbVar7[1];
          iVar6 = FUN_000a31a8();
          FUN_000a2f4d(bVar2,bVar2);
          FUN_000a2f4d(bVar2,bVar2);
          strlen(local_28);
          pcVar8 = (char *)FUN_0001a2f5();
          piVar5[9] = (int)pcVar8;
          if ((*local_28 != '\0') && (*local_24 != 0)) {
            *pcVar8 = *local_28;
            pcVar8[1] = *local_24;
            cVar12 = local_28[1];
            if (cVar12 != '\0') {
              iVar11 = 1;
              do {
                if (local_24[iVar11] == 0) break;
                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;
                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];
                iVar11 = iVar11 + 1;
                cVar12 = local_28[iVar11];
              } while (cVar12 != '\0');
            }
          }
          param_1 = pbVar7 + iVar6 + 2;
          free(local_28);
          free(local_24);
        }
        else if ((char *)0x1a < pcVar9) {
                    /* WARNING: Subroutine does not return */
          FUN_000192f3("unsupported command %c",uVar3);
        }
        *DAT_000dc378 = (int)piVar5;
        DAT_000dc378 = piVar5;
      }
      if (param_1[1] == 0x6e) {
        DAT_000dc2f8 = DAT_000dc2f8 + 1;
      }
      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));
    } while (param_1 != (byte *)0x0);
LAB_000a3337:
    free(DAT_000dc380);
    DAT_000dc380 = (byte *)0x0;
  }
  else {
    if (iVar6 != 0) {
      bVar2 = param_1[uVar3 - 2];
      iVar11 = iVar6;
      iVar1 = uVar3 - 2;
      while (bVar2 == 0x5c) {
        if (iVar1 == 0) goto LAB_000a386a;
        bVar2 = param_1[iVar1 + -1];
        iVar11 = iVar1;
        iVar1 = iVar1 + -1;
      }
      uVar3 = uVar3 - iVar11;
LAB_000a386a:
      if ((uVar3 & 1) == 0) goto LAB_000a3332;
    }
    if (pbVar7 == (byte *)0x0) {
      pbVar7 = (byte *)FUN_0001a30f();
      DAT_000dc380 = pbVar7;
    }
    pbVar7[iVar6] = 0;
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00017e20();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
CALL 0x00017650
ADD EBX,0x38766
MOV EDI,EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2c],EAX
XOR EAX,EAX
LEA EBP,[EBX + 0x8d8]
MOV dword ptr [ESP + 0x8],EBP
MOV ESI,dword ptr [EBP + 0x88]
TEST ESI,ESI
JZ 0x000a330a
PUSH EDX
PUSH EDI
PUSH ESI
LEA EAX,[EBX + 0xffffc2e4]
PUSH EAX
CALL 0x0001a76c
MOV EDI,EAX
POP ECX
PUSH dword ptr [EBP + 0x88]
CALL 0x000175a0
MOV dword ptr [EBP + 0x88],EDI
ADD ESP,0x10
MOV ESI,EDI
SUB ESP,0xc
PUSH EDI
CALL 0x00016b40
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000a3840
LEA EAX,[EBX + 0xffffc3aa]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffffc34b]
MOV dword ptr [ESP + 0x1c],EAX
CMP byte ptr [EDI],0x0
JNZ 0x000a3370
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x14]
PUSH dword ptr [ESI + 0x88]
CALL 0x000175a0
MOV dword ptr [ESI + 0x88],0x0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x000a336b
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x00017e20
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH EDI
CALL 0x00017520
ADD ESP,0x10
ADD EDI,EAX
MOV AL,byte ptr [EDI]
TEST AL,AL
JZ 0x000a3337
CMP AL,0x23
JNZ 0x000a33b6
CMP byte ptr [EDI + 0x1],0x6e
JNZ 0x000a3398
MOV EAX,dword ptr [ESP + 0x8]
INC dword ptr [EAX]
SUB ESP,0x8
LEA EAX,[EBX + 0xffffc2ea]
PUSH EAX
PUSH EDI
CALL 0x00017050
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x000a3337
JMP 0x000a3332
MOV EAX,0x30
CALL 0x0001a2f5
MOV ESI,EAX
LEA ECX,[EAX + 0x4]
LEA EDX,[EAX + 0x10]
MOV EAX,EDI
CALL 0x000a3087
ADD EDI,EAX
MOV EAX,dword ptr [ESI + 0x10]
MOV dword ptr [ESI + 0x14],EAX
CMP byte ptr [EDI],0x2c
JNZ 0x000a342f
CMP byte ptr [EDI + 0x1],0x2b
JNZ 0x000a3822
MOV AL,byte ptr [EDI + 0x2]
SUB EAX,0x30
CMP AL,0x9
JA 0x000a3822
PUSH EAX
PUSH 0xa
LEA EAX,[ESP + 0x30]
PUSH EAX
ADD EDI,0x2
PUSH EDI
CALL 0x00017480
MOV EDX,0xfffffffe
SUB EDX,EAX
MOV dword ptr [ESI + 0x18],EDX
MOV EDI,dword ptr [ESP + 0x38]
ADD ESP,0x10
TEST EAX,EAX
JNS 0x000a3429
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc2ed]
PUSH EAX
CALL 0x000192f3
MOV EAX,dword ptr [ESI + 0x18]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,EDI
CALL 0x00019041
MOV EBP,EAX
MOVZX EDX,byte ptr [EAX]
CMP DL,0x21
JNZ 0x000a3451
OR byte ptr [ESI + 0x2c],0x1
LEA EAX,[EAX + 0x1]
CALL 0x00019041
MOV EBP,EAX
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JNZ 0x000a3464
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc304]
PUSH EAX
CALL 0x000192f3
LEA EDI,[EBP + 0x1]
MOV byte ptr [ESI + 0x2e],DL
SUB ESP,0x8
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
PUSH dword ptr [ESP + 0x28]
CALL 0x00016d50
ADD ESP,0x10
SUB EAX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0xc]
JNZ 0x000a3506
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x10],EAX
LEA ECX,[ESI + 0x24]
LEA EDX,[ESP + 0x24]
MOV EAX,EDI
CALL 0x000a31a8
MOV dword ptr [ESI + 0x28],0x1
LEA ECX,[ESP + 0x28]
MOV dword ptr [ESP + 0x14],ECX
LEA ECX,[EAX + 0x1]
MOV dword ptr [ESP + 0xc],ECX
LEA EBP,[EDI + ECX*0x1]
MOV DL,byte ptr [EBP]
TEST DL,DL
JZ 0x000a3743
LEA ECX,[EDX + -0x30]
CMP CL,0x9
JA 0x000a3712
MOV EAX,dword ptr [ESP + 0x24]
CMP byte ptr [EAX],0x5e
JZ 0x000a378d
MOV dword ptr [ESP + 0x28],EBP
PUSH EAX
PUSH 0xa
PUSH dword ptr [ESP + 0x1c]
PUSH EBP
CALL 0x00017480
MOV dword ptr [ESI + 0x28],EAX
MOV EAX,EDI
NOT EAX
ADD EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
JMP 0x000a378d
CMP EAX,0x3
JA 0x000a352c
JZ 0x000a36b2
MOV EAX,dword ptr [ESI + 0x18]
TEST EAX,EAX
JZ 0x000a36a7
SUB ESP,0x8
PUSH EDX
LEA EAX,[EBX + 0xfffebc98]
PUSH EAX
CALL 0x000192f3
CMP EAX,0x5
JA 0x000a357c
CMP EAX,0x4
JNZ 0x000a3544
MOV EAX,dword ptr [ESI + 0x18]
TEST EAX,EAX
JNZ 0x000a351c
MOV EAX,dword ptr [ESI + 0x8]
TEST EAX,EAX
JNZ 0x000a351c
LEA EDX,[ESI + 0x24]
MOV EAX,EDI
CALL 0x000a3224
ADD EDI,EAX
CMP byte ptr [ESI + 0x2e],0x77
JNZ 0x000a3565
MOV EAX,dword ptr [ESI + 0x24]
CALL 0x000193e3
MOV dword ptr [ESI + 0x20],EAX
MOV byte ptr [ESI + 0x2d],0xa
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ECX + 0x80]
MOV dword ptr [EAX],ESI
MOV dword ptr [ECX + 0x80],ESI
JMP 0x000a3332
CMP EAX,0x9
JA 0x000a35b0
MOV EAX,EDI
CALL 0x00019041
MOV EDI,EAX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x000161d0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000a3565
MOV EDX,EAX
MOV EAX,EDI
CALL 0x0001a346
MOV dword ptr [ESI + 0x24],EAX
ADD EDI,EBP
JMP 0x000a3565
CMP EAX,0xa
JNZ 0x000a366b
MOVZX EBP,byte ptr [EBP + 0x1]
LEA ECX,[ESP + 0x28]
LEA EDX,[ESP + 0x24]
MOV EAX,EDI
CALL 0x000a31a8
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x24]
SUB ESP,0x8
PUSH EBP
PUSH EBP
MOV ECX,0xffffffff
MOV EDX,EAX
CALL 0x000a2f4d
MOV EAX,dword ptr [ESP + 0x38]
POP EDX
POP ECX
PUSH EBP
PUSH EBP
MOV ECX,0xffffffff
MOV EDX,EAX
CALL 0x000a2f4d
POP EBP
PUSH dword ptr [ESP + 0x30]
CALL 0x00016b40
ADD ESP,0x10
LEA EAX,[EAX + EAX*0x1 + 0x2]
CALL 0x0001a2f5
MOV dword ptr [ESI + 0x24],EAX
MOV EDX,dword ptr [ESP + 0x24]
MOV CL,byte ptr [EDX]
TEST CL,CL
JZ 0x000a3684
MOV EBP,dword ptr [ESP + 0x28]
CMP byte ptr [EBP],0x0
JZ 0x000a3684
MOV byte ptr [EAX],CL
MOV CL,byte ptr [EBP]
MOV byte ptr [EAX + 0x1],CL
MOV CL,byte ptr [EDX + 0x1]
TEST CL,CL
JZ 0x000a3684
MOV EAX,0x1
CMP byte ptr [EBP + EAX*0x1],0x0
JZ 0x000a3684
LEA EDX,[EAX + EAX*0x1]
MOV EBP,dword ptr [ESI + 0x24]
MOV byte ptr [EBP + EDX*0x1],CL
MOV ECX,dword ptr [ESP + 0x28]
MOV CL,byte ptr [ECX + EAX*0x1]
MOV EBP,dword ptr [ESI + 0x24]
MOV byte ptr [EBP + EDX*0x1 + 0x1],CL
INC EAX
MOV EDX,dword ptr [ESP + 0x24]
MOV CL,byte ptr [EDX + EAX*0x1]
TEST CL,CL
JZ 0x000a3684
MOV EBP,dword ptr [ESP + 0x28]
JMP 0x000a363a
CMP EAX,0x1a
JBE 0x000a3565
SUB ESP,0x8
PUSH EDX
LEA EAX,[EBX + 0xffffc314]
PUSH EAX
CALL 0x000192f3
MOV EAX,dword ptr [ESP + 0xc]
LEA EDI,[EDI + EAX*0x1 + 0x1]
SUB ESP,0xc
PUSH EDX
CALL 0x000175a0
POP EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x000175a0
ADD ESP,0x10
JMP 0x000a3565
MOV EAX,dword ptr [ESI + 0x8]
TEST EAX,EAX
JNZ 0x000a351c
MOV AL,byte ptr [EBP + 0x1]
CMP AL,0xa
JNZ 0x000a36ff
INC EDI
SUB ESP,0xc
PUSH EDI
CALL 0x00016b40
ADD ESP,0x10
MOV EBP,EAX
MOV EDX,EAX
MOV EAX,EDI
CALL 0x000a302d
MOV dword ptr [ESI + 0x24],EAX
ADD EDI,EBP
SUB ESP,0x8
PUSH 0x0
PUSH 0x0
MOV ECX,0xffffffff
MOV EDX,EAX
CALL 0x000a2f4d
ADD ESP,0x10
JMP 0x000a3565
SUB EAX,0x9
CMP AL,0x17
JNZ 0x000a3705
INC EDI
MOV AL,byte ptr [EDI]
CMP AL,0xa
JZ 0x000a36b9
CMP AL,0x5c
JNZ 0x000a36f1
JMP 0x000a36b9
CMP AL,0x4
JA 0x000a36ba
INC EDI
MOV AL,byte ptr [EDI]
CMP AL,0xa
JZ 0x000a36b9
JMP 0x000a36ff
LEA ECX,[EDX + -0x9]
CMP CL,0x17
JZ 0x000a378d
CMP CL,0x4
JBE 0x000a378d
CMP DL,0x67
JZ 0x000a377d
JBE 0x000a37ce
CMP DL,0x70
JZ 0x000a3796
JBE 0x000a37f0
CMP DL,0x77
JZ 0x000a379c
CMP DL,0x7d
JNZ 0x000a37e1
MOV EAX,dword ptr [ESP + 0x24]
CMP byte ptr [EAX],0x0
JZ 0x000a376a
MOV EAX,0x20
CALL 0x0001a2f5
MOV dword ptr [ESI + 0xc],EAX
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x24]
CALL 0x000bfea7
MOV EAX,dword ptr [ESP + 0x24]
SUB ESP,0xc
PUSH EAX
CALL 0x000175a0
ADD ESP,0x10
MOV EDI,EBP
JMP 0x000a3565
MOV EAX,dword ptr [ESP + 0x24]
CMP byte ptr [EAX],0x5e
JZ 0x000a378d
MOV dword ptr [ESI + 0x28],0x0
MOV EAX,dword ptr [ESP + 0xc]
JMP 0x000a34b0
OR byte ptr [ESI + 0x2c],0x4
JMP 0x000a378d
LEA EAX,[EDI + EAX*0x1 + 0x2]
MOV EDX,dword ptr [ESP + 0x14]
CALL 0x000a3224
ADD dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000193e3
MOV dword ptr [ESI + 0x20],EAX
MOV byte ptr [ESI + 0x2d],0xa
SUB ESP,0xc
PUSH dword ptr [ESP + 0x34]
CALL 0x000175a0
ADD ESP,0x10
JMP 0x000a378d
CMP DL,0x3b
JZ 0x000a3743
CMP DL,0x49
JZ 0x000a37f5
CMP DL,0x23
JZ 0x000a37fc
SUB ESP,0xc
LEA EAX,[EBX + 0xfffebc70]
PUSH EAX
CALL 0x000192f3
CMP DL,0x69
JNZ 0x000a37e1
OR dword ptr [ESP + 0x10],0x2
JMP 0x000a378d
SUB ESP,0xc
PUSH EBP
CALL 0x00016b40
ADD ESP,0x10
MOV EBP,dword ptr [ESP + 0xc]
ADD EBP,EAX
ADD EBP,EDI
MOV EAX,dword ptr [ESP + 0x24]
CMP byte ptr [EAX],0x0
JZ 0x000a376a
JMP 0x000a374c
INC EDI
LEA ECX,[ESI + 0x8]
LEA EDX,[ESI + 0x18]
MOV EAX,EDI
CALL 0x000a3087
ADD EDI,EAX
DEC EAX
TEST EAX,EAX
JNS 0x000a3429
JMP 0x000a341a
LEA EBP,[EAX + -0x1]
CMP byte ptr [EDI + EBP*0x1],0x5c
JNZ 0x000a331e
TEST EBP,EBP
JZ 0x000a3872
LEA EDX,[EAX + -0x2]
CMP byte ptr [EDI + EDX*0x1],0x5c
JNZ 0x000a3892
TEST EDX,EDX
JZ 0x000a386a
LEA ECX,[EDX + -0x1]
CMP byte ptr [EDI + EDX*0x1 + -0x1],0x5c
JZ 0x000a3896
SUB EAX,EDX
TEST AL,0x1
JZ 0x000a331e
TEST ESI,ESI
JNZ 0x000a3889
MOV EAX,EDI
CALL 0x0001a30f
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + 0x88],ESI
MOV byte ptr [ESI + EBP*0x1],0x0
JMP 0x000a3356
MOV EDX,EBP
JMP 0x000a3868
MOV EDX,ECX
TEST EDX,EDX
JNZ 0x000a385e
JMP 0x000a386a
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid __regparm3 FUN_000a32ae(byte *param_1,undefined4 param_2)\n\n{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00017e20();\n}\n\n" comment comment (function_definition "void __regparm3 FUN_000a32ae(byte *param_1,undefined4 param_2)\n\n{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00017e20();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000a32ae(byte *param_1,undefined4 param_2)" identifier (parameter_list "(byte *param_1,undefined4 param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00017e20();\n}" { (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }" if (parenthesized_expression "(DAT_000dc380 != (byte *)0x0)" ( (binary_expression "DAT_000dc380 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }" { (expression_statement "param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);" (assignment_expression "param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" identifier = (cast_expression "(byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" identifier (argument_list "(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" ( (pointer_expression "&DAT_000d7d04" & identifier) , identifier , identifier , identifier ))))) ;) (expression_statement "free(DAT_000dc380);" (call_expression "free(DAT_000dc380)" identifier (argument_list "(DAT_000dc380)" ( identifier ))) ;) (expression_statement "DAT_000dc380 = param_1;" (assignment_expression "DAT_000dc380 = param_1" identifier = identifier) ;) })) (expression_statement "pbVar7 = DAT_000dc380;" (assignment_expression "pbVar7 = DAT_000dc380" identifier = identifier) ;) (expression_statement "uVar3 = strlen((char *)param_1);" (assignment_expression "uVar3 = strlen((char *)param_1)" identifier = (call_expression "strlen((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" if (parenthesized_expression "((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c))" ( (binary_expression "(uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)" (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)" ( (comma_expression "iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c" (assignment_expression "iVar6 = uVar3 - 1" identifier = (binary_expression "uVar3 - 1" identifier - number_literal)) , (binary_expression "param_1[iVar6] != 0x5c" (subscript_expression "param_1[iVar6]" identifier [ identifier ]) != number_literal)) ))) )) (compound_statement "{\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }" { (labeled_statement "LAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);" do (compound_statement "{\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    }" { (while_statement "while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }" { (if_statement "if (*param_1 == 0) goto LAB_000a3337;" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (goto_statement "goto LAB_000a3337;" goto statement_identifier ;)) (expression_statement "sVar4 = strspn((char *)param_1,"; \n\r\t\v");" (assignment_expression "sVar4 = strspn((char *)param_1,"; \n\r\t\v")" identifier = (call_expression "strspn((char *)param_1,"; \n\r\t\v")" identifier (argument_list "((char *)param_1,"; \n\r\t\v")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""; \n\r\t\v"" " string_content escape_sequence escape_sequence escape_sequence escape_sequence ") )))) ;) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" identifier = (binary_expression "param_1 + sVar4" identifier + identifier)) ;) (if_statement "if (*param_1 == 0) goto LAB_000a3337;" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (goto_statement "goto LAB_000a3337;" goto statement_identifier ;)) (if_statement "if (*param_1 == 0x23) break;" if (parenthesized_expression "(*param_1 == 0x23)" ( (binary_expression "*param_1 == 0x23" (pointer_expression "*param_1" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar5 = (int *)FUN_0001a2f5();" (assignment_expression "piVar5 = (int *)FUN_0001a2f5()" identifier = (cast_expression "(int *)FUN_0001a2f5()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = FUN_000a3087();" (assignment_expression "iVar6 = FUN_000a3087()" identifier = (call_expression "FUN_000a3087()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1 = param_1 + iVar6;" (assignment_expression "param_1 = param_1 + iVar6" identifier = (binary_expression "param_1 + iVar6" identifier + identifier)) ;) (expression_statement "piVar5[5] = piVar5[4];" (assignment_expression "piVar5[5] = piVar5[4]" (subscript_expression "piVar5[5]" identifier [ number_literal ]) = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (if_statement "if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }" if (parenthesized_expression "(*param_1 == 0x2c)" ( (binary_expression "*param_1 == 0x2c" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }" { (if_statement "if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" if (parenthesized_expression "((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10))" ( (binary_expression "(param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)" (parenthesized_expression "(param_1[1] == 0x2b)" ( (binary_expression "param_1[1] == 0x2b" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((byte)(param_1[2] - 0x30) < 10)" ( (binary_expression "(byte)(param_1[2] - 0x30) < 10" (call_expression "(byte)(param_1[2] - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_1[2] - 0x30)" ( (binary_expression "param_1[2] - 0x30" (subscript_expression "param_1[2]" identifier [ number_literal ]) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }" { (expression_statement "iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);" (assignment_expression "iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10)" identifier = (call_expression "strtol((char *)(param_1 + 2),(char **)&local_24,10)" identifier (argument_list "((char *)(param_1 + 2),(char **)&local_24,10)" ( (cast_expression "(char *)(param_1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))) , (cast_expression "(char **)&local_24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_24" & identifier)) , number_literal )))) ;) (expression_statement "piVar5[6] = -2 - iVar6;" (assignment_expression "piVar5[6] = -2 - iVar6" (subscript_expression "piVar5[6]" identifier [ number_literal ]) = (binary_expression "-2 - iVar6" number_literal - identifier)) ;) }) (else_clause "else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" else (compound_statement "{\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" { (expression_statement "iVar6 = FUN_000a3087();" (assignment_expression "iVar6 = FUN_000a3087()" identifier = (call_expression "FUN_000a3087()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }))) (if_statement "if (iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("no address after comma");\n          }" { comment (expression_statement "FUN_000192f3("no address after comma");" (call_expression "FUN_000192f3("no address after comma")" identifier (argument_list "("no address after comma")" ( (string_literal ""no address after comma"" " string_content ") ))) ;) })) (expression_statement "piVar5[7] = piVar5[6];" (assignment_expression "piVar5[7] = piVar5[6]" (subscript_expression "piVar5[7]" identifier [ number_literal ]) = (subscript_expression "piVar5[6]" identifier [ number_literal ])) ;) })) (expression_statement "pbVar7 = (byte *)FUN_00019041();" (assignment_expression "pbVar7 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (if_statement "if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }" if (parenthesized_expression "(bVar2 == 0x21)" ( (binary_expression "bVar2 == 0x21" identifier == number_literal) )) (compound_statement "{\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }" { (expression_statement "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;" (assignment_expression "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar5 + 0xb) | 1" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "pbVar7 = (byte *)FUN_00019041();" (assignment_expression "pbVar7 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (expression_statement "uVar3 = (uint)bVar2;" (assignment_expression "uVar3 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("missing command");\n        }" { comment (expression_statement "FUN_000192f3("missing command");" (call_expression "FUN_000192f3("missing command")" identifier (argument_list "("missing command")" ( (string_literal ""missing command"" " string_content ") ))) ;) })) (expression_statement "param_1 = pbVar7 + 1;" (assignment_expression "param_1 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)((int)piVar5 + 0x2e) = bVar2;" (assignment_expression "*(byte *)((int)piVar5 + 0x2e) = bVar2" (pointer_expression "*(byte *)((int)piVar5 + 0x2e)" * (cast_expression "(byte *)((int)piVar5 + 0x2e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2e)" ( (binary_expression "(int)piVar5 + 0x2e" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);" (assignment_expression "pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" identifier = (call_expression "strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" identifier (argument_list "("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" ( (string_literal ""saicrw:btTydDgGhHlnNpPqx={}"" " string_content ") , identifier )))) ;) (expression_statement "pcVar9 = pcVar8 + -0xd7d6b;" (assignment_expression "pcVar9 = pcVar8 + -0xd7d6b" identifier = (binary_expression "pcVar8 + -0xd7d6b" identifier + number_literal)) ;) (if_statement "if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}")" ( (binary_expression "pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}"" identifier == (string_literal ""saicrw:btTydDgGhHlnNpPqx={}"" " string_content ")) )) (compound_statement "{\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }" { (expression_statement "pbVar7 = (byte *)FUN_000a31a8();" (assignment_expression "pbVar7 = (byte *)FUN_000a31a8()" identifier = (cast_expression "(byte *)FUN_000a31a8()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000a31a8()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar5[10] = 1;" (assignment_expression "piVar5[10] = 1" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);" do (compound_statement "{\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          }" { (while_statement "while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }" { (while_statement "while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }" { (do_statement "do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));" do (compound_statement "{\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                }" { (while_statement "while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "__s = param_1 + (int)pbVar7;" (assignment_expression "__s = param_1 + (int)pbVar7" identifier = (binary_expression "param_1 + (int)pbVar7" identifier + (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar2 = *__s;" (assignment_expression "bVar2 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (bVar2 == 0) goto LAB_000a3743;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a3743;" goto statement_identifier ;)) (if_statement "if (9 < (byte)(bVar2 - 0x30)) break;" if (parenthesized_expression "(9 < (byte)(bVar2 - 0x30))" ( (binary_expression "9 < (byte)(bVar2 - 0x30)" number_literal < (call_expression "(byte)(bVar2 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 0x30)" ( (binary_expression "bVar2 - 0x30" identifier - number_literal) )))) )) (break_statement "break;" break ;)) (if_statement "if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }" if (parenthesized_expression "(*local_28 != '^')" ( (binary_expression "*local_28 != '^'" (pointer_expression "*local_28" * identifier) != (char_literal "'^'" ' character ')) )) (compound_statement "{\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }" { (expression_statement "local_24 = __s;" (assignment_expression "local_24 = __s" identifier = identifier) ;) (expression_statement "lVar10 = strtol((char *)__s,(char **)&local_24,10);" (assignment_expression "lVar10 = strtol((char *)__s,(char **)&local_24,10)" identifier = (call_expression "strtol((char *)__s,(char **)&local_24,10)" identifier (argument_list "((char *)__s,(char **)&local_24,10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char **)&local_24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_24" & identifier)) , number_literal )))) ;) (expression_statement "piVar5[10] = lVar10;" (assignment_expression "piVar5[10] = lVar10" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar7 = local_24 + ~(uint)param_1;" (assignment_expression "pbVar7 = local_24 + ~(uint)param_1" identifier = (binary_expression "local_24 + ~(uint)param_1" identifier + (unary_expression "~(uint)param_1" ~ (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) })) })) }) while (parenthesized_expression "(((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5))" ( (binary_expression "((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5)" (parenthesized_expression "((byte)(bVar2 - 9) == 0x17)" ( (binary_expression "(byte)(bVar2 - 9) == 0x17" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) ))) == number_literal) )) || (parenthesized_expression "((byte)(bVar2 - 9) < 5)" ( (binary_expression "(byte)(bVar2 - 9) < 5" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) ))) < number_literal) ))) )) ;) (if_statement "if (bVar2 != 0x67) break;" if (parenthesized_expression "(bVar2 != 0x67)" ( (binary_expression "bVar2 != 0x67" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }" if (parenthesized_expression "(*local_28 != '^')" ( (binary_expression "*local_28 != '^'" (pointer_expression "*local_28" * identifier) != (char_literal "'^'" ' character ')) )) (compound_statement "{\n                  piVar5[10] = 0;\n                }" { (expression_statement "piVar5[10] = 0;" (assignment_expression "piVar5[10] = 0" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = number_literal) ;) })) })) (if_statement "if (bVar2 < 0x68) break;" if (parenthesized_expression "(bVar2 < 0x68)" ( (binary_expression "bVar2 < 0x68" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" if (parenthesized_expression "(bVar2 == 0x70)" ( (binary_expression "bVar2 == 0x70" identifier == number_literal) )) (compound_statement "{\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }" { (expression_statement "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;" (assignment_expression "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar5 + 0xb) | 4" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) | number_literal)) ;) }) (else_clause "else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" else (if_statement "if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" if (parenthesized_expression "(bVar2 < 0x71)" ( (binary_expression "bVar2 < 0x71" identifier < number_literal) )) (compound_statement "{\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }" { (if_statement "if (bVar2 != 0x69) goto LAB_000a37e1;" if (parenthesized_expression "(bVar2 != 0x69)" ( (binary_expression "bVar2 != 0x69" identifier != number_literal) )) (goto_statement "goto LAB_000a37e1;" goto statement_identifier ;)) }) (else_clause "else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" else (compound_statement "{\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" { (if_statement "if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }" if (parenthesized_expression "(bVar2 != 0x77)" ( (binary_expression "bVar2 != 0x77" identifier != number_literal) )) (compound_statement "{\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }" { (if_statement "if (bVar2 != 0x7d) goto LAB_000a37e1;" if (parenthesized_expression "(bVar2 != 0x7d)" ( (binary_expression "bVar2 != 0x7d" identifier != number_literal) )) (goto_statement "goto LAB_000a37e1;" goto statement_identifier ;)) (labeled_statement "LAB_000a3743:\n                  cVar12 = *local_28;" statement_identifier : (expression_statement "cVar12 = *local_28;" (assignment_expression "cVar12 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;)) (expression_statement "param_1 = __s;" (assignment_expression "param_1 = __s" identifier = identifier) ;) (goto_statement "goto joined_r0x000a3817;" goto statement_identifier ;) })) (expression_statement "iVar6 = FUN_000a3224();" (assignment_expression "iVar6 = FUN_000a3224()" identifier = (call_expression "FUN_000a3224()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar7 = pbVar7 + iVar6;" (assignment_expression "pbVar7 = pbVar7 + iVar6" identifier = (binary_expression "pbVar7 + iVar6" identifier + identifier)) ;) (expression_statement "iVar6 = FUN_000193e3();" (assignment_expression "iVar6 = FUN_000193e3()" identifier = (call_expression "FUN_000193e3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[8] = iVar6;" (assignment_expression "piVar5[8] = iVar6" (subscript_expression "piVar5[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar5 + 0x2d) = 10;" (assignment_expression "*(undefined1 *)((int)piVar5 + 0x2d) = 10" (pointer_expression "*(undefined1 *)((int)piVar5 + 0x2d)" * (cast_expression "(undefined1 *)((int)piVar5 + 0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2d)" ( (binary_expression "(int)piVar5 + 0x2d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }))))) })) (if_statement "if (bVar2 == 0x3b) goto LAB_000a3743;" if (parenthesized_expression "(bVar2 == 0x3b)" ( (binary_expression "bVar2 == 0x3b" identifier == number_literal) )) (goto_statement "goto LAB_000a3743;" goto statement_identifier ;)) }) while (parenthesized_expression "(bVar2 == 0x49)" ( (binary_expression "bVar2 == 0x49" identifier == number_literal) )) ;) (if_statement "if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }" if (parenthesized_expression "(bVar2 != 0x23)" ( (binary_expression "bVar2 != 0x23" identifier != number_literal) )) (compound_statement "{\nLAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");\n          }" { (labeled_statement "LAB_000a37e1:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("bad option in substitution expression");" statement_identifier : comment (expression_statement "FUN_000192f3("bad option in substitution expression");" (call_expression "FUN_000192f3("bad option in substitution expression")" identifier (argument_list "("bad option in substitution expression")" ( (string_literal ""bad option in substitution expression"" " string_content ") ))) ;)) })) (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "cVar12 = *local_28;" (assignment_expression "cVar12 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "param_1 = pbVar7 + sVar4 + (int)param_1;" (assignment_expression "param_1 = pbVar7 + sVar4 + (int)param_1" identifier = (binary_expression "pbVar7 + sVar4 + (int)param_1" (binary_expression "pbVar7 + sVar4" identifier + identifier) + (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "joined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" statement_identifier : (if_statement "if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" if (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" { (expression_statement "iVar6 = FUN_0001a2f5();" (assignment_expression "iVar6 = FUN_0001a2f5()" identifier = (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[3] = iVar6;" (assignment_expression "piVar5[3] = iVar6" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000bfea7();" (call_expression "FUN_000bfea7()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) }) (else_clause "else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 < (char *)0x4)" ( (binary_expression "pcVar9 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }" { (if_statement "if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }" if (parenthesized_expression "((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0))))" ( (binary_expression "(pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))" (parenthesized_expression "(pcVar9 != (char *)0x3)" ( (binary_expression "pcVar9 != (char *)0x3" identifier != (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((piVar5[6] != 0 || (piVar5[2] != 0)))" ( (parenthesized_expression "(piVar5[6] != 0 || (piVar5[2] != 0))" ( (binary_expression "piVar5[6] != 0 || (piVar5[2] != 0)" (binary_expression "piVar5[6] != 0" (subscript_expression "piVar5[6]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(piVar5[2] != 0)" ( (binary_expression "piVar5[2] != 0" (subscript_expression "piVar5[2]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }" { (labeled_statement "LAB_000a351c:\n                    /* WARNING: Subroutine does not return */\n            FUN_000192f3("command \'%c\' uses only one address",uVar3);" statement_identifier : comment (expression_statement "FUN_000192f3("command \'%c\' uses only one address",uVar3);" (call_expression "FUN_000192f3("command \'%c\' uses only one address",uVar3)" identifier (argument_list "("command \'%c\' uses only one address",uVar3)" ( (string_literal ""command \'%c\' uses only one address"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;)) })) (expression_statement "bVar2 = pbVar7[1];" (assignment_expression "bVar2 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }" while (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) (compound_statement "{\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }" { (while_statement "while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }" { (if_statement "if (bVar2 == 0x5c) goto LAB_000a36b9;" if (parenthesized_expression "(bVar2 == 0x5c)" ( (binary_expression "bVar2 == 0x5c" identifier == number_literal) )) (goto_statement "goto LAB_000a36b9;" goto statement_identifier ;)) (if_statement "if ((byte)(bVar2 - 9) == 0x17) break;" if (parenthesized_expression "((byte)(bVar2 - 9) == 0x17)" ( (binary_expression "(byte)(bVar2 - 9) == 0x17" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) ))) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;" if (parenthesized_expression "(4 < (byte)(bVar2 - 9))" ( (binary_expression "4 < (byte)(bVar2 - 9)" number_literal < (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) )))) )) (goto_statement "goto LAB_000a36ba;" goto statement_identifier ;)) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (bVar2 == 10) goto LAB_000a36b9;" if (parenthesized_expression "(bVar2 == 10)" ( (binary_expression "bVar2 == 10" identifier == number_literal) )) (goto_statement "goto LAB_000a36b9;" goto statement_identifier ;)) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) })) (labeled_statement "LAB_000a36b9:\n          param_1 = param_1 + 1;" statement_identifier : (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_000a36ba:\n          sVar4 = strlen((char *)param_1);" statement_identifier : (expression_statement "sVar4 = strlen((char *)param_1);" (assignment_expression "sVar4 = strlen((char *)param_1)" identifier = (call_expression "strlen((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "iVar6 = FUN_000a302d();" (assignment_expression "iVar6 = FUN_000a302d()" identifier = (call_expression "FUN_000a302d()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[9] = iVar6;" (assignment_expression "piVar5[9] = iVar6" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" identifier = (binary_expression "param_1 + sVar4" identifier + identifier)) ;) (expression_statement "FUN_000a2f4d(0,0);" (call_expression "FUN_000a2f4d(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) }) (else_clause "else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 < (char *)0x6)" ( (binary_expression "pcVar9 < (char *)0x6" identifier < (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }" { (if_statement "if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;" if (parenthesized_expression "((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))" ( (binary_expression "(pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0)))" (parenthesized_expression "(pcVar9 == &DAT_00000004)" ( (binary_expression "pcVar9 == &DAT_00000004" identifier == (pointer_expression "&DAT_00000004" & identifier)) )) && (parenthesized_expression "((piVar5[6] != 0 || (piVar5[2] != 0)))" ( (parenthesized_expression "(piVar5[6] != 0 || (piVar5[2] != 0))" ( (binary_expression "piVar5[6] != 0 || (piVar5[2] != 0)" (binary_expression "piVar5[6] != 0" (subscript_expression "piVar5[6]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(piVar5[2] != 0)" ( (binary_expression "piVar5[2] != 0" (subscript_expression "piVar5[2]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000a351c;" goto statement_identifier ;)) (expression_statement "iVar6 = FUN_000a3224();" (assignment_expression "iVar6 = FUN_000a3224()" identifier = (call_expression "FUN_000a3224()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1 = param_1 + iVar6;" (assignment_expression "param_1 = param_1 + iVar6" identifier = (binary_expression "param_1 + iVar6" identifier + identifier)) ;) (if_statement "if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }" if (parenthesized_expression "(*(char *)((int)piVar5 + 0x2e) == 'w')" ( (binary_expression "*(char *)((int)piVar5 + 0x2e) == 'w'" (pointer_expression "*(char *)((int)piVar5 + 0x2e)" * (cast_expression "(char *)((int)piVar5 + 0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2e)" ( (binary_expression "(int)piVar5 + 0x2e" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'w'" ' character ')) )) (compound_statement "{\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }" { (expression_statement "iVar6 = FUN_000193e3();" (assignment_expression "iVar6 = FUN_000193e3()" identifier = (call_expression "FUN_000193e3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[8] = iVar6;" (assignment_expression "piVar5[8] = iVar6" (subscript_expression "piVar5[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar5 + 0x2d) = 10;" (assignment_expression "*(undefined1 *)((int)piVar5 + 0x2d) = 10" (pointer_expression "*(undefined1 *)((int)piVar5 + 0x2d)" * (cast_expression "(undefined1 *)((int)piVar5 + 0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2d)" ( (binary_expression "(int)piVar5 + 0x2d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }) (else_clause "else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 < (char *)0xa)" ( (binary_expression "pcVar9 < (char *)0xa" identifier < (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }" { (expression_statement "param_1 = (byte *)FUN_00019041();" (assignment_expression "param_1 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) (expression_statement "sVar4 = strcspn((char *)param_1,"; \n\r\t\v");" (assignment_expression "sVar4 = strcspn((char *)param_1,"; \n\r\t\v")" identifier = (call_expression "strcspn((char *)param_1,"; \n\r\t\v")" identifier (argument_list "((char *)param_1,"; \n\r\t\v")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""; \n\r\t\v"" " string_content escape_sequence escape_sequence escape_sequence escape_sequence ") )))) ;) (if_statement "if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }" if (parenthesized_expression "(sVar4 != 0)" ( (binary_expression "sVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }" { (expression_statement "iVar6 = FUN_0001a346();" (assignment_expression "iVar6 = FUN_0001a346()" identifier = (call_expression "FUN_0001a346()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[9] = iVar6;" (assignment_expression "piVar5[9] = iVar6" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" identifier = (binary_expression "param_1 + sVar4" identifier + identifier)) ;) })) }) (else_clause "else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 == (char *)0xa)" ( (binary_expression "pcVar9 == (char *)0xa" identifier == (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }" { (expression_statement "bVar2 = pbVar7[1];" (assignment_expression "bVar2 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = FUN_000a31a8();" (assignment_expression "iVar6 = FUN_000a31a8()" identifier = (call_expression "FUN_000a31a8()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_000a2f4d(bVar2,bVar2);" (call_expression "FUN_000a2f4d(bVar2,bVar2)" identifier (argument_list "(bVar2,bVar2)" ( identifier , identifier ))) ;) (expression_statement "FUN_000a2f4d(bVar2,bVar2);" (call_expression "FUN_000a2f4d(bVar2,bVar2)" identifier (argument_list "(bVar2,bVar2)" ( identifier , identifier ))) ;) (expression_statement "strlen(local_28);" (call_expression "strlen(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "pcVar8 = (char *)FUN_0001a2f5();" (assignment_expression "pcVar8 = (char *)FUN_0001a2f5()" identifier = (cast_expression "(char *)FUN_0001a2f5()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar5[9] = (int)pcVar8;" (assignment_expression "piVar5[9] = (int)pcVar8" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }" if (parenthesized_expression "((*local_28 != '\0') && (*local_24 != 0))" ( (binary_expression "(*local_28 != '\0') && (*local_24 != 0)" (parenthesized_expression "(*local_28 != '\0')" ( (binary_expression "*local_28 != '\0'" (pointer_expression "*local_28" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*local_24 != 0)" ( (binary_expression "*local_24 != 0" (pointer_expression "*local_24" * identifier) != number_literal) ))) )) (compound_statement "{\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }" { (expression_statement "*pcVar8 = *local_28;" (assignment_expression "*pcVar8 = *local_28" (pointer_expression "*pcVar8" * identifier) = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "pcVar8[1] = *local_24;" (assignment_expression "pcVar8[1] = *local_24" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "cVar12 = local_28[1];" (assignment_expression "cVar12 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }" if (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (do_statement "do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');" do (compound_statement "{\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              }" { (if_statement "if (local_24[iVar11] == 0) break;" if (parenthesized_expression "(local_24[iVar11] == 0)" ( (binary_expression "local_24[iVar11] == 0" (subscript_expression "local_24[iVar11]" identifier [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(char *)(piVar5[9] + iVar11 * 2) = cVar12;" (assignment_expression "*(char *)(piVar5[9] + iVar11 * 2) = cVar12" (pointer_expression "*(char *)(piVar5[9] + iVar11 * 2)" * (cast_expression "(char *)(piVar5[9] + iVar11 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[9] + iVar11 * 2)" ( (binary_expression "piVar5[9] + iVar11 * 2" (subscript_expression "piVar5[9]" identifier [ number_literal ]) + (binary_expression "iVar11 * 2" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];" (assignment_expression "*(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11]" (pointer_expression "*(byte *)(piVar5[9] + 1 + iVar11 * 2)" * (cast_expression "(byte *)(piVar5[9] + 1 + iVar11 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[9] + 1 + iVar11 * 2)" ( (binary_expression "piVar5[9] + 1 + iVar11 * 2" (binary_expression "piVar5[9] + 1" (subscript_expression "piVar5[9]" identifier [ number_literal ]) + number_literal) + (binary_expression "iVar11 * 2" identifier * number_literal)) )))) = (subscript_expression "local_24[iVar11]" identifier [ identifier ])) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar12 = local_28[iVar11];" (assignment_expression "cVar12 = local_28[iVar11]" identifier = (subscript_expression "local_28[iVar11]" identifier [ identifier ])) ;) }) while (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "param_1 = pbVar7 + iVar6 + 2;" (assignment_expression "param_1 = pbVar7 + iVar6 + 2" identifier = (binary_expression "pbVar7 + iVar6 + 2" (binary_expression "pbVar7 + iVar6" identifier + identifier) + number_literal)) ;) (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }) (else_clause "else if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if ((char *)0x1a < pcVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "((char *)0x1a < pcVar9)" ( (binary_expression "(char *)0x1a < pcVar9" (cast_expression "(char *)0x1a" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_000192f3("unsupported command %c",uVar3);\n        }" { comment (expression_statement "FUN_000192f3("unsupported command %c",uVar3);" (call_expression "FUN_000192f3("unsupported command %c",uVar3)" identifier (argument_list "("unsupported command %c",uVar3)" ( (string_literal ""unsupported command %c"" " string_content ") , identifier ))) ;) })))))))))))) (expression_statement "*DAT_000dc378 = (int)piVar5;" (assignment_expression "*DAT_000dc378 = (int)piVar5" (pointer_expression "*DAT_000dc378" * identifier) = (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_000dc378 = piVar5;" (assignment_expression "DAT_000dc378 = piVar5" identifier = identifier) ;) })) (if_statement "if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }" if (parenthesized_expression "(param_1[1] == 0x6e)" ( (binary_expression "param_1[1] == 0x6e" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }" { (expression_statement "DAT_000dc2f8 = DAT_000dc2f8 + 1;" (assignment_expression "DAT_000dc2f8 = DAT_000dc2f8 + 1" identifier = (binary_expression "DAT_000dc2f8 + 1" identifier + number_literal)) ;) })) (expression_statement "param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));" (assignment_expression "param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" identifier = (cast_expression "(byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" identifier (argument_list "((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)((int)&DAT_000d7d07 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_000d7d07 + 3)" ( (binary_expression "(int)&DAT_000d7d07 + 3" (cast_expression "(int)&DAT_000d7d07" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_000d7d07" & identifier)) + number_literal) ))) ))))) ;) }) while (parenthesized_expression "(param_1 != (byte *)0x0)" ( (binary_expression "param_1 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (labeled_statement "LAB_000a3337:\n    free(DAT_000dc380);" statement_identifier : (expression_statement "free(DAT_000dc380);" (call_expression "free(DAT_000dc380)" identifier (argument_list "(DAT_000dc380)" ( identifier ))) ;)) (expression_statement "DAT_000dc380 = (byte *)0x0;" (assignment_expression "DAT_000dc380 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" else (compound_statement "{\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" { (if_statement "if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }" { (expression_statement "bVar2 = param_1[uVar3 - 2];" (assignment_expression "bVar2 = param_1[uVar3 - 2]" identifier = (subscript_expression "param_1[uVar3 - 2]" identifier [ (binary_expression "uVar3 - 2" identifier - number_literal) ])) ;) (expression_statement "iVar11 = iVar6;" (assignment_expression "iVar11 = iVar6" identifier = identifier) ;) (expression_statement "iVar1 = uVar3 - 2;" (assignment_expression "iVar1 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (while_statement "while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }" while (parenthesized_expression "(bVar2 == 0x5c)" ( (binary_expression "bVar2 == 0x5c" identifier == number_literal) )) (compound_statement "{\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }" { (if_statement "if (iVar1 == 0) goto LAB_000a386a;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a386a;" goto statement_identifier ;)) (expression_statement "bVar2 = param_1[iVar1 + -1];" (assignment_expression "bVar2 = param_1[iVar1 + -1]" identifier = (subscript_expression "param_1[iVar1 + -1]" identifier [ (binary_expression "iVar1 + -1" identifier + number_literal) ])) ;) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) })) (expression_statement "uVar3 = uVar3 - iVar11;" (assignment_expression "uVar3 = uVar3 - iVar11" identifier = (binary_expression "uVar3 - iVar11" identifier - identifier)) ;) (labeled_statement "LAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;" statement_identifier : (if_statement "if ((uVar3 & 1) == 0) goto LAB_000a3332;" if (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000a3332;" goto statement_identifier ;))) })) (if_statement "if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }" if (parenthesized_expression "(pbVar7 == (byte *)0x0)" ( (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }" { (expression_statement "pbVar7 = (byte *)FUN_0001a30f();" (assignment_expression "pbVar7 = (byte *)FUN_0001a30f()" identifier = (cast_expression "(byte *)FUN_0001a30f()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a30f()" identifier (argument_list "()" ( ))))) ;) (expression_statement "DAT_000dc380 = pbVar7;" (assignment_expression "DAT_000dc380 = pbVar7" identifier = identifier) ;) })) (expression_statement "pbVar7[iVar6] = 0;" (assignment_expression "pbVar7[iVar6] = 0" (subscript_expression "pbVar7[iVar6]" identifier [ identifier ]) = number_literal) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid add_cmd(void)\n\n{\n}\n\n" comment (function_definition "void add_cmd(void)\n\n{\n}" primitive_type (function_declarator "add_cmd(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n}" { })))
(translation_unit "void __regparm3 FUN_000a32ae(byte *param_1,undefined4 param_2)\n\n{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00017e20();\n}\n\n" (function_definition "void __regparm3 FUN_000a32ae(byte *param_1,undefined4 param_2)\n\n{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00017e20();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000a32ae(byte *param_1,undefined4 param_2)" identifier (parameter_list "(byte *param_1,undefined4 param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00017e20();\n}" { (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }" if (parenthesized_expression "(DAT_000dc380 != (byte *)0x0)" ( (binary_expression "DAT_000dc380 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }" { (expression_statement "param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);" (assignment_expression "param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" identifier = (cast_expression "(byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" identifier (argument_list "(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" ( (pointer_expression "&DAT_000d7d04" & identifier) , identifier , identifier , identifier ))))) ;) (expression_statement "free(DAT_000dc380);" (call_expression "free(DAT_000dc380)" identifier (argument_list "(DAT_000dc380)" ( identifier ))) ;) (expression_statement "DAT_000dc380 = param_1;" (assignment_expression "DAT_000dc380 = param_1" identifier = identifier) ;) })) (expression_statement "pbVar7 = DAT_000dc380;" (assignment_expression "pbVar7 = DAT_000dc380" identifier = identifier) ;) (expression_statement "uVar3 = strlen((char *)param_1);" (assignment_expression "uVar3 = strlen((char *)param_1)" identifier = (call_expression "strlen((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" if (parenthesized_expression "((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c))" ( (binary_expression "(uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)" (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)" ( (comma_expression "iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c" (assignment_expression "iVar6 = uVar3 - 1" identifier = (binary_expression "uVar3 - 1" identifier - number_literal)) , (binary_expression "param_1[iVar6] != 0x5c" (subscript_expression "param_1[iVar6]" identifier [ identifier ]) != number_literal)) ))) )) (compound_statement "{\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }" { (labeled_statement "LAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);" do (compound_statement "{\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    }" { (while_statement "while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }" { (if_statement "if (*param_1 == 0) goto LAB_000a3337;" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (goto_statement "goto LAB_000a3337;" goto statement_identifier ;)) (expression_statement "sVar4 = strspn((char *)param_1,"; \n\r\t\v");" (assignment_expression "sVar4 = strspn((char *)param_1,"; \n\r\t\v")" identifier = (call_expression "strspn((char *)param_1,"; \n\r\t\v")" identifier (argument_list "((char *)param_1,"; \n\r\t\v")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""; \n\r\t\v"" " string_content escape_sequence escape_sequence escape_sequence escape_sequence ") )))) ;) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" identifier = (binary_expression "param_1 + sVar4" identifier + identifier)) ;) (if_statement "if (*param_1 == 0) goto LAB_000a3337;" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (goto_statement "goto LAB_000a3337;" goto statement_identifier ;)) (if_statement "if (*param_1 == 0x23) break;" if (parenthesized_expression "(*param_1 == 0x23)" ( (binary_expression "*param_1 == 0x23" (pointer_expression "*param_1" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar5 = (int *)FUN_0001a2f5();" (assignment_expression "piVar5 = (int *)FUN_0001a2f5()" identifier = (cast_expression "(int *)FUN_0001a2f5()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = FUN_000a3087();" (assignment_expression "iVar6 = FUN_000a3087()" identifier = (call_expression "FUN_000a3087()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1 = param_1 + iVar6;" (assignment_expression "param_1 = param_1 + iVar6" identifier = (binary_expression "param_1 + iVar6" identifier + identifier)) ;) (expression_statement "piVar5[5] = piVar5[4];" (assignment_expression "piVar5[5] = piVar5[4]" (subscript_expression "piVar5[5]" identifier [ number_literal ]) = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (if_statement "if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }" if (parenthesized_expression "(*param_1 == 0x2c)" ( (binary_expression "*param_1 == 0x2c" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }" { (if_statement "if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" if (parenthesized_expression "((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10))" ( (binary_expression "(param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)" (parenthesized_expression "(param_1[1] == 0x2b)" ( (binary_expression "param_1[1] == 0x2b" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((byte)(param_1[2] - 0x30) < 10)" ( (binary_expression "(byte)(param_1[2] - 0x30) < 10" (call_expression "(byte)(param_1[2] - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_1[2] - 0x30)" ( (binary_expression "param_1[2] - 0x30" (subscript_expression "param_1[2]" identifier [ number_literal ]) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }" { (expression_statement "iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);" (assignment_expression "iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10)" identifier = (call_expression "strtol((char *)(param_1 + 2),(char **)&local_24,10)" identifier (argument_list "((char *)(param_1 + 2),(char **)&local_24,10)" ( (cast_expression "(char *)(param_1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))) , (cast_expression "(char **)&local_24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_24" & identifier)) , number_literal )))) ;) (expression_statement "piVar5[6] = -2 - iVar6;" (assignment_expression "piVar5[6] = -2 - iVar6" (subscript_expression "piVar5[6]" identifier [ number_literal ]) = (binary_expression "-2 - iVar6" number_literal - identifier)) ;) }) (else_clause "else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" else (compound_statement "{\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" { (expression_statement "iVar6 = FUN_000a3087();" (assignment_expression "iVar6 = FUN_000a3087()" identifier = (call_expression "FUN_000a3087()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }))) (if_statement "if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n            FUN_000192f3("no address after comma");\n          }" { (expression_statement "FUN_000192f3("no address after comma");" (call_expression "FUN_000192f3("no address after comma")" identifier (argument_list "("no address after comma")" ( (string_literal ""no address after comma"" " string_content ") ))) ;) })) (expression_statement "piVar5[7] = piVar5[6];" (assignment_expression "piVar5[7] = piVar5[6]" (subscript_expression "piVar5[7]" identifier [ number_literal ]) = (subscript_expression "piVar5[6]" identifier [ number_literal ])) ;) })) (expression_statement "pbVar7 = (byte *)FUN_00019041();" (assignment_expression "pbVar7 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (if_statement "if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }" if (parenthesized_expression "(bVar2 == 0x21)" ( (binary_expression "bVar2 == 0x21" identifier == number_literal) )) (compound_statement "{\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }" { (expression_statement "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;" (assignment_expression "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar5 + 0xb) | 1" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "pbVar7 = (byte *)FUN_00019041();" (assignment_expression "pbVar7 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (expression_statement "uVar3 = (uint)bVar2;" (assignment_expression "uVar3 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_000192f3("missing command");\n        }" { (expression_statement "FUN_000192f3("missing command");" (call_expression "FUN_000192f3("missing command")" identifier (argument_list "("missing command")" ( (string_literal ""missing command"" " string_content ") ))) ;) })) (expression_statement "param_1 = pbVar7 + 1;" (assignment_expression "param_1 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)((int)piVar5 + 0x2e) = bVar2;" (assignment_expression "*(byte *)((int)piVar5 + 0x2e) = bVar2" (pointer_expression "*(byte *)((int)piVar5 + 0x2e)" * (cast_expression "(byte *)((int)piVar5 + 0x2e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2e)" ( (binary_expression "(int)piVar5 + 0x2e" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);" (assignment_expression "pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" identifier = (call_expression "strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" identifier (argument_list "("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" ( (string_literal ""saicrw:btTydDgGhHlnNpPqx={}"" " string_content ") , identifier )))) ;) (expression_statement "pcVar9 = pcVar8 + -0xd7d6b;" (assignment_expression "pcVar9 = pcVar8 + -0xd7d6b" identifier = (binary_expression "pcVar8 + -0xd7d6b" identifier + number_literal)) ;) (if_statement "if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}")" ( (binary_expression "pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}"" identifier == (string_literal ""saicrw:btTydDgGhHlnNpPqx={}"" " string_content ")) )) (compound_statement "{\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }" { (expression_statement "pbVar7 = (byte *)FUN_000a31a8();" (assignment_expression "pbVar7 = (byte *)FUN_000a31a8()" identifier = (cast_expression "(byte *)FUN_000a31a8()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000a31a8()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar5[10] = 1;" (assignment_expression "piVar5[10] = 1" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);" do (compound_statement "{\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          }" { (while_statement "while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }" { (while_statement "while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }" { (do_statement "do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));" do (compound_statement "{\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                }" { (while_statement "while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "__s = param_1 + (int)pbVar7;" (assignment_expression "__s = param_1 + (int)pbVar7" identifier = (binary_expression "param_1 + (int)pbVar7" identifier + (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar2 = *__s;" (assignment_expression "bVar2 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (bVar2 == 0) goto LAB_000a3743;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a3743;" goto statement_identifier ;)) (if_statement "if (9 < (byte)(bVar2 - 0x30)) break;" if (parenthesized_expression "(9 < (byte)(bVar2 - 0x30))" ( (binary_expression "9 < (byte)(bVar2 - 0x30)" number_literal < (call_expression "(byte)(bVar2 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 0x30)" ( (binary_expression "bVar2 - 0x30" identifier - number_literal) )))) )) (break_statement "break;" break ;)) (if_statement "if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }" if (parenthesized_expression "(*local_28 != '^')" ( (binary_expression "*local_28 != '^'" (pointer_expression "*local_28" * identifier) != (char_literal "'^'" ' character ')) )) (compound_statement "{\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }" { (expression_statement "local_24 = __s;" (assignment_expression "local_24 = __s" identifier = identifier) ;) (expression_statement "lVar10 = strtol((char *)__s,(char **)&local_24,10);" (assignment_expression "lVar10 = strtol((char *)__s,(char **)&local_24,10)" identifier = (call_expression "strtol((char *)__s,(char **)&local_24,10)" identifier (argument_list "((char *)__s,(char **)&local_24,10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char **)&local_24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_24" & identifier)) , number_literal )))) ;) (expression_statement "piVar5[10] = lVar10;" (assignment_expression "piVar5[10] = lVar10" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar7 = local_24 + ~(uint)param_1;" (assignment_expression "pbVar7 = local_24 + ~(uint)param_1" identifier = (binary_expression "local_24 + ~(uint)param_1" identifier + (unary_expression "~(uint)param_1" ~ (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) })) })) }) while (parenthesized_expression "(((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5))" ( (binary_expression "((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5)" (parenthesized_expression "((byte)(bVar2 - 9) == 0x17)" ( (binary_expression "(byte)(bVar2 - 9) == 0x17" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) ))) == number_literal) )) || (parenthesized_expression "((byte)(bVar2 - 9) < 5)" ( (binary_expression "(byte)(bVar2 - 9) < 5" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) ))) < number_literal) ))) )) ;) (if_statement "if (bVar2 != 0x67) break;" if (parenthesized_expression "(bVar2 != 0x67)" ( (binary_expression "bVar2 != 0x67" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }" if (parenthesized_expression "(*local_28 != '^')" ( (binary_expression "*local_28 != '^'" (pointer_expression "*local_28" * identifier) != (char_literal "'^'" ' character ')) )) (compound_statement "{\n                  piVar5[10] = 0;\n                }" { (expression_statement "piVar5[10] = 0;" (assignment_expression "piVar5[10] = 0" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = number_literal) ;) })) })) (if_statement "if (bVar2 < 0x68) break;" if (parenthesized_expression "(bVar2 < 0x68)" ( (binary_expression "bVar2 < 0x68" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" if (parenthesized_expression "(bVar2 == 0x70)" ( (binary_expression "bVar2 == 0x70" identifier == number_literal) )) (compound_statement "{\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }" { (expression_statement "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;" (assignment_expression "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar5 + 0xb) | 4" (pointer_expression "*(byte *)(piVar5 + 0xb)" * (cast_expression "(byte *)(piVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0xb)" ( (binary_expression "piVar5 + 0xb" identifier + number_literal) )))) | number_literal)) ;) }) (else_clause "else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" else (if_statement "if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" if (parenthesized_expression "(bVar2 < 0x71)" ( (binary_expression "bVar2 < 0x71" identifier < number_literal) )) (compound_statement "{\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }" { (if_statement "if (bVar2 != 0x69) goto LAB_000a37e1;" if (parenthesized_expression "(bVar2 != 0x69)" ( (binary_expression "bVar2 != 0x69" identifier != number_literal) )) (goto_statement "goto LAB_000a37e1;" goto statement_identifier ;)) }) (else_clause "else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" else (compound_statement "{\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" { (if_statement "if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }" if (parenthesized_expression "(bVar2 != 0x77)" ( (binary_expression "bVar2 != 0x77" identifier != number_literal) )) (compound_statement "{\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }" { (if_statement "if (bVar2 != 0x7d) goto LAB_000a37e1;" if (parenthesized_expression "(bVar2 != 0x7d)" ( (binary_expression "bVar2 != 0x7d" identifier != number_literal) )) (goto_statement "goto LAB_000a37e1;" goto statement_identifier ;)) (labeled_statement "LAB_000a3743:\n                  cVar12 = *local_28;" statement_identifier : (expression_statement "cVar12 = *local_28;" (assignment_expression "cVar12 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;)) (expression_statement "param_1 = __s;" (assignment_expression "param_1 = __s" identifier = identifier) ;) (goto_statement "goto joined_r0x000a3817;" goto statement_identifier ;) })) (expression_statement "iVar6 = FUN_000a3224();" (assignment_expression "iVar6 = FUN_000a3224()" identifier = (call_expression "FUN_000a3224()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar7 = pbVar7 + iVar6;" (assignment_expression "pbVar7 = pbVar7 + iVar6" identifier = (binary_expression "pbVar7 + iVar6" identifier + identifier)) ;) (expression_statement "iVar6 = FUN_000193e3();" (assignment_expression "iVar6 = FUN_000193e3()" identifier = (call_expression "FUN_000193e3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[8] = iVar6;" (assignment_expression "piVar5[8] = iVar6" (subscript_expression "piVar5[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar5 + 0x2d) = 10;" (assignment_expression "*(undefined1 *)((int)piVar5 + 0x2d) = 10" (pointer_expression "*(undefined1 *)((int)piVar5 + 0x2d)" * (cast_expression "(undefined1 *)((int)piVar5 + 0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2d)" ( (binary_expression "(int)piVar5 + 0x2d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }))))) })) (if_statement "if (bVar2 == 0x3b) goto LAB_000a3743;" if (parenthesized_expression "(bVar2 == 0x3b)" ( (binary_expression "bVar2 == 0x3b" identifier == number_literal) )) (goto_statement "goto LAB_000a3743;" goto statement_identifier ;)) }) while (parenthesized_expression "(bVar2 == 0x49)" ( (binary_expression "bVar2 == 0x49" identifier == number_literal) )) ;) (if_statement "if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }" if (parenthesized_expression "(bVar2 != 0x23)" ( (binary_expression "bVar2 != 0x23" identifier != number_literal) )) (compound_statement "{\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }" { (labeled_statement "LAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");" statement_identifier : (expression_statement "FUN_000192f3("bad option in substitution expression");" (call_expression "FUN_000192f3("bad option in substitution expression")" identifier (argument_list "("bad option in substitution expression")" ( (string_literal ""bad option in substitution expression"" " string_content ") ))) ;)) })) (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "cVar12 = *local_28;" (assignment_expression "cVar12 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "param_1 = pbVar7 + sVar4 + (int)param_1;" (assignment_expression "param_1 = pbVar7 + sVar4 + (int)param_1" identifier = (binary_expression "pbVar7 + sVar4 + (int)param_1" (binary_expression "pbVar7 + sVar4" identifier + identifier) + (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "joined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" statement_identifier : (if_statement "if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" if (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" { (expression_statement "iVar6 = FUN_0001a2f5();" (assignment_expression "iVar6 = FUN_0001a2f5()" identifier = (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[3] = iVar6;" (assignment_expression "piVar5[3] = iVar6" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000bfea7();" (call_expression "FUN_000bfea7()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) }) (else_clause "else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 < (char *)0x4)" ( (binary_expression "pcVar9 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }" { (if_statement "if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }" if (parenthesized_expression "((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0))))" ( (binary_expression "(pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))" (parenthesized_expression "(pcVar9 != (char *)0x3)" ( (binary_expression "pcVar9 != (char *)0x3" identifier != (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((piVar5[6] != 0 || (piVar5[2] != 0)))" ( (parenthesized_expression "(piVar5[6] != 0 || (piVar5[2] != 0))" ( (binary_expression "piVar5[6] != 0 || (piVar5[2] != 0)" (binary_expression "piVar5[6] != 0" (subscript_expression "piVar5[6]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(piVar5[2] != 0)" ( (binary_expression "piVar5[2] != 0" (subscript_expression "piVar5[2]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }" { (labeled_statement "LAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);" statement_identifier : (expression_statement "FUN_000192f3("command \'%c\' uses only one address",uVar3);" (call_expression "FUN_000192f3("command \'%c\' uses only one address",uVar3)" identifier (argument_list "("command \'%c\' uses only one address",uVar3)" ( (string_literal ""command \'%c\' uses only one address"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;)) })) (expression_statement "bVar2 = pbVar7[1];" (assignment_expression "bVar2 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }" while (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) (compound_statement "{\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }" { (while_statement "while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }" { (if_statement "if (bVar2 == 0x5c) goto LAB_000a36b9;" if (parenthesized_expression "(bVar2 == 0x5c)" ( (binary_expression "bVar2 == 0x5c" identifier == number_literal) )) (goto_statement "goto LAB_000a36b9;" goto statement_identifier ;)) (if_statement "if ((byte)(bVar2 - 9) == 0x17) break;" if (parenthesized_expression "((byte)(bVar2 - 9) == 0x17)" ( (binary_expression "(byte)(bVar2 - 9) == 0x17" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) ))) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;" if (parenthesized_expression "(4 < (byte)(bVar2 - 9))" ( (binary_expression "4 < (byte)(bVar2 - 9)" number_literal < (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 - 9)" ( (binary_expression "bVar2 - 9" identifier - number_literal) )))) )) (goto_statement "goto LAB_000a36ba;" goto statement_identifier ;)) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (bVar2 == 10) goto LAB_000a36b9;" if (parenthesized_expression "(bVar2 == 10)" ( (binary_expression "bVar2 == 10" identifier == number_literal) )) (goto_statement "goto LAB_000a36b9;" goto statement_identifier ;)) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) })) (labeled_statement "LAB_000a36b9:\n          param_1 = param_1 + 1;" statement_identifier : (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_000a36ba:\n          sVar4 = strlen((char *)param_1);" statement_identifier : (expression_statement "sVar4 = strlen((char *)param_1);" (assignment_expression "sVar4 = strlen((char *)param_1)" identifier = (call_expression "strlen((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "iVar6 = FUN_000a302d();" (assignment_expression "iVar6 = FUN_000a302d()" identifier = (call_expression "FUN_000a302d()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[9] = iVar6;" (assignment_expression "piVar5[9] = iVar6" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" identifier = (binary_expression "param_1 + sVar4" identifier + identifier)) ;) (expression_statement "FUN_000a2f4d(0,0);" (call_expression "FUN_000a2f4d(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) }) (else_clause "else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 < (char *)0x6)" ( (binary_expression "pcVar9 < (char *)0x6" identifier < (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }" { (if_statement "if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;" if (parenthesized_expression "((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))" ( (binary_expression "(pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0)))" (parenthesized_expression "(pcVar9 == &DAT_00000004)" ( (binary_expression "pcVar9 == &DAT_00000004" identifier == (pointer_expression "&DAT_00000004" & identifier)) )) && (parenthesized_expression "((piVar5[6] != 0 || (piVar5[2] != 0)))" ( (parenthesized_expression "(piVar5[6] != 0 || (piVar5[2] != 0))" ( (binary_expression "piVar5[6] != 0 || (piVar5[2] != 0)" (binary_expression "piVar5[6] != 0" (subscript_expression "piVar5[6]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(piVar5[2] != 0)" ( (binary_expression "piVar5[2] != 0" (subscript_expression "piVar5[2]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000a351c;" goto statement_identifier ;)) (expression_statement "iVar6 = FUN_000a3224();" (assignment_expression "iVar6 = FUN_000a3224()" identifier = (call_expression "FUN_000a3224()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1 = param_1 + iVar6;" (assignment_expression "param_1 = param_1 + iVar6" identifier = (binary_expression "param_1 + iVar6" identifier + identifier)) ;) (if_statement "if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }" if (parenthesized_expression "(*(char *)((int)piVar5 + 0x2e) == 'w')" ( (binary_expression "*(char *)((int)piVar5 + 0x2e) == 'w'" (pointer_expression "*(char *)((int)piVar5 + 0x2e)" * (cast_expression "(char *)((int)piVar5 + 0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2e)" ( (binary_expression "(int)piVar5 + 0x2e" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'w'" ' character ')) )) (compound_statement "{\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }" { (expression_statement "iVar6 = FUN_000193e3();" (assignment_expression "iVar6 = FUN_000193e3()" identifier = (call_expression "FUN_000193e3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[8] = iVar6;" (assignment_expression "piVar5[8] = iVar6" (subscript_expression "piVar5[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar5 + 0x2d) = 10;" (assignment_expression "*(undefined1 *)((int)piVar5 + 0x2d) = 10" (pointer_expression "*(undefined1 *)((int)piVar5 + 0x2d)" * (cast_expression "(undefined1 *)((int)piVar5 + 0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x2d)" ( (binary_expression "(int)piVar5 + 0x2d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }) (else_clause "else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 < (char *)0xa)" ( (binary_expression "pcVar9 < (char *)0xa" identifier < (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }" { (expression_statement "param_1 = (byte *)FUN_00019041();" (assignment_expression "param_1 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) (expression_statement "sVar4 = strcspn((char *)param_1,"; \n\r\t\v");" (assignment_expression "sVar4 = strcspn((char *)param_1,"; \n\r\t\v")" identifier = (call_expression "strcspn((char *)param_1,"; \n\r\t\v")" identifier (argument_list "((char *)param_1,"; \n\r\t\v")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""; \n\r\t\v"" " string_content escape_sequence escape_sequence escape_sequence escape_sequence ") )))) ;) (if_statement "if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }" if (parenthesized_expression "(sVar4 != 0)" ( (binary_expression "sVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }" { (expression_statement "iVar6 = FUN_0001a346();" (assignment_expression "iVar6 = FUN_0001a346()" identifier = (call_expression "FUN_0001a346()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5[9] = iVar6;" (assignment_expression "piVar5[9] = iVar6" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" identifier = (binary_expression "param_1 + sVar4" identifier + identifier)) ;) })) }) (else_clause "else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "(pcVar9 == (char *)0xa)" ( (binary_expression "pcVar9 == (char *)0xa" identifier == (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }" { (expression_statement "bVar2 = pbVar7[1];" (assignment_expression "bVar2 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = FUN_000a31a8();" (assignment_expression "iVar6 = FUN_000a31a8()" identifier = (call_expression "FUN_000a31a8()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_000a2f4d(bVar2,bVar2);" (call_expression "FUN_000a2f4d(bVar2,bVar2)" identifier (argument_list "(bVar2,bVar2)" ( identifier , identifier ))) ;) (expression_statement "FUN_000a2f4d(bVar2,bVar2);" (call_expression "FUN_000a2f4d(bVar2,bVar2)" identifier (argument_list "(bVar2,bVar2)" ( identifier , identifier ))) ;) (expression_statement "strlen(local_28);" (call_expression "strlen(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "pcVar8 = (char *)FUN_0001a2f5();" (assignment_expression "pcVar8 = (char *)FUN_0001a2f5()" identifier = (cast_expression "(char *)FUN_0001a2f5()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2f5()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar5[9] = (int)pcVar8;" (assignment_expression "piVar5[9] = (int)pcVar8" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }" if (parenthesized_expression "((*local_28 != '\0') && (*local_24 != 0))" ( (binary_expression "(*local_28 != '\0') && (*local_24 != 0)" (parenthesized_expression "(*local_28 != '\0')" ( (binary_expression "*local_28 != '\0'" (pointer_expression "*local_28" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*local_24 != 0)" ( (binary_expression "*local_24 != 0" (pointer_expression "*local_24" * identifier) != number_literal) ))) )) (compound_statement "{\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }" { (expression_statement "*pcVar8 = *local_28;" (assignment_expression "*pcVar8 = *local_28" (pointer_expression "*pcVar8" * identifier) = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "pcVar8[1] = *local_24;" (assignment_expression "pcVar8[1] = *local_24" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "cVar12 = local_28[1];" (assignment_expression "cVar12 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }" if (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (do_statement "do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');" do (compound_statement "{\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              }" { (if_statement "if (local_24[iVar11] == 0) break;" if (parenthesized_expression "(local_24[iVar11] == 0)" ( (binary_expression "local_24[iVar11] == 0" (subscript_expression "local_24[iVar11]" identifier [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(char *)(piVar5[9] + iVar11 * 2) = cVar12;" (assignment_expression "*(char *)(piVar5[9] + iVar11 * 2) = cVar12" (pointer_expression "*(char *)(piVar5[9] + iVar11 * 2)" * (cast_expression "(char *)(piVar5[9] + iVar11 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[9] + iVar11 * 2)" ( (binary_expression "piVar5[9] + iVar11 * 2" (subscript_expression "piVar5[9]" identifier [ number_literal ]) + (binary_expression "iVar11 * 2" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];" (assignment_expression "*(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11]" (pointer_expression "*(byte *)(piVar5[9] + 1 + iVar11 * 2)" * (cast_expression "(byte *)(piVar5[9] + 1 + iVar11 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[9] + 1 + iVar11 * 2)" ( (binary_expression "piVar5[9] + 1 + iVar11 * 2" (binary_expression "piVar5[9] + 1" (subscript_expression "piVar5[9]" identifier [ number_literal ]) + number_literal) + (binary_expression "iVar11 * 2" identifier * number_literal)) )))) = (subscript_expression "local_24[iVar11]" identifier [ identifier ])) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar12 = local_28[iVar11];" (assignment_expression "cVar12 = local_28[iVar11]" identifier = (subscript_expression "local_28[iVar11]" identifier [ identifier ])) ;) }) while (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "param_1 = pbVar7 + iVar6 + 2;" (assignment_expression "param_1 = pbVar7 + iVar6 + 2" identifier = (binary_expression "pbVar7 + iVar6 + 2" (binary_expression "pbVar7 + iVar6" identifier + identifier) + number_literal)) ;) (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }) (else_clause "else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" else (if_statement "if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" if (parenthesized_expression "((char *)0x1a < pcVar9)" ( (binary_expression "(char *)0x1a < pcVar9" (cast_expression "(char *)0x1a" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" { (expression_statement "FUN_000192f3("unsupported command %c",uVar3);" (call_expression "FUN_000192f3("unsupported command %c",uVar3)" identifier (argument_list "("unsupported command %c",uVar3)" ( (string_literal ""unsupported command %c"" " string_content ") , identifier ))) ;) })))))))))))) (expression_statement "*DAT_000dc378 = (int)piVar5;" (assignment_expression "*DAT_000dc378 = (int)piVar5" (pointer_expression "*DAT_000dc378" * identifier) = (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_000dc378 = piVar5;" (assignment_expression "DAT_000dc378 = piVar5" identifier = identifier) ;) })) (if_statement "if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }" if (parenthesized_expression "(param_1[1] == 0x6e)" ( (binary_expression "param_1[1] == 0x6e" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }" { (expression_statement "DAT_000dc2f8 = DAT_000dc2f8 + 1;" (assignment_expression "DAT_000dc2f8 = DAT_000dc2f8 + 1" identifier = (binary_expression "DAT_000dc2f8 + 1" identifier + number_literal)) ;) })) (expression_statement "param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));" (assignment_expression "param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" identifier = (cast_expression "(byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" identifier (argument_list "((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)((int)&DAT_000d7d07 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_000d7d07 + 3)" ( (binary_expression "(int)&DAT_000d7d07 + 3" (cast_expression "(int)&DAT_000d7d07" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_000d7d07" & identifier)) + number_literal) ))) ))))) ;) }) while (parenthesized_expression "(param_1 != (byte *)0x0)" ( (binary_expression "param_1 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (labeled_statement "LAB_000a3337:\n    free(DAT_000dc380);" statement_identifier : (expression_statement "free(DAT_000dc380);" (call_expression "free(DAT_000dc380)" identifier (argument_list "(DAT_000dc380)" ( identifier ))) ;)) (expression_statement "DAT_000dc380 = (byte *)0x0;" (assignment_expression "DAT_000dc380 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" else (compound_statement "{\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" { (if_statement "if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }" { (expression_statement "bVar2 = param_1[uVar3 - 2];" (assignment_expression "bVar2 = param_1[uVar3 - 2]" identifier = (subscript_expression "param_1[uVar3 - 2]" identifier [ (binary_expression "uVar3 - 2" identifier - number_literal) ])) ;) (expression_statement "iVar11 = iVar6;" (assignment_expression "iVar11 = iVar6" identifier = identifier) ;) (expression_statement "iVar1 = uVar3 - 2;" (assignment_expression "iVar1 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (while_statement "while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }" while (parenthesized_expression "(bVar2 == 0x5c)" ( (binary_expression "bVar2 == 0x5c" identifier == number_literal) )) (compound_statement "{\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }" { (if_statement "if (iVar1 == 0) goto LAB_000a386a;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a386a;" goto statement_identifier ;)) (expression_statement "bVar2 = param_1[iVar1 + -1];" (assignment_expression "bVar2 = param_1[iVar1 + -1]" identifier = (subscript_expression "param_1[iVar1 + -1]" identifier [ (binary_expression "iVar1 + -1" identifier + number_literal) ])) ;) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) })) (expression_statement "uVar3 = uVar3 - iVar11;" (assignment_expression "uVar3 = uVar3 - iVar11" identifier = (binary_expression "uVar3 - iVar11" identifier - identifier)) ;) (labeled_statement "LAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;" statement_identifier : (if_statement "if ((uVar3 & 1) == 0) goto LAB_000a3332;" if (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000a3332;" goto statement_identifier ;))) })) (if_statement "if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }" if (parenthesized_expression "(pbVar7 == (byte *)0x0)" ( (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }" { (expression_statement "pbVar7 = (byte *)FUN_0001a30f();" (assignment_expression "pbVar7 = (byte *)FUN_0001a30f()" identifier = (cast_expression "(byte *)FUN_0001a30f()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a30f()" identifier (argument_list "()" ( ))))) ;) (expression_statement "DAT_000dc380 = pbVar7;" (assignment_expression "DAT_000dc380 = pbVar7" identifier = identifier) ;) })) (expression_statement "pbVar7[iVar6] = 0;" (assignment_expression "pbVar7[iVar6] = 0" (subscript_expression "pbVar7[iVar6]" identifier [ identifier ]) = number_literal) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content escape_sequence escape_sequence escape_sequence escape_sequence ") )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression LIT - IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (string_literal " string_content ")) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) == LIT) )) || (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) ))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content escape_sequence escape_sequence escape_sequence escape_sequence ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }) (else_clause else (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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + (binary_expression IDENT * LIT)) )))) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) })))))))))))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) ))) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT - LIT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __regparm3 FUN_000a32ae(byte *param_1,undefined4 param_2)\n\n{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00017e20();\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000a32ae(byte *param_1,undefined4 param_2)" (identifier "FUN_000a32ae") (parameter_list "(byte *param_1,undefined4 param_2)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte *__s;\n  int iVar1;\n  byte bVar2;\n  uint uVar3;\n  size_t sVar4;\n  int *piVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  char *pcVar9;\n  long lVar10;\n  int iVar11;\n  char cVar12;\n  int in_GS_OFFSET;\n  char *local_28;\n  byte *local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }\n  pbVar7 = DAT_000dc380;\n  uVar3 = strlen((char *)param_1);\n  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00017e20();\n}" ({ "{") (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "char cVar12;" (primitive_type "char") (identifier "cVar12") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "char *local_28;" (primitive_type "char") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "byte *local_24;" (type_identifier "byte") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (DAT_000dc380 != (byte *)0x0) {\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }" (if "if") (parenthesized_expression "(DAT_000dc380 != (byte *)0x0)" (( "(") (binary_expression "DAT_000dc380 != (byte *)0x0" (identifier "DAT_000dc380") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);\n    free(DAT_000dc380);\n    DAT_000dc380 = param_1;\n  }" ({ "{") (expression_statement "param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);" (assignment_expression "param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" (identifier "param_1") (= "=") (cast_expression "(byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" (identifier "FUN_0001a76c") (argument_list "(&DAT_000d7d04,DAT_000dc380,param_1,param_2)" (( "(") (pointer_expression "&DAT_000d7d04" (& "&") (identifier "DAT_000d7d04")) (, ",") (identifier "DAT_000dc380") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "free(DAT_000dc380);" (call_expression "free(DAT_000dc380)" (identifier "free") (argument_list "(DAT_000dc380)" (( "(") (identifier "DAT_000dc380") () ")"))) (; ";")) (expression_statement "DAT_000dc380 = param_1;" (assignment_expression "DAT_000dc380 = param_1" (identifier "DAT_000dc380") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "pbVar7 = DAT_000dc380;" (assignment_expression "pbVar7 = DAT_000dc380" (identifier "pbVar7") (= "=") (identifier "DAT_000dc380")) (; ";")) (expression_statement "uVar3 = strlen((char *)param_1);" (assignment_expression "uVar3 = strlen((char *)param_1)" (identifier "uVar3") (= "=") (call_expression "strlen((char *)param_1)" (identifier "strlen") (argument_list "((char *)param_1)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }\n  else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" (if "if") (parenthesized_expression "((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c))" (( "(") (binary_expression "(uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)" (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)" (( "(") (comma_expression "iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c" (assignment_expression "iVar6 = uVar3 - 1" (identifier "iVar6") (= "=") (binary_expression "uVar3 - 1" (identifier "uVar3") (- "-") (number_literal "1"))) (, ",") (binary_expression "param_1[iVar6] != 0x5c" (subscript_expression "param_1[iVar6]" (identifier "param_1") ([ "[") (identifier "iVar6") (] "]")) (!= "!=") (number_literal "0x5c"))) () ")"))) () ")")) (compound_statement "{\nLAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);\nLAB_000a3337:\n    free(DAT_000dc380);\n    DAT_000dc380 = (byte *)0x0;\n  }" ({ "{") (labeled_statement "LAB_000a3332:\n    do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);" (statement_identifier "LAB_000a3332") (: ":") (do_statement "do {\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    } while (param_1 != (byte *)0x0);" (do "do") (compound_statement "{\n      while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }\n      if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }\n      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));\n    }" ({ "{") (while_statement "while( true ) {\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (*param_1 == 0) goto LAB_000a3337;\n        sVar4 = strspn((char *)param_1,"; \n\r\t\v");\n        param_1 = param_1 + sVar4;\n        if (*param_1 == 0) goto LAB_000a3337;\n        if (*param_1 == 0x23) break;\n        piVar5 = (int *)FUN_0001a2f5();\n        iVar6 = FUN_000a3087();\n        param_1 = param_1 + iVar6;\n        piVar5[5] = piVar5[4];\n        if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }\n        pbVar7 = (byte *)FUN_00019041();\n        bVar2 = *pbVar7;\n        if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }\n        uVar3 = (uint)bVar2;\n        if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }\n        param_1 = pbVar7 + 1;\n        *(byte *)((int)piVar5 + 0x2e) = bVar2;\n        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);\n        pcVar9 = pcVar8 + -0xd7d6b;\n        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }\n        *DAT_000dc378 = (int)piVar5;\n        DAT_000dc378 = piVar5;\n      }" ({ "{") (if_statement "if (*param_1 == 0) goto LAB_000a3337;" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a3337;" (goto "goto") (statement_identifier "LAB_000a3337") (; ";"))) (expression_statement "sVar4 = strspn((char *)param_1,"; \n\r\t\v");" (assignment_expression "sVar4 = strspn((char *)param_1,"; \n\r\t\v")" (identifier "sVar4") (= "=") (call_expression "strspn((char *)param_1,"; \n\r\t\v")" (identifier "strspn") (argument_list "((char *)param_1,"; \n\r\t\v")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""; \n\r\t\v"" (" """) (string_content "; ") (escape_sequence "\n") (escape_sequence "\r") (escape_sequence "\t") (escape_sequence "\v") (" """)) () ")")))) (; ";")) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" (identifier "param_1") (= "=") (binary_expression "param_1 + sVar4" (identifier "param_1") (+ "+") (identifier "sVar4"))) (; ";")) (if_statement "if (*param_1 == 0) goto LAB_000a3337;" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a3337;" (goto "goto") (statement_identifier "LAB_000a3337") (; ";"))) (if_statement "if (*param_1 == 0x23) break;" (if "if") (parenthesized_expression "(*param_1 == 0x23)" (( "(") (binary_expression "*param_1 == 0x23" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x23")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar5 = (int *)FUN_0001a2f5();" (assignment_expression "piVar5 = (int *)FUN_0001a2f5()" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_0001a2f5()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a2f5()" (identifier "FUN_0001a2f5") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar6 = FUN_000a3087();" (assignment_expression "iVar6 = FUN_000a3087()" (identifier "iVar6") (= "=") (call_expression "FUN_000a3087()" (identifier "FUN_000a3087") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + iVar6;" (assignment_expression "param_1 = param_1 + iVar6" (identifier "param_1") (= "=") (binary_expression "param_1 + iVar6" (identifier "param_1") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "piVar5[5] = piVar5[4];" (assignment_expression "piVar5[5] = piVar5[4]" (subscript_expression "piVar5[5]" (identifier "piVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (*param_1 == 0x2c) {\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }" (if "if") (parenthesized_expression "(*param_1 == 0x2c)" (( "(") (binary_expression "*param_1 == 0x2c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }\n          if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }\n          piVar5[7] = piVar5[6];\n        }" ({ "{") (if_statement "if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }\n          else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" (if "if") (parenthesized_expression "((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10))" (( "(") (binary_expression "(param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)" (parenthesized_expression "(param_1[1] == 0x2b)" (( "(") (binary_expression "param_1[1] == 0x2b" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x2b")) () ")")) (&& "&&") (parenthesized_expression "((byte)(param_1[2] - 0x30) < 10)" (( "(") (binary_expression "(byte)(param_1[2] - 0x30) < 10" (call_expression "(byte)(param_1[2] - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(param_1[2] - 0x30)" (( "(") (binary_expression "param_1[2] - 0x30" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x30")) () ")"))) (< "<") (number_literal "10")) () ")"))) () ")")) (compound_statement "{\n            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);\n            piVar5[6] = -2 - iVar6;\n          }" ({ "{") (expression_statement "iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);" (assignment_expression "iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10)" (identifier "iVar6") (= "=") (call_expression "strtol((char *)(param_1 + 2),(char **)&local_24,10)" (identifier "strtol") (argument_list "((char *)(param_1 + 2),(char **)&local_24,10)" (( "(") (cast_expression "(char *)(param_1 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))) (, ",") (cast_expression "(char **)&local_24" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "piVar5[6] = -2 - iVar6;" (assignment_expression "piVar5[6] = -2 - iVar6" (subscript_expression "piVar5[6]" (identifier "piVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "-2 - iVar6" (number_literal "-2") (- "-") (identifier "iVar6"))) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" (else "else") (compound_statement "{\n            iVar6 = FUN_000a3087();\n            iVar6 = iVar6 + -1;\n          }" ({ "{") (expression_statement "iVar6 = FUN_000a3087();" (assignment_expression "iVar6 = FUN_000a3087()" (identifier "iVar6") (= "=") (call_expression "FUN_000a3087()" (identifier "FUN_000a3087") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (if_statement "if (iVar6 < 0) {\n                    \n            FUN_000192f3("no address after comma");\n          }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000192f3("no address after comma");\n          }" ({ "{") (expression_statement "FUN_000192f3("no address after comma");" (call_expression "FUN_000192f3("no address after comma")" (identifier "FUN_000192f3") (argument_list "("no address after comma")" (( "(") (string_literal ""no address after comma"" (" """) (string_content "no address after comma") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar5[7] = piVar5[6];" (assignment_expression "piVar5[7] = piVar5[6]" (subscript_expression "piVar5[7]" (identifier "piVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "piVar5[6]" (identifier "piVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "pbVar7 = (byte *)FUN_00019041();" (assignment_expression "pbVar7 = (byte *)FUN_00019041()" (identifier "pbVar7") (= "=") (cast_expression "(byte *)FUN_00019041()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019041()" (identifier "FUN_00019041") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" (identifier "bVar2") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (if_statement "if (bVar2 == 0x21) {\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }" (if "if") (parenthesized_expression "(bVar2 == 0x21)" (( "(") (binary_expression "bVar2 == 0x21" (identifier "bVar2") (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\n          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;\n          pbVar7 = (byte *)FUN_00019041();\n          bVar2 = *pbVar7;\n        }" ({ "{") (expression_statement "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;" (assignment_expression "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1" (pointer_expression "*(byte *)(piVar5 + 0xb)" (* "*") (cast_expression "(byte *)(piVar5 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 0xb)" (( "(") (binary_expression "piVar5 + 0xb" (identifier "piVar5") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(piVar5 + 0xb) | 1" (pointer_expression "*(byte *)(piVar5 + 0xb)" (* "*") (cast_expression "(byte *)(piVar5 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 0xb)" (( "(") (binary_expression "piVar5 + 0xb" (identifier "piVar5") (+ "+") (number_literal "0xb")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = (byte *)FUN_00019041();" (assignment_expression "pbVar7 = (byte *)FUN_00019041()" (identifier "pbVar7") (= "=") (cast_expression "(byte *)FUN_00019041()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019041()" (identifier "FUN_00019041") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" (identifier "bVar2") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (} "}"))) (expression_statement "uVar3 = (uint)bVar2;" (assignment_expression "uVar3 = (uint)bVar2" (identifier "uVar3") (= "=") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))) (; ";")) (if_statement "if (bVar2 == 0) {\n                    \n          FUN_000192f3("missing command");\n        }" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_000192f3("missing command");\n        }" ({ "{") (expression_statement "FUN_000192f3("missing command");" (call_expression "FUN_000192f3("missing command")" (identifier "FUN_000192f3") (argument_list "("missing command")" (( "(") (string_literal ""missing command"" (" """) (string_content "missing command") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "param_1 = pbVar7 + 1;" (assignment_expression "param_1 = pbVar7 + 1" (identifier "param_1") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)((int)piVar5 + 0x2e) = bVar2;" (assignment_expression "*(byte *)((int)piVar5 + 0x2e) = bVar2" (pointer_expression "*(byte *)((int)piVar5 + 0x2e)" (* "*") (cast_expression "(byte *)((int)piVar5 + 0x2e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 0x2e)" (( "(") (binary_expression "(int)piVar5 + 0x2e" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "0x2e")) () ")")))) (= "=") (identifier "bVar2")) (; ";")) (expression_statement "pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);" (assignment_expression "pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" (identifier "pcVar8") (= "=") (call_expression "strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" (identifier "strchrnul") (argument_list "("saicrw:btTydDgGhHlnNpPqx={}",uVar3)" (( "(") (string_literal ""saicrw:btTydDgGhHlnNpPqx={}"" (" """) (string_content "saicrw:btTydDgGhHlnNpPqx={}") (" """)) (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar8 + -0xd7d6b;" (assignment_expression "pcVar9 = pcVar8 + -0xd7d6b" (identifier "pcVar9") (= "=") (binary_expression "pcVar8 + -0xd7d6b" (identifier "pcVar8") (+ "+") (number_literal "-0xd7d6b"))) (; ";")) (if_statement "if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }\n        else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (if "if") (parenthesized_expression "(pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}")" (( "(") (binary_expression "pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}"" (identifier "pcVar8") (== "==") (string_literal ""saicrw:btTydDgGhHlnNpPqx={}"" (" """) (string_content "saicrw:btTydDgGhHlnNpPqx={}") (" """))) () ")")) (compound_statement "{\n          pbVar7 = (byte *)FUN_000a31a8();\n          piVar5[10] = 1;\n          do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);\n          if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }\n          sVar4 = strlen((char *)__s);\n          cVar12 = *local_28;\n          param_1 = pbVar7 + sVar4 + (int)param_1;\njoined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }\n          free(local_28);\n        }" ({ "{") (expression_statement "pbVar7 = (byte *)FUN_000a31a8();" (assignment_expression "pbVar7 = (byte *)FUN_000a31a8()" (identifier "pbVar7") (= "=") (cast_expression "(byte *)FUN_000a31a8()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000a31a8()" (identifier "FUN_000a31a8") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar5[10] = 1;" (assignment_expression "piVar5[10] = 1" (subscript_expression "piVar5[10]" (identifier "piVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          } while (bVar2 == 0x49);" (do "do") (compound_statement "{\n            while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }\n            if (bVar2 == 0x3b) goto LAB_000a3743;\n          }" ({ "{") (while_statement "while( true ) {\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }\n              if (bVar2 < 0x68) break;\n              if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }\n            }" ({ "{") (while_statement "while( true ) {\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));\n                if (bVar2 != 0x67) break;\n                if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }\n              }" ({ "{") (do_statement "do {\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));" (do "do") (compound_statement "{\n                  while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }\n                }" ({ "{") (while_statement "while( true ) {\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                    pbVar7 = pbVar7 + 1;\n                    __s = param_1 + (int)pbVar7;\n                    bVar2 = *__s;\n                    if (bVar2 == 0) goto LAB_000a3743;\n                    if (9 < (byte)(bVar2 - 0x30)) break;\n                    if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }\n                  }" ({ "{") (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__s = param_1 + (int)pbVar7;" (assignment_expression "__s = param_1 + (int)pbVar7" (identifier "__s") (= "=") (binary_expression "param_1 + (int)pbVar7" (identifier "param_1") (+ "+") (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar2 = *__s;" (assignment_expression "bVar2 = *__s" (identifier "bVar2") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (if_statement "if (bVar2 == 0) goto LAB_000a3743;" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a3743;" (goto "goto") (statement_identifier "LAB_000a3743") (; ";"))) (if_statement "if (9 < (byte)(bVar2 - 0x30)) break;" (if "if") (parenthesized_expression "(9 < (byte)(bVar2 - 0x30))" (( "(") (binary_expression "9 < (byte)(bVar2 - 0x30)" (number_literal "9") (< "<") (call_expression "(byte)(bVar2 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar2 - 0x30)" (( "(") (binary_expression "bVar2 - 0x30" (identifier "bVar2") (- "-") (number_literal "0x30")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*local_28 != '^') {\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }" (if "if") (parenthesized_expression "(*local_28 != '^')" (( "(") (binary_expression "*local_28 != '^'" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (!= "!=") (char_literal "'^'" (' "'") (character "^") (' "'"))) () ")")) (compound_statement "{\n                      local_24 = __s;\n                      lVar10 = strtol((char *)__s,(char **)&local_24,10);\n                      piVar5[10] = lVar10;\n                      pbVar7 = local_24 + ~(uint)param_1;\n                    }" ({ "{") (expression_statement "local_24 = __s;" (assignment_expression "local_24 = __s" (identifier "local_24") (= "=") (identifier "__s")) (; ";")) (expression_statement "lVar10 = strtol((char *)__s,(char **)&local_24,10);" (assignment_expression "lVar10 = strtol((char *)__s,(char **)&local_24,10)" (identifier "lVar10") (= "=") (call_expression "strtol((char *)__s,(char **)&local_24,10)" (identifier "strtol") (argument_list "((char *)__s,(char **)&local_24,10)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (cast_expression "(char **)&local_24" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "piVar5[10] = lVar10;" (assignment_expression "piVar5[10] = lVar10" (subscript_expression "piVar5[10]" (identifier "piVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "lVar10")) (; ";")) (expression_statement "pbVar7 = local_24 + ~(uint)param_1;" (assignment_expression "pbVar7 = local_24 + ~(uint)param_1" (identifier "pbVar7") (= "=") (binary_expression "local_24 + ~(uint)param_1" (identifier "local_24") (+ "+") (unary_expression "~(uint)param_1" (~ "~") (cast_expression "(uint)param_1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_1"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5))" (( "(") (binary_expression "((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5)" (parenthesized_expression "((byte)(bVar2 - 9) == 0x17)" (( "(") (binary_expression "(byte)(bVar2 - 9) == 0x17" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar2 - 9)" (( "(") (binary_expression "bVar2 - 9" (identifier "bVar2") (- "-") (number_literal "9")) () ")"))) (== "==") (number_literal "0x17")) () ")")) (|| "||") (parenthesized_expression "((byte)(bVar2 - 9) < 5)" (( "(") (binary_expression "(byte)(bVar2 - 9) < 5" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar2 - 9)" (( "(") (binary_expression "bVar2 - 9" (identifier "bVar2") (- "-") (number_literal "9")) () ")"))) (< "<") (number_literal "5")) () ")"))) () ")")) (; ";")) (if_statement "if (bVar2 != 0x67) break;" (if "if") (parenthesized_expression "(bVar2 != 0x67)" (( "(") (binary_expression "bVar2 != 0x67" (identifier "bVar2") (!= "!=") (number_literal "0x67")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*local_28 != '^') {\n                  piVar5[10] = 0;\n                }" (if "if") (parenthesized_expression "(*local_28 != '^')" (( "(") (binary_expression "*local_28 != '^'" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (!= "!=") (char_literal "'^'" (' "'") (character "^") (' "'"))) () ")")) (compound_statement "{\n                  piVar5[10] = 0;\n                }" ({ "{") (expression_statement "piVar5[10] = 0;" (assignment_expression "piVar5[10] = 0" (subscript_expression "piVar5[10]" (identifier "piVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (bVar2 < 0x68) break;" (if "if") (parenthesized_expression "(bVar2 < 0x68)" (( "(") (binary_expression "bVar2 < 0x68" (identifier "bVar2") (< "<") (number_literal "0x68")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (bVar2 == 0x70) {\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }\n              else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" (if "if") (parenthesized_expression "(bVar2 == 0x70)" (( "(") (binary_expression "bVar2 == 0x70" (identifier "bVar2") (== "==") (number_literal "0x70")) () ")")) (compound_statement "{\n                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;\n              }" ({ "{") (expression_statement "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;" (assignment_expression "*(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4" (pointer_expression "*(byte *)(piVar5 + 0xb)" (* "*") (cast_expression "(byte *)(piVar5 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 0xb)" (( "(") (binary_expression "piVar5 + 0xb" (identifier "piVar5") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(piVar5 + 0xb) | 4" (pointer_expression "*(byte *)(piVar5 + 0xb)" (* "*") (cast_expression "(byte *)(piVar5 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 0xb)" (( "(") (binary_expression "piVar5 + 0xb" (identifier "piVar5") (+ "+") (number_literal "0xb")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" (else "else") (if_statement "if (bVar2 < 0x71) {\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }\n              else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" (if "if") (parenthesized_expression "(bVar2 < 0x71)" (( "(") (binary_expression "bVar2 < 0x71" (identifier "bVar2") (< "<") (number_literal "0x71")) () ")")) (compound_statement "{\n                if (bVar2 != 0x69) goto LAB_000a37e1;\n              }" ({ "{") (if_statement "if (bVar2 != 0x69) goto LAB_000a37e1;" (if "if") (parenthesized_expression "(bVar2 != 0x69)" (( "(") (binary_expression "bVar2 != 0x69" (identifier "bVar2") (!= "!=") (number_literal "0x69")) () ")")) (goto_statement "goto LAB_000a37e1;" (goto "goto") (statement_identifier "LAB_000a37e1") (; ";"))) (} "}")) (else_clause "else {\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" (else "else") (compound_statement "{\n                if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }\n                iVar6 = FUN_000a3224();\n                pbVar7 = pbVar7 + iVar6;\n                iVar6 = FUN_000193e3();\n                piVar5[8] = iVar6;\n                *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n                free(local_24);\n              }" ({ "{") (if_statement "if (bVar2 != 0x77) {\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }" (if "if") (parenthesized_expression "(bVar2 != 0x77)" (( "(") (binary_expression "bVar2 != 0x77" (identifier "bVar2") (!= "!=") (number_literal "0x77")) () ")")) (compound_statement "{\n                  if (bVar2 != 0x7d) goto LAB_000a37e1;\nLAB_000a3743:\n                  cVar12 = *local_28;\n                  param_1 = __s;\n                  goto joined_r0x000a3817;\n                }" ({ "{") (if_statement "if (bVar2 != 0x7d) goto LAB_000a37e1;" (if "if") (parenthesized_expression "(bVar2 != 0x7d)" (( "(") (binary_expression "bVar2 != 0x7d" (identifier "bVar2") (!= "!=") (number_literal "0x7d")) () ")")) (goto_statement "goto LAB_000a37e1;" (goto "goto") (statement_identifier "LAB_000a37e1") (; ";"))) (labeled_statement "LAB_000a3743:\n                  cVar12 = *local_28;" (statement_identifier "LAB_000a3743") (: ":") (expression_statement "cVar12 = *local_28;" (assignment_expression "cVar12 = *local_28" (identifier "cVar12") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";"))) (expression_statement "param_1 = __s;" (assignment_expression "param_1 = __s" (identifier "param_1") (= "=") (identifier "__s")) (; ";")) (goto_statement "goto joined_r0x000a3817;" (goto "goto") (statement_identifier "joined_r0x000a3817") (; ";")) (} "}"))) (expression_statement "iVar6 = FUN_000a3224();" (assignment_expression "iVar6 = FUN_000a3224()" (identifier "iVar6") (= "=") (call_expression "FUN_000a3224()" (identifier "FUN_000a3224") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + iVar6;" (assignment_expression "pbVar7 = pbVar7 + iVar6" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + iVar6" (identifier "pbVar7") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "iVar6 = FUN_000193e3();" (assignment_expression "iVar6 = FUN_000193e3()" (identifier "iVar6") (= "=") (call_expression "FUN_000193e3()" (identifier "FUN_000193e3") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5[8] = iVar6;" (assignment_expression "piVar5[8] = iVar6" (subscript_expression "piVar5[8]" (identifier "piVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar5 + 0x2d) = 10;" (assignment_expression "*(undefined1 *)((int)piVar5 + 0x2d) = 10" (pointer_expression "*(undefined1 *)((int)piVar5 + 0x2d)" (* "*") (cast_expression "(undefined1 *)((int)piVar5 + 0x2d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 0x2d)" (( "(") (binary_expression "(int)piVar5 + 0x2d" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "0x2d")) () ")")))) (= "=") (number_literal "10")) (; ";")) (expression_statement "free(local_24);" (call_expression "free(local_24)" (identifier "free") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (} "}")))))) (} "}"))) (if_statement "if (bVar2 == 0x3b) goto LAB_000a3743;" (if "if") (parenthesized_expression "(bVar2 == 0x3b)" (( "(") (binary_expression "bVar2 == 0x3b" (identifier "bVar2") (== "==") (number_literal "0x3b")) () ")")) (goto_statement "goto LAB_000a3743;" (goto "goto") (statement_identifier "LAB_000a3743") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(bVar2 == 0x49)" (( "(") (binary_expression "bVar2 == 0x49" (identifier "bVar2") (== "==") (number_literal "0x49")) () ")")) (; ";")) (if_statement "if (bVar2 != 0x23) {\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }" (if "if") (parenthesized_expression "(bVar2 != 0x23)" (( "(") (binary_expression "bVar2 != 0x23" (identifier "bVar2") (!= "!=") (number_literal "0x23")) () ")")) (compound_statement "{\nLAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");\n          }" ({ "{") (labeled_statement "LAB_000a37e1:\n                    \n            FUN_000192f3("bad option in substitution expression");" (statement_identifier "LAB_000a37e1") (: ":") (expression_statement "FUN_000192f3("bad option in substitution expression");" (call_expression "FUN_000192f3("bad option in substitution expression")" (identifier "FUN_000192f3") (argument_list "("bad option in substitution expression")" (( "(") (string_literal ""bad option in substitution expression"" (" """) (string_content "bad option in substitution expression") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" (identifier "sVar4") (= "=") (call_expression "strlen((char *)__s)" (identifier "strlen") (argument_list "((char *)__s)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) () ")")))) (; ";")) (expression_statement "cVar12 = *local_28;" (assignment_expression "cVar12 = *local_28" (identifier "cVar12") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (expression_statement "param_1 = pbVar7 + sVar4 + (int)param_1;" (assignment_expression "param_1 = pbVar7 + sVar4 + (int)param_1" (identifier "param_1") (= "=") (binary_expression "pbVar7 + sVar4 + (int)param_1" (binary_expression "pbVar7 + sVar4" (identifier "pbVar7") (+ "+") (identifier "sVar4")) (+ "+") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (labeled_statement "joined_r0x000a3817:\n          if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" (statement_identifier "joined_r0x000a3817") (: ":") (if_statement "if (cVar12 != '\0') {\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" (if "if") (parenthesized_expression "(cVar12 != '\0')" (( "(") (binary_expression "cVar12 != '\0'" (identifier "cVar12") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            iVar6 = FUN_0001a2f5();\n            piVar5[3] = iVar6;\n            FUN_000bfea7();\n          }" ({ "{") (expression_statement "iVar6 = FUN_0001a2f5();" (assignment_expression "iVar6 = FUN_0001a2f5()" (identifier "iVar6") (= "=") (call_expression "FUN_0001a2f5()" (identifier "FUN_0001a2f5") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5[3] = iVar6;" (assignment_expression "piVar5[3] = iVar6" (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "FUN_000bfea7();" (call_expression "FUN_000bfea7()" (identifier "FUN_000bfea7") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "free(local_28);" (call_expression "free(local_28)" (identifier "free") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (} "}")) (else_clause "else if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (else "else") (if_statement "if (pcVar9 < (char *)0x4) {\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }\n        else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (if "if") (parenthesized_expression "(pcVar9 < (char *)0x4)" (( "(") (binary_expression "pcVar9 < (char *)0x4" (identifier "pcVar9") (< "<") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }\n          bVar2 = pbVar7[1];\n          while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }\nLAB_000a36b9:\n          param_1 = param_1 + 1;\nLAB_000a36ba:\n          sVar4 = strlen((char *)param_1);\n          iVar6 = FUN_000a302d();\n          piVar5[9] = iVar6;\n          param_1 = param_1 + sVar4;\n          FUN_000a2f4d(0,0);\n        }" ({ "{") (if_statement "if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }" (if "if") (parenthesized_expression "((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0))))" (( "(") (binary_expression "(pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))" (parenthesized_expression "(pcVar9 != (char *)0x3)" (( "(") (binary_expression "pcVar9 != (char *)0x3" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (&& "&&") (parenthesized_expression "((piVar5[6] != 0 || (piVar5[2] != 0)))" (( "(") (parenthesized_expression "(piVar5[6] != 0 || (piVar5[2] != 0))" (( "(") (binary_expression "piVar5[6] != 0 || (piVar5[2] != 0)" (binary_expression "piVar5[6] != 0" (subscript_expression "piVar5[6]" (identifier "piVar5") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(piVar5[2] != 0)" (( "(") (binary_expression "piVar5[2] != 0" (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);\n          }" ({ "{") (labeled_statement "LAB_000a351c:\n                    \n            FUN_000192f3("command \'%c\' uses only one address",uVar3);" (statement_identifier "LAB_000a351c") (: ":") (expression_statement "FUN_000192f3("command \'%c\' uses only one address",uVar3);" (call_expression "FUN_000192f3("command \'%c\' uses only one address",uVar3)" (identifier "FUN_000192f3") (argument_list "("command \'%c\' uses only one address",uVar3)" (( "(") (string_literal ""command \'%c\' uses only one address"" (" """) (string_content "command ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (string_content " uses only one address") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";"))) (} "}"))) (expression_statement "bVar2 = pbVar7[1];" (assignment_expression "bVar2 = pbVar7[1]" (identifier "bVar2") (= "=") (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while (bVar2 != 10) {\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }" (while "while") (parenthesized_expression "(bVar2 != 10)" (( "(") (binary_expression "bVar2 != 10" (identifier "bVar2") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n            while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }\n            param_1 = param_1 + 1;\n            bVar2 = *param_1;\n          }" ({ "{") (while_statement "while( true ) {\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if (bVar2 == 0x5c) goto LAB_000a36b9;\n              if ((byte)(bVar2 - 9) == 0x17) break;\n              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;\n              param_1 = param_1 + 1;\n              bVar2 = *param_1;\n              if (bVar2 == 10) goto LAB_000a36b9;\n            }" ({ "{") (if_statement "if (bVar2 == 0x5c) goto LAB_000a36b9;" (if "if") (parenthesized_expression "(bVar2 == 0x5c)" (( "(") (binary_expression "bVar2 == 0x5c" (identifier "bVar2") (== "==") (number_literal "0x5c")) () ")")) (goto_statement "goto LAB_000a36b9;" (goto "goto") (statement_identifier "LAB_000a36b9") (; ";"))) (if_statement "if ((byte)(bVar2 - 9) == 0x17) break;" (if "if") (parenthesized_expression "((byte)(bVar2 - 9) == 0x17)" (( "(") (binary_expression "(byte)(bVar2 - 9) == 0x17" (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar2 - 9)" (( "(") (binary_expression "bVar2 - 9" (identifier "bVar2") (- "-") (number_literal "9")) () ")"))) (== "==") (number_literal "0x17")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;" (if "if") (parenthesized_expression "(4 < (byte)(bVar2 - 9))" (( "(") (binary_expression "4 < (byte)(bVar2 - 9)" (number_literal "4") (< "<") (call_expression "(byte)(bVar2 - 9)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar2 - 9)" (( "(") (binary_expression "bVar2 - 9" (identifier "bVar2") (- "-") (number_literal "9")) () ")")))) () ")")) (goto_statement "goto LAB_000a36ba;" (goto "goto") (statement_identifier "LAB_000a36ba") (; ";"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" (identifier "bVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (bVar2 == 10) goto LAB_000a36b9;" (if "if") (parenthesized_expression "(bVar2 == 10)" (( "(") (binary_expression "bVar2 == 10" (identifier "bVar2") (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_000a36b9;" (goto "goto") (statement_identifier "LAB_000a36b9") (; ";"))) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" (identifier "bVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}"))) (labeled_statement "LAB_000a36b9:\n          param_1 = param_1 + 1;" (statement_identifier "LAB_000a36b9") (: ":") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_000a36ba:\n          sVar4 = strlen((char *)param_1);" (statement_identifier "LAB_000a36ba") (: ":") (expression_statement "sVar4 = strlen((char *)param_1);" (assignment_expression "sVar4 = strlen((char *)param_1)" (identifier "sVar4") (= "=") (call_expression "strlen((char *)param_1)" (identifier "strlen") (argument_list "((char *)param_1)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")")))) (; ";"))) (expression_statement "iVar6 = FUN_000a302d();" (assignment_expression "iVar6 = FUN_000a302d()" (identifier "iVar6") (= "=") (call_expression "FUN_000a302d()" (identifier "FUN_000a302d") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5[9] = iVar6;" (assignment_expression "piVar5[9] = iVar6" (subscript_expression "piVar5[9]" (identifier "piVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" (identifier "param_1") (= "=") (binary_expression "param_1 + sVar4" (identifier "param_1") (+ "+") (identifier "sVar4"))) (; ";")) (expression_statement "FUN_000a2f4d(0,0);" (call_expression "FUN_000a2f4d(0,0)" (identifier "FUN_000a2f4d") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (else "else") (if_statement "if (pcVar9 < (char *)0x6) {\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }\n        else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (if "if") (parenthesized_expression "(pcVar9 < (char *)0x6)" (( "(") (binary_expression "pcVar9 < (char *)0x6" (identifier "pcVar9") (< "<") (cast_expression "(char *)0x6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) () ")")) (compound_statement "{\n          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;\n          iVar6 = FUN_000a3224();\n          param_1 = param_1 + iVar6;\n          if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }\n        }" ({ "{") (if_statement "if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))\n          goto LAB_000a351c;" (if "if") (parenthesized_expression "((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))" (( "(") (binary_expression "(pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0)))" (parenthesized_expression "(pcVar9 == &DAT_00000004)" (( "(") (binary_expression "pcVar9 == &DAT_00000004" (identifier "pcVar9") (== "==") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004"))) () ")")) (&& "&&") (parenthesized_expression "((piVar5[6] != 0 || (piVar5[2] != 0)))" (( "(") (parenthesized_expression "(piVar5[6] != 0 || (piVar5[2] != 0))" (( "(") (binary_expression "piVar5[6] != 0 || (piVar5[2] != 0)" (binary_expression "piVar5[6] != 0" (subscript_expression "piVar5[6]" (identifier "piVar5") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(piVar5[2] != 0)" (( "(") (binary_expression "piVar5[2] != 0" (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000a351c;" (goto "goto") (statement_identifier "LAB_000a351c") (; ";"))) (expression_statement "iVar6 = FUN_000a3224();" (assignment_expression "iVar6 = FUN_000a3224()" (identifier "iVar6") (= "=") (call_expression "FUN_000a3224()" (identifier "FUN_000a3224") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + iVar6;" (assignment_expression "param_1 = param_1 + iVar6" (identifier "param_1") (= "=") (binary_expression "param_1 + iVar6" (identifier "param_1") (+ "+") (identifier "iVar6"))) (; ";")) (if_statement "if (*(char *)((int)piVar5 + 0x2e) == 'w') {\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }" (if "if") (parenthesized_expression "(*(char *)((int)piVar5 + 0x2e) == 'w')" (( "(") (binary_expression "*(char *)((int)piVar5 + 0x2e) == 'w'" (pointer_expression "*(char *)((int)piVar5 + 0x2e)" (* "*") (cast_expression "(char *)((int)piVar5 + 0x2e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 0x2e)" (( "(") (binary_expression "(int)piVar5 + 0x2e" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "0x2e")) () ")")))) (== "==") (char_literal "'w'" (' "'") (character "w") (' "'"))) () ")")) (compound_statement "{\n            iVar6 = FUN_000193e3();\n            piVar5[8] = iVar6;\n            *(undefined1 *)((int)piVar5 + 0x2d) = 10;\n          }" ({ "{") (expression_statement "iVar6 = FUN_000193e3();" (assignment_expression "iVar6 = FUN_000193e3()" (identifier "iVar6") (= "=") (call_expression "FUN_000193e3()" (identifier "FUN_000193e3") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5[8] = iVar6;" (assignment_expression "piVar5[8] = iVar6" (subscript_expression "piVar5[8]" (identifier "piVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar5 + 0x2d) = 10;" (assignment_expression "*(undefined1 *)((int)piVar5 + 0x2d) = 10" (pointer_expression "*(undefined1 *)((int)piVar5 + 0x2d)" (* "*") (cast_expression "(undefined1 *)((int)piVar5 + 0x2d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 0x2d)" (( "(") (binary_expression "(int)piVar5 + 0x2d" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "0x2d")) () ")")))) (= "=") (number_literal "10")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (else "else") (if_statement "if (pcVar9 < (char *)0xa) {\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }\n        else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (if "if") (parenthesized_expression "(pcVar9 < (char *)0xa)" (( "(") (binary_expression "pcVar9 < (char *)0xa" (identifier "pcVar9") (< "<") (cast_expression "(char *)0xa" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) () ")")) (compound_statement "{\n          param_1 = (byte *)FUN_00019041();\n          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");\n          if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }\n        }" ({ "{") (expression_statement "param_1 = (byte *)FUN_00019041();" (assignment_expression "param_1 = (byte *)FUN_00019041()" (identifier "param_1") (= "=") (cast_expression "(byte *)FUN_00019041()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019041()" (identifier "FUN_00019041") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "sVar4 = strcspn((char *)param_1,"; \n\r\t\v");" (assignment_expression "sVar4 = strcspn((char *)param_1,"; \n\r\t\v")" (identifier "sVar4") (= "=") (call_expression "strcspn((char *)param_1,"; \n\r\t\v")" (identifier "strcspn") (argument_list "((char *)param_1,"; \n\r\t\v")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""; \n\r\t\v"" (" """) (string_content "; ") (escape_sequence "\n") (escape_sequence "\r") (escape_sequence "\t") (escape_sequence "\v") (" """)) () ")")))) (; ";")) (if_statement "if (sVar4 != 0) {\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }" (if "if") (parenthesized_expression "(sVar4 != 0)" (( "(") (binary_expression "sVar4 != 0" (identifier "sVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar6 = FUN_0001a346();\n            piVar5[9] = iVar6;\n            param_1 = param_1 + sVar4;\n          }" ({ "{") (expression_statement "iVar6 = FUN_0001a346();" (assignment_expression "iVar6 = FUN_0001a346()" (identifier "iVar6") (= "=") (call_expression "FUN_0001a346()" (identifier "FUN_0001a346") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5[9] = iVar6;" (assignment_expression "piVar5[9] = iVar6" (subscript_expression "piVar5[9]" (identifier "piVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "param_1 = param_1 + sVar4;" (assignment_expression "param_1 = param_1 + sVar4" (identifier "param_1") (= "=") (binary_expression "param_1 + sVar4" (identifier "param_1") (+ "+") (identifier "sVar4"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (else "else") (if_statement "if (pcVar9 == (char *)0xa) {\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }\n        else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (if "if") (parenthesized_expression "(pcVar9 == (char *)0xa)" (( "(") (binary_expression "pcVar9 == (char *)0xa" (identifier "pcVar9") (== "==") (cast_expression "(char *)0xa" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) () ")")) (compound_statement "{\n          bVar2 = pbVar7[1];\n          iVar6 = FUN_000a31a8();\n          FUN_000a2f4d(bVar2,bVar2);\n          FUN_000a2f4d(bVar2,bVar2);\n          strlen(local_28);\n          pcVar8 = (char *)FUN_0001a2f5();\n          piVar5[9] = (int)pcVar8;\n          if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }\n          param_1 = pbVar7 + iVar6 + 2;\n          free(local_28);\n          free(local_24);\n        }" ({ "{") (expression_statement "bVar2 = pbVar7[1];" (assignment_expression "bVar2 = pbVar7[1]" (identifier "bVar2") (= "=") (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar6 = FUN_000a31a8();" (assignment_expression "iVar6 = FUN_000a31a8()" (identifier "iVar6") (= "=") (call_expression "FUN_000a31a8()" (identifier "FUN_000a31a8") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_000a2f4d(bVar2,bVar2);" (call_expression "FUN_000a2f4d(bVar2,bVar2)" (identifier "FUN_000a2f4d") (argument_list "(bVar2,bVar2)" (( "(") (identifier "bVar2") (, ",") (identifier "bVar2") () ")"))) (; ";")) (expression_statement "FUN_000a2f4d(bVar2,bVar2);" (call_expression "FUN_000a2f4d(bVar2,bVar2)" (identifier "FUN_000a2f4d") (argument_list "(bVar2,bVar2)" (( "(") (identifier "bVar2") (, ",") (identifier "bVar2") () ")"))) (; ";")) (expression_statement "strlen(local_28);" (call_expression "strlen(local_28)" (identifier "strlen") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)FUN_0001a2f5();" (assignment_expression "pcVar8 = (char *)FUN_0001a2f5()" (identifier "pcVar8") (= "=") (cast_expression "(char *)FUN_0001a2f5()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a2f5()" (identifier "FUN_0001a2f5") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar5[9] = (int)pcVar8;" (assignment_expression "piVar5[9] = (int)pcVar8" (subscript_expression "piVar5[9]" (identifier "piVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8"))) (; ";")) (if_statement "if ((*local_28 != '\0') && (*local_24 != 0)) {\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }" (if "if") (parenthesized_expression "((*local_28 != '\0') && (*local_24 != 0))" (( "(") (binary_expression "(*local_28 != '\0') && (*local_24 != 0)" (parenthesized_expression "(*local_28 != '\0')" (( "(") (binary_expression "*local_28 != '\0'" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*local_24 != 0)" (( "(") (binary_expression "*local_24 != 0" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            *pcVar8 = *local_28;\n            pcVar8[1] = *local_24;\n            cVar12 = local_28[1];\n            if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }\n          }" ({ "{") (expression_statement "*pcVar8 = *local_28;" (assignment_expression "*pcVar8 = *local_28" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (expression_statement "pcVar8[1] = *local_24;" (assignment_expression "pcVar8[1] = *local_24" (subscript_expression "pcVar8[1]" (identifier "pcVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (expression_statement "cVar12 = local_28[1];" (assignment_expression "cVar12 = local_28[1]" (identifier "cVar12") (= "=") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (cVar12 != '\0') {\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }" (if "if") (parenthesized_expression "(cVar12 != '\0')" (( "(") (binary_expression "cVar12 != '\0'" (identifier "cVar12") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar11 = 1;\n              do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');\n            }" ({ "{") (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              } while (cVar12 != '\0');" (do "do") (compound_statement "{\n                if (local_24[iVar11] == 0) break;\n                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;\n                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];\n                iVar11 = iVar11 + 1;\n                cVar12 = local_28[iVar11];\n              }" ({ "{") (if_statement "if (local_24[iVar11] == 0) break;" (if "if") (parenthesized_expression "(local_24[iVar11] == 0)" (( "(") (binary_expression "local_24[iVar11] == 0" (subscript_expression "local_24[iVar11]" (identifier "local_24") ([ "[") (identifier "iVar11") (] "]")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(char *)(piVar5[9] + iVar11 * 2) = cVar12;" (assignment_expression "*(char *)(piVar5[9] + iVar11 * 2) = cVar12" (pointer_expression "*(char *)(piVar5[9] + iVar11 * 2)" (* "*") (cast_expression "(char *)(piVar5[9] + iVar11 * 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5[9] + iVar11 * 2)" (( "(") (binary_expression "piVar5[9] + iVar11 * 2" (subscript_expression "piVar5[9]" (identifier "piVar5") ([ "[") (number_literal "9") (] "]")) (+ "+") (binary_expression "iVar11 * 2" (identifier "iVar11") (* "*") (number_literal "2"))) () ")")))) (= "=") (identifier "cVar12")) (; ";")) (expression_statement "*(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];" (assignment_expression "*(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11]" (pointer_expression "*(byte *)(piVar5[9] + 1 + iVar11 * 2)" (* "*") (cast_expression "(byte *)(piVar5[9] + 1 + iVar11 * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5[9] + 1 + iVar11 * 2)" (( "(") (binary_expression "piVar5[9] + 1 + iVar11 * 2" (binary_expression "piVar5[9] + 1" (subscript_expression "piVar5[9]" (identifier "piVar5") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "1")) (+ "+") (binary_expression "iVar11 * 2" (identifier "iVar11") (* "*") (number_literal "2"))) () ")")))) (= "=") (subscript_expression "local_24[iVar11]" (identifier "local_24") ([ "[") (identifier "iVar11") (] "]"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar12 = local_28[iVar11];" (assignment_expression "cVar12 = local_28[iVar11]" (identifier "cVar12") (= "=") (subscript_expression "local_28[iVar11]" (identifier "local_28") ([ "[") (identifier "iVar11") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar12 != '\0')" (( "(") (binary_expression "cVar12 != '\0'" (identifier "cVar12") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_1 = pbVar7 + iVar6 + 2;" (assignment_expression "param_1 = pbVar7 + iVar6 + 2" (identifier "param_1") (= "=") (binary_expression "pbVar7 + iVar6 + 2" (binary_expression "pbVar7 + iVar6" (identifier "pbVar7") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "free(local_28);" (call_expression "free(local_28)" (identifier "free") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "free(local_24);" (call_expression "free(local_24)" (identifier "free") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (} "}")) (else_clause "else if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (else "else") (if_statement "if ((char *)0x1a < pcVar9) {\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" (if "if") (parenthesized_expression "((char *)0x1a < pcVar9)" (( "(") (binary_expression "(char *)0x1a < pcVar9" (cast_expression "(char *)0x1a" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1a")) (< "<") (identifier "pcVar9")) () ")")) (compound_statement "{\n                    \n          FUN_000192f3("unsupported command %c",uVar3);\n        }" ({ "{") (expression_statement "FUN_000192f3("unsupported command %c",uVar3);" (call_expression "FUN_000192f3("unsupported command %c",uVar3)" (identifier "FUN_000192f3") (argument_list "("unsupported command %c",uVar3)" (( "(") (string_literal ""unsupported command %c"" (" """) (string_content "unsupported command %c") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))))))))))))) (expression_statement "*DAT_000dc378 = (int)piVar5;" (assignment_expression "*DAT_000dc378 = (int)piVar5" (pointer_expression "*DAT_000dc378" (* "*") (identifier "DAT_000dc378")) (= "=") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5"))) (; ";")) (expression_statement "DAT_000dc378 = piVar5;" (assignment_expression "DAT_000dc378 = piVar5" (identifier "DAT_000dc378") (= "=") (identifier "piVar5")) (; ";")) (} "}"))) (if_statement "if (param_1[1] == 0x6e) {\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }" (if "if") (parenthesized_expression "(param_1[1] == 0x6e)" (( "(") (binary_expression "param_1[1] == 0x6e" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x6e")) () ")")) (compound_statement "{\n        DAT_000dc2f8 = DAT_000dc2f8 + 1;\n      }" ({ "{") (expression_statement "DAT_000dc2f8 = DAT_000dc2f8 + 1;" (assignment_expression "DAT_000dc2f8 = DAT_000dc2f8 + 1" (identifier "DAT_000dc2f8") (= "=") (binary_expression "DAT_000dc2f8 + 1" (identifier "DAT_000dc2f8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));" (assignment_expression "param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" (identifier "param_1") (= "=") (cast_expression "(byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" (identifier "strpbrk") (argument_list "((char *)param_1,(char *)((int)&DAT_000d7d07 + 3))" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (cast_expression "(char *)((int)&DAT_000d7d07 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_000d7d07 + 3)" (( "(") (binary_expression "(int)&DAT_000d7d07 + 3" (cast_expression "(int)&DAT_000d7d07" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_000d7d07" (& "&") (identifier "DAT_000d7d07"))) (+ "+") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 != (byte *)0x0)" (( "(") (binary_expression "param_1 != (byte *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";"))) (labeled_statement "LAB_000a3337:\n    free(DAT_000dc380);" (statement_identifier "LAB_000a3337") (: ":") (expression_statement "free(DAT_000dc380);" (call_expression "free(DAT_000dc380)" (identifier "free") (argument_list "(DAT_000dc380)" (( "(") (identifier "DAT_000dc380") () ")"))) (; ";"))) (expression_statement "DAT_000dc380 = (byte *)0x0;" (assignment_expression "DAT_000dc380 = (byte *)0x0" (identifier "DAT_000dc380") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" (else "else") (compound_statement "{\n    if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }\n    if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }\n    pbVar7[iVar6] = 0;\n  }" ({ "{") (if_statement "if (iVar6 != 0) {\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar2 = param_1[uVar3 - 2];\n      iVar11 = iVar6;\n      iVar1 = uVar3 - 2;\n      while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }\n      uVar3 = uVar3 - iVar11;\nLAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;\n    }" ({ "{") (expression_statement "bVar2 = param_1[uVar3 - 2];" (assignment_expression "bVar2 = param_1[uVar3 - 2]" (identifier "bVar2") (= "=") (subscript_expression "param_1[uVar3 - 2]" (identifier "param_1") ([ "[") (binary_expression "uVar3 - 2" (identifier "uVar3") (- "-") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "iVar11 = iVar6;" (assignment_expression "iVar11 = iVar6" (identifier "iVar11") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar1 = uVar3 - 2;" (assignment_expression "iVar1 = uVar3 - 2" (identifier "iVar1") (= "=") (binary_expression "uVar3 - 2" (identifier "uVar3") (- "-") (number_literal "2"))) (; ";")) (while_statement "while (bVar2 == 0x5c) {\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }" (while "while") (parenthesized_expression "(bVar2 == 0x5c)" (( "(") (binary_expression "bVar2 == 0x5c" (identifier "bVar2") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n        if (iVar1 == 0) goto LAB_000a386a;\n        bVar2 = param_1[iVar1 + -1];\n        iVar11 = iVar1;\n        iVar1 = iVar1 + -1;\n      }" ({ "{") (if_statement "if (iVar1 == 0) goto LAB_000a386a;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a386a;" (goto "goto") (statement_identifier "LAB_000a386a") (; ";"))) (expression_statement "bVar2 = param_1[iVar1 + -1];" (assignment_expression "bVar2 = param_1[iVar1 + -1]" (identifier "bVar2") (= "=") (subscript_expression "param_1[iVar1 + -1]" (identifier "param_1") ([ "[") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1")) (] "]"))) (; ";")) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" (identifier "iVar11") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "uVar3 = uVar3 - iVar11;" (assignment_expression "uVar3 = uVar3 - iVar11" (identifier "uVar3") (= "=") (binary_expression "uVar3 - iVar11" (identifier "uVar3") (- "-") (identifier "iVar11"))) (; ";")) (labeled_statement "LAB_000a386a:\n      if ((uVar3 & 1) == 0) goto LAB_000a3332;" (statement_identifier "LAB_000a386a") (: ":") (if_statement "if ((uVar3 & 1) == 0) goto LAB_000a3332;" (if "if") (parenthesized_expression "((uVar3 & 1) == 0)" (( "(") (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" (( "(") (binary_expression "uVar3 & 1" (identifier "uVar3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a3332;" (goto "goto") (statement_identifier "LAB_000a3332") (; ";")))) (} "}"))) (if_statement "if (pbVar7 == (byte *)0x0) {\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }" (if "if") (parenthesized_expression "(pbVar7 == (byte *)0x0)" (( "(") (binary_expression "pbVar7 == (byte *)0x0" (identifier "pbVar7") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar7 = (byte *)FUN_0001a30f();\n      DAT_000dc380 = pbVar7;\n    }" ({ "{") (expression_statement "pbVar7 = (byte *)FUN_0001a30f();" (assignment_expression "pbVar7 = (byte *)FUN_0001a30f()" (identifier "pbVar7") (= "=") (cast_expression "(byte *)FUN_0001a30f()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a30f()" (identifier "FUN_0001a30f") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "DAT_000dc380 = pbVar7;" (assignment_expression "DAT_000dc380 = pbVar7" (identifier "DAT_000dc380") (= "=") (identifier "pbVar7")) (; ";")) (} "}"))) (expression_statement "pbVar7[iVar6] = 0;" (assignment_expression "pbVar7[iVar6] = 0" (subscript_expression "pbVar7[iVar6]" (identifier "pbVar7") ([ "[") (identifier "iVar6") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" (identifier "FUN_00017e20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void function_1(void)

{
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

void __regparm3 MASKED(byte *param_1,undefined4 param_2)

{
  byte *__s;
  int iVar1;
  byte bVar2;
  uint uVar3;
  size_t sVar4;
  int *piVar5;
  int iVar6;
  byte *pbVar7;
  char *pcVar8;
  char *pcVar9;
  long lVar10;
  int iVar11;
  char cVar12;
  int in_GS_OFFSET;
  char *local_28;
  byte *local_24;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_000dc380 != (byte *)0x0) {
    param_1 = (byte *)FUN_0001a76c(&DAT_000d7d04,DAT_000dc380,param_1,param_2);
    free(DAT_000dc380);
    DAT_000dc380 = param_1;
  }
  pbVar7 = DAT_000dc380;
  uVar3 = strlen((char *)param_1);
  if ((uVar3 == 0) || (iVar6 = uVar3 - 1, param_1[iVar6] != 0x5c)) {
LAB_000a3332:
    do {
      while( true ) {
        if (*param_1 == 0) goto LAB_000a3337;
        sVar4 = strspn((char *)param_1,"; \n\r\t\v");
        param_1 = param_1 + sVar4;
        if (*param_1 == 0) goto LAB_000a3337;
        if (*param_1 == 0x23) break;
        piVar5 = (int *)FUN_0001a2f5();
        iVar6 = FUN_000a3087();
        param_1 = param_1 + iVar6;
        piVar5[5] = piVar5[4];
        if (*param_1 == 0x2c) {
          if ((param_1[1] == 0x2b) && ((byte)(param_1[2] - 0x30) < 10)) {
            iVar6 = strtol((char *)(param_1 + 2),(char **)&local_24,10);
            piVar5[6] = -2 - iVar6;
          }
          else {
            iVar6 = FUN_000a3087();
            iVar6 = iVar6 + -1;
          }
          if (iVar6 < 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000192f3("no address after comma");
          }
          piVar5[7] = piVar5[6];
        }
        pbVar7 = (byte *)FUN_00019041();
        bVar2 = *pbVar7;
        if (bVar2 == 0x21) {
          *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 1;
          pbVar7 = (byte *)FUN_00019041();
          bVar2 = *pbVar7;
        }
        uVar3 = (uint)bVar2;
        if (bVar2 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000192f3("missing command");
        }
        param_1 = pbVar7 + 1;
        *(byte *)((int)piVar5 + 0x2e) = bVar2;
        pcVar8 = strchrnul("saicrw:btTydDgGhHlnNpPqx={}",uVar3);
        pcVar9 = pcVar8 + -0xd7d6b;
        if (pcVar8 == "saicrw:btTydDgGhHlnNpPqx={}") {
          pbVar7 = (byte *)FUN_000a31a8();
          piVar5[10] = 1;
          do {
            while( true ) {
              while( true ) {
                do {
                  while( true ) {
                    pbVar7 = pbVar7 + 1;
                    __s = param_1 + (int)pbVar7;
                    bVar2 = *__s;
                    if (bVar2 == 0) goto LAB_000a3743;
                    if (9 < (byte)(bVar2 - 0x30)) break;
                    if (*local_28 != '^') {
                      local_24 = __s;
                      lVar10 = strtol((char *)__s,(char **)&local_24,10);
                      piVar5[10] = lVar10;
                      pbVar7 = local_24 + ~(uint)param_1;
                    }
                  }
                } while (((byte)(bVar2 - 9) == 0x17) || ((byte)(bVar2 - 9) < 5));
                if (bVar2 != 0x67) break;
                if (*local_28 != '^') {
                  piVar5[10] = 0;
                }
              }
              if (bVar2 < 0x68) break;
              if (bVar2 == 0x70) {
                *(byte *)(piVar5 + 0xb) = *(byte *)(piVar5 + 0xb) | 4;
              }
              else if (bVar2 < 0x71) {
                if (bVar2 != 0x69) goto LAB_000a37e1;
              }
              else {
                if (bVar2 != 0x77) {
                  if (bVar2 != 0x7d) goto LAB_000a37e1;
LAB_000a3743:
                  cVar12 = *local_28;
                  param_1 = __s;
                  goto joined_r0x000a3817;
                }
                iVar6 = FUN_000a3224();
                pbVar7 = pbVar7 + iVar6;
                iVar6 = FUN_000193e3();
                piVar5[8] = iVar6;
                *(undefined1 *)((int)piVar5 + 0x2d) = 10;
                free(local_24);
              }
            }
            if (bVar2 == 0x3b) goto LAB_000a3743;
          } while (bVar2 == 0x49);
          if (bVar2 != 0x23) {
LAB_000a37e1:
                    /* WARNING: Subroutine does not return */
            FUN_000192f3("bad option in substitution expression");
          }
          sVar4 = strlen((char *)__s);
          cVar12 = *local_28;
          param_1 = pbVar7 + sVar4 + (int)param_1;
joined_r0x000a3817:
          if (cVar12 != '\0') {
            iVar6 = FUN_0001a2f5();
            piVar5[3] = iVar6;
            FUN_000bfea7();
          }
          free(local_28);
        }
        else if (pcVar9 < (char *)0x4) {
          if ((pcVar9 != (char *)0x3) && ((piVar5[6] != 0 || (piVar5[2] != 0)))) {
LAB_000a351c:
                    /* WARNING: Subroutine does not return */
            FUN_000192f3("command \'%c\' uses only one address",uVar3);
          }
          bVar2 = pbVar7[1];
          while (bVar2 != 10) {
            while( true ) {
              if (bVar2 == 0x5c) goto LAB_000a36b9;
              if ((byte)(bVar2 - 9) == 0x17) break;
              if (4 < (byte)(bVar2 - 9)) goto LAB_000a36ba;
              param_1 = param_1 + 1;
              bVar2 = *param_1;
              if (bVar2 == 10) goto LAB_000a36b9;
            }
            param_1 = param_1 + 1;
            bVar2 = *param_1;
          }
LAB_000a36b9:
          param_1 = param_1 + 1;
LAB_000a36ba:
          sVar4 = strlen((char *)param_1);
          iVar6 = FUN_000a302d();
          piVar5[9] = iVar6;
          param_1 = param_1 + sVar4;
          FUN_000a2f4d(0,0);
        }
        else if (pcVar9 < (char *)0x6) {
          if ((pcVar9 == &DAT_00000004) && ((piVar5[6] != 0 || (piVar5[2] != 0))))
          goto LAB_000a351c;
          iVar6 = FUN_000a3224();
          param_1 = param_1 + iVar6;
          if (*(char *)((int)piVar5 + 0x2e) == 'w') {
            iVar6 = FUN_000193e3();
            piVar5[8] = iVar6;
            *(undefined1 *)((int)piVar5 + 0x2d) = 10;
          }
        }
        else if (pcVar9 < (char *)0xa) {
          param_1 = (byte *)FUN_00019041();
          sVar4 = strcspn((char *)param_1,"; \n\r\t\v");
          if (sVar4 != 0) {
            iVar6 = FUN_0001a346();
            piVar5[9] = iVar6;
            param_1 = param_1 + sVar4;
          }
        }
        else if (pcVar9 == (char *)0xa) {
          bVar2 = pbVar7[1];
          iVar6 = FUN_000a31a8();
          FUN_000a2f4d(bVar2,bVar2);
          FUN_000a2f4d(bVar2,bVar2);
          strlen(local_28);
          pcVar8 = (char *)FUN_0001a2f5();
          piVar5[9] = (int)pcVar8;
          if ((*local_28 != '\0') && (*local_24 != 0)) {
            *pcVar8 = *local_28;
            pcVar8[1] = *local_24;
            cVar12 = local_28[1];
            if (cVar12 != '\0') {
              iVar11 = 1;
              do {
                if (local_24[iVar11] == 0) break;
                *(char *)(piVar5[9] + iVar11 * 2) = cVar12;
                *(byte *)(piVar5[9] + 1 + iVar11 * 2) = local_24[iVar11];
                iVar11 = iVar11 + 1;
                cVar12 = local_28[iVar11];
              } while (cVar12 != '\0');
            }
          }
          param_1 = pbVar7 + iVar6 + 2;
          free(local_28);
          free(local_24);
        }
        else if ((char *)0x1a < pcVar9) {
                    /* WARNING: Subroutine does not return */
          FUN_000192f3("unsupported command %c",uVar3);
        }
        *DAT_000dc378 = (int)piVar5;
        DAT_000dc378 = piVar5;
      }
      if (param_1[1] == 0x6e) {
        DAT_000dc2f8 = DAT_000dc2f8 + 1;
      }
      param_1 = (byte *)strpbrk((char *)param_1,(char *)((int)&DAT_000d7d07 + 3));
    } while (param_1 != (byte *)0x0);
LAB_000a3337:
    free(DAT_000dc380);
    DAT_000dc380 = (byte *)0x0;
  }
  else {
    if (iVar6 != 0) {
      bVar2 = param_1[uVar3 - 2];
      iVar11 = iVar6;
      iVar1 = uVar3 - 2;
      while (bVar2 == 0x5c) {
        if (iVar1 == 0) goto LAB_000a386a;
        bVar2 = param_1[iVar1 + -1];
        iVar11 = iVar1;
        iVar1 = iVar1 + -1;
      }
      uVar3 = uVar3 - iVar11;
LAB_000a386a:
      if ((uVar3 & 1) == 0) goto LAB_000a3332;
    }
    if (pbVar7 == (byte *)0x0) {
      pbVar7 = (byte *)FUN_0001a30f();
      DAT_000dc380 = pbVar7;
    }
    pbVar7[iVar6] = 0;
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00017e20();
}

