
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: Token get_token(Lex * this, char * * pp) */

Token * __thiscall gold::Lex::get_token(Token *__return_storage_ptr__,Lex *this,char **pp)

{
  byte bVar1;
  char *pcVar2;
  bool bVar3;
  byte bVar4;
  Token *pTVar5;
  int iVar6;
  byte *pbVar7;
  int iVar8;
  byte *pbVar9;
  byte local_21;
  
  do {
    pbVar9 = (byte *)*pp;
LAB_001d8714:
    while( true ) {
      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {
      }
      if (bVar4 != 10) break;
      pbVar9 = pbVar9 + 1;
      this->lineno_ = this->lineno_ + 1;
      this->linestart_ = (char *)pbVar9;
    }
    if (bVar4 == 0) {
      __return_storage_ptr__->classification_ = TOKEN_EOF;
      iVar6 = this->lineno_;
      *pp = (char *)pbVar9;
      pcVar2 = this->linestart_;
      goto LAB_001d886d;
    }
    bVar1 = pbVar9[1];
    if ((bVar4 == 0x2f) && (bVar1 == 0x2a)) {
      iVar6 = this->lineno_;
      pbVar7 = pbVar9 + 2;
      pcVar2 = this->linestart_;
      *pp = (char *)pbVar7;
      bVar4 = pbVar9[2];
      do {
        if (bVar4 == 0x2a) {
          bVar4 = pbVar7[1];
          if (bVar4 == 0x2f) goto LAB_001d8850;
        }
        else {
          if (bVar4 == 0) {
            *pp = (char *)pbVar7;
            __return_storage_ptr__->classification_ = TOKEN_INVALID;
            __return_storage_ptr__->lineno_ = iVar6;
            __return_storage_ptr__->value_ = (char *)0x0;
            __return_storage_ptr__->value_length_ = 0;
            __return_storage_ptr__->opcode_ = 0;
            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
            return __return_storage_ptr__;
          }
          if (bVar4 == 10) {
            this->lineno_ = this->lineno_ + 1;
            this->linestart_ = (char *)(pbVar7 + 1);
          }
          bVar4 = pbVar7[1];
        }
        pbVar7 = pbVar7 + 1;
      } while( true );
    }
    if (bVar4 != 0x23) {
      if ((byte)(bVar4 - 0x24) < 0x5b) {
                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();
        return pTVar5;
      }
      if (bVar4 == 0x22) {
        *pp = (char *)pbVar9;
        gather_quoted_string(this,pp);
        return __return_storage_ptr__;
      }
      if (bVar1 == 0) {
        if (bVar4 != 0x30) {
          local_21 = 0;
          goto _L132;
        }
      }
      else {
        local_21 = pbVar9[2];
        if (bVar4 == 0x30) {
          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;
          if ((byte)(local_21 - 0x30) < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))
                              )();
            return pTVar5;
          }
        }
_L132:
        iVar6 = (int)(char)bVar4;
        if (9 < iVar6 - 0x30U) {
          if (bVar4 == 0x3c) {
            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {
              iVar8 = 0x106;
LAB_001d8d44:
              iVar6 = this->lineno_;
              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;
              *pp = (char *)(pbVar9 + 3);
              pcVar2 = this->linestart_;
              __return_storage_ptr__->value_ = (char *)0x0;
              __return_storage_ptr__->value_length_ = 0;
              __return_storage_ptr__->opcode_ = iVar8;
              __return_storage_ptr__->lineno_ = iVar6;
              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
              return __return_storage_ptr__;
            }
            if (bVar1 == 0x3d) {
              iVar6 = 0x10e;
LAB_001d8be1:
              iVar8 = this->lineno_;
              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;
              *pp = (char *)(pbVar9 + 2);
              pcVar2 = this->linestart_;
              __return_storage_ptr__->value_ = (char *)0x0;
              __return_storage_ptr__->value_length_ = 0;
              __return_storage_ptr__->opcode_ = iVar6;
              __return_storage_ptr__->lineno_ = iVar8;
              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
              return __return_storage_ptr__;
            }
            if (bVar1 == 0x3c) {
              iVar6 = 0x110;
              goto LAB_001d8be1;
            }
LAB_001d89ff:
            iVar8 = this->lineno_;
            if (iVar6 != 0) {
              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;
              *pp = (char *)(pbVar9 + 1);
              pcVar2 = this->linestart_;
              __return_storage_ptr__->value_ = (char *)0x0;
              __return_storage_ptr__->value_length_ = 0;
              __return_storage_ptr__->opcode_ = iVar6;
              __return_storage_ptr__->lineno_ = iVar8;
              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
              return __return_storage_ptr__;
            }
          }
          else {
            if (bVar4 == 0x3e) {
              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;
              if (bVar1 == 0x3d) {
                iVar6 = 0x10f;
                goto LAB_001d8be1;
              }
              if (bVar1 == 0x3e) {
                iVar6 = 0x111;
                goto LAB_001d8be1;
              }
              goto LAB_001d89ff;
            }
            if ((byte)(bVar4 - 0x21) < 0x5c) {
                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))
                                          ();
              return pTVar5;
            }
            if ((byte)(bVar4 - 0x21) < 0x5e) {
                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))
                                          ();
              return pTVar5;
            }
          }
          pcVar2 = this->linestart_;
          iVar6 = this->lineno_;
          __return_storage_ptr__->classification_ = TOKEN_INVALID;
LAB_001d886d:
          __return_storage_ptr__->value_ = (char *)0x0;
          __return_storage_ptr__->value_length_ = 0;
          __return_storage_ptr__->opcode_ = 0;
          __return_storage_ptr__->lineno_ = iVar6;
          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
          return __return_storage_ptr__;
        }
      }
LAB_001d8a78:
      pbVar7 = pbVar9 + 1;
      goto joined_r0x001d8a89;
    }
    *pp = (char *)(pbVar9 + 1);
    bVar3 = skip_line_comment(this,pp);
    if (!bVar3) {
      iVar6 = this->lineno_;
      pcVar2 = this->linestart_;
      __return_storage_ptr__->classification_ = TOKEN_EOF;
      __return_storage_ptr__->value_ = (char *)0x0;
      __return_storage_ptr__->value_length_ = 0;
      __return_storage_ptr__->opcode_ = 0;
      __return_storage_ptr__->lineno_ = iVar6;
      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
      return __return_storage_ptr__;
    }
  } while( true );
LAB_001d8850:
  pbVar9 = pbVar7 + 2;
  *pp = (char *)pbVar9;
  goto LAB_001d8714;
joined_r0x001d8a89:
  if (9 < (int)(char)bVar1 - 0x30U) {
LAB_001d8aa6:
    iVar6 = this->lineno_;
    __return_storage_ptr__->classification_ = TOKEN_INTEGER;
    *pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));
    pcVar2 = this->linestart_;
    __return_storage_ptr__->value_ = (char *)pbVar9;
    __return_storage_ptr__->value_length_ =
         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;
    __return_storage_ptr__->opcode_ = 0;
    __return_storage_ptr__->lineno_ = iVar6;
    __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));
    return __return_storage_ptr__;
  }
  pbVar7 = pbVar7 + 1;
  if (pbVar7 == (byte *)0x0) {
    pbVar7 = (byte *)0xffffffff;
    goto LAB_001d8aa6;
  }
  bVar1 = *pbVar7;
  goto joined_r0x001d8a89;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

undefined4 * FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)

{
  byte bVar1;
  int iVar2;
  undefined4 uVar3;
  char cVar4;
  byte bVar5;
  undefined4 *puVar6;
  int iVar7;
  byte *pbVar8;
  undefined4 uVar9;
  byte *pbVar10;
  byte local_21;
  
  do {
    pbVar10 = (byte *)*param_3;
LAB_001d8714:
    while( true ) {
      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {
      }
      if (bVar5 != 10) break;
      pbVar10 = pbVar10 + 1;
      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;
      *(byte **)(param_2 + 0x30) = pbVar10;
    }
    if (bVar5 == 0) {
      *param_1 = 1;
      uVar9 = *(undefined4 *)(param_2 + 0x2c);
      *param_3 = (int)pbVar10;
      iVar7 = *(int *)(param_2 + 0x30);
      goto LAB_001d886d;
    }
    bVar1 = pbVar10[1];
    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {
      uVar9 = *(undefined4 *)(param_2 + 0x2c);
      pbVar8 = pbVar10 + 2;
      iVar7 = *(int *)(param_2 + 0x30);
      *param_3 = (int)pbVar8;
      bVar5 = pbVar10[2];
      do {
        if (bVar5 == 0x2a) {
          bVar5 = pbVar8[1];
          if (bVar5 == 0x2f) goto LAB_001d8850;
        }
        else {
          if (bVar5 == 0) {
            *param_3 = (int)pbVar8;
            *param_1 = 0;
            param_1[4] = uVar9;
            param_1[1] = 0;
            param_1[2] = 0;
            param_1[3] = 0;
            param_1[5] = pbVar10 + (1 - iVar7);
            return param_1;
          }
          if (bVar5 == 10) {
            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;
            *(byte **)(param_2 + 0x30) = pbVar8 + 1;
          }
          bVar5 = pbVar8[1];
        }
        pbVar8 = pbVar8 + 1;
      } while( true );
    }
    if (bVar5 != 0x23) {
      if ((byte)(bVar5 - 0x24) < 0x5b) {
                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        puVar6 = (undefined4 *)
                 (*(code *)((int)&__DT_PLTGOT +
                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();
        return puVar6;
      }
      if (bVar5 == 0x22) {
        *param_3 = (int)pbVar10;
        FUN_001d8640(param_1,param_2,param_3);
        return param_1;
      }
      if (bVar1 == 0) {
        if (bVar5 != 0x30) {
          local_21 = 0;
          goto LAB_001d89ae;
        }
      }
      else {
        local_21 = pbVar10[2];
        if (bVar5 == 0x30) {
          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;
          if ((byte)(local_21 - 0x30) < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            puVar6 = (undefined4 *)
                     (*(code *)((int)&__DT_PLTGOT +
                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();
            return puVar6;
          }
        }
LAB_001d89ae:
        iVar7 = (int)(char)bVar5;
        if (9 < iVar7 - 0x30U) {
          if (bVar5 == 0x3c) {
            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {
              uVar9 = 0x106;
LAB_001d8d44:
              uVar3 = *(undefined4 *)(param_2 + 0x2c);
              *param_1 = 4;
              *param_3 = (int)(pbVar10 + 3);
              iVar7 = *(int *)(param_2 + 0x30);
              param_1[1] = 0;
              param_1[2] = 0;
              param_1[3] = uVar9;
              param_1[4] = uVar3;
              param_1[5] = pbVar10 + (1 - iVar7);
              return param_1;
            }
            if (bVar1 == 0x3d) {
              uVar9 = 0x10e;
LAB_001d8be1:
              uVar3 = *(undefined4 *)(param_2 + 0x2c);
              *param_1 = 4;
              *param_3 = (int)(pbVar10 + 2);
              iVar7 = *(int *)(param_2 + 0x30);
              param_1[1] = 0;
              param_1[2] = 0;
              param_1[3] = uVar9;
              param_1[4] = uVar3;
              param_1[5] = pbVar10 + (1 - iVar7);
              return param_1;
            }
            if (bVar1 == 0x3c) {
              uVar9 = 0x110;
              goto LAB_001d8be1;
            }
LAB_001d89ff:
            uVar9 = *(undefined4 *)(param_2 + 0x2c);
            if (iVar7 != 0) {
              *param_1 = 4;
              *param_3 = (int)(pbVar10 + 1);
              iVar2 = *(int *)(param_2 + 0x30);
              param_1[1] = 0;
              param_1[2] = 0;
              param_1[3] = iVar7;
              param_1[4] = uVar9;
              param_1[5] = pbVar10 + (1 - iVar2);
              return param_1;
            }
          }
          else {
            if (bVar5 == 0x3e) {
              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;
              if (bVar1 == 0x3d) {
                uVar9 = 0x10f;
                goto LAB_001d8be1;
              }
              if (bVar1 == 0x3e) {
                uVar9 = 0x111;
                goto LAB_001d8be1;
              }
              goto LAB_001d89ff;
            }
            if ((byte)(bVar5 - 0x21) < 0x5c) {
                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              puVar6 = (undefined4 *)
                       (*(code *)((int)&__DT_PLTGOT +
                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();
              return puVar6;
            }
            if ((byte)(bVar5 - 0x21) < 0x5e) {
                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              puVar6 = (undefined4 *)
                       (*(code *)((int)&__DT_PLTGOT +
                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();
              return puVar6;
            }
          }
          iVar7 = *(int *)(param_2 + 0x30);
          uVar9 = *(undefined4 *)(param_2 + 0x2c);
          *param_1 = 0;
LAB_001d886d:
          param_1[1] = 0;
          param_1[2] = 0;
          param_1[3] = 0;
          param_1[4] = uVar9;
          param_1[5] = pbVar10 + (1 - iVar7);
          return param_1;
        }
      }
LAB_001d8a78:
      pbVar8 = pbVar10 + 1;
      goto joined_r0x001d8a89;
    }
    *param_3 = (int)(pbVar10 + 1);
    cVar4 = FUN_001d85e0(param_2,param_3);
    if (cVar4 == '\0') {
      uVar9 = *(undefined4 *)(param_2 + 0x2c);
      iVar7 = *(int *)(param_2 + 0x30);
      *param_1 = 1;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0;
      param_1[4] = uVar9;
      param_1[5] = pbVar10 + (1 - iVar7);
      return param_1;
    }
  } while( true );
LAB_001d8850:
  pbVar10 = pbVar8 + 2;
  *param_3 = (int)pbVar10;
  goto LAB_001d8714;
joined_r0x001d8a89:
  if (9 < (int)(char)bVar1 - 0x30U) {
LAB_001d8aa6:
    uVar9 = *(undefined4 *)(param_2 + 0x2c);
    *param_1 = 5;
    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));
    iVar7 = *(int *)(param_2 + 0x30);
    param_1[1] = pbVar10;
    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;
    param_1[3] = 0;
    param_1[4] = uVar9;
    param_1[5] = pbVar10 + (1 - iVar7);
    return param_1;
  }
  pbVar8 = pbVar8 + 1;
  if (pbVar8 == (byte *)0x0) {
    pbVar8 = (byte *)0xffffffff;
    goto LAB_001d8aa6;
  }
  bVar1 = *pbVar8;
  goto joined_r0x001d8a89;
}


CALL 0x000b4846
ADD EAX,0x23b90b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV EDI,dword ptr [ESP + 0x40]
MOV ESI,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0xc],EAX
MOV EBP,dword ptr [ESP + 0x48]
MOV EBX,dword ptr [EBP]
MOVZX EAX,byte ptr [EBX]
MOV EDX,EAX
AND EDX,0xfffffffb
CMP DL,0x9
JZ 0x001d87a0
CMP AL,0x20
JZ 0x001d87a0
CMP AL,0xa
JZ 0x001d8800
TEST AL,AL
JZ 0x001d885b
MOVZX EDX,byte ptr [EBX + 0x1]
CMP AL,0x2f
JNZ 0x001d8742
CMP DL,0x2a
JZ 0x001d87b0
CMP AL,0x23
JNZ 0x001d888d
SUB ESP,0x8
LEA EAX,[EBX + 0x1]
MOV dword ptr [EBP],EAX
PUSH EBP
PUSH ESI
CALL 0x001d85e0
ADD ESP,0x10
TEST AL,AL
JNZ 0x001d8711
MOV EAX,dword ptr [ESI + 0x2c]
SUB EBX,dword ptr [ESI + 0x30]
MOV dword ptr [EDI],0x1
ADD EBX,0x1
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x10],EAX
MOV dword ptr [EDI + 0x14],EBX
ADD ESP,0x2c
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
ADD EBX,0x1
JMP 0x001d8714
MOV EAX,dword ptr [ESI + 0x2c]
LEA EDX,[EBX + 0x2]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESI + 0x30]
MOV dword ptr [EBP],EDX
MOV dword ptr [ESP + 0x10],EAX
MOVZX EAX,byte ptr [EBX + 0x2]
CMP AL,0x2a
JZ 0x001d87ec
LEA ESI,[ESI]
TEST AL,AL
JZ 0x001d8810
LEA ECX,[EDX + 0x1]
CMP AL,0xa
JNZ 0x001d87e2
ADD dword ptr [ESI + 0x2c],0x1
MOV dword ptr [ESI + 0x30],ECX
MOVZX EAX,byte ptr [EDX + 0x1]
MOV EDX,ECX
CMP AL,0x2a
JNZ 0x001d87d0
MOVZX EAX,byte ptr [EDX + 0x1]
CMP AL,0x2f
JZ 0x001d8850
LEA ECX,[EDX + 0x1]
MOV EDX,ECX
JMP 0x001d87e8
ADD EBX,0x1
ADD dword ptr [ESI + 0x2c],0x1
MOV dword ptr [ESI + 0x30],EBX
JMP 0x001d8714
MOV EAX,dword ptr [ESP + 0x14]
SUB EBX,dword ptr [ESP + 0x10]
MOV dword ptr [EBP],EDX
ADD EBX,0x1
MOV dword ptr [EDI],0x0
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,EDI
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x14],EBX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
LEA EBX,[EDX + 0x2]
MOV dword ptr [EBP],EBX
JMP 0x001d8714
MOV dword ptr [EDI],0x1
MOV EDX,dword ptr [ESI + 0x2c]
MOV dword ptr [EBP],EBX
SUB EBX,dword ptr [ESI + 0x30]
LEA EAX,[EBX + 0x1]
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x10],EDX
MOV dword ptr [EDI + 0x14],EAX
JMP 0x001d878b
LEA ECX,[EAX + -0x24]
MOV byte ptr [ESP + 0x14],AL
MOV byte ptr [ESP + 0x10],DL
CMP CL,0x5a
JA 0x001d8988
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ECX,CL
MOV EDX,dword ptr [EAX + ECX*0x4 + 0xffef766c]
ADD EDX,EAX
JMP EDX
SUB ECX,EBX
MOV dword ptr [EDI + 0x4],EBX
MOV dword ptr [EDI + 0x8],ECX
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x10],EDX
MOV dword ptr [EDI + 0x14],EAX
JMP 0x001d878b
CMP byte ptr [ESP + 0x14],0x22
JZ 0x001d8ca8
CMP byte ptr [ESP + 0x10],0x0
JNZ 0x001d8ad2
CMP byte ptr [ESP + 0x14],0x30
JZ 0x001d8a78
MOV byte ptr [ESP + 0x1b],0x0
MOVSX EAX,byte ptr [ESP + 0x14]
LEA ECX,[EAX + -0x30]
MOV dword ptr [ESP + 0x1c],EAX
CMP ECX,0x9
JBE 0x001d8a78
CMP AL,0x3c
JZ 0x001d8cd2
CMP AL,0x3e
JNZ 0x001d8ba4
CMP byte ptr [ESP + 0x10],0x3e
JNZ 0x001d89ea
CMP byte ptr [ESP + 0x1b],0x3d
MOV EDX,0x107
JZ 0x001d8d44
MOVZX EAX,byte ptr [ESP + 0x10]
CMP AL,0x3d
JZ 0x001d8d81
CMP AL,0x3e
JZ 0x001d8d77
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESI + 0x2c]
TEST ECX,ECX
JZ 0x001d8d00
LEA EAX,[EBX + 0x1]
MOV dword ptr [EDI],0x4
MOV dword ptr [EBP],EAX
MOV EAX,EBX
SUB EAX,dword ptr [ESI + 0x30]
ADD EAX,0x1
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],ECX
MOV dword ptr [EDI + 0x10],EDX
MOV dword ptr [EDI + 0x14],EAX
JMP 0x001d878b
MOVZX EDX,byte ptr [ESP + 0x10]
LEA ECX,[EBX + 0x1]
MOVSX EAX,DL
SUB EAX,0x30
CMP EAX,0x9
JA 0x001d8aa2
ADD ECX,0x1
JZ 0x001d8d33
MOVZX EDX,byte ptr [ECX]
MOVSX EAX,DL
SUB EAX,0x30
CMP EAX,0x9
JBE 0x001d8a8b
MOV byte ptr [ESP + 0x10],DL
MOVZX EAX,byte ptr [ESP + 0x10]
MOV EDX,dword ptr [ESI + 0x2c]
MOV dword ptr [EDI],0x5
AND EAX,0xffffffdf
SUB EAX,0x4b
AND EAX,0xfffffffd
CMP AL,0x1
MOV EAX,EBX
ADC ECX,0x0
MOV dword ptr [EBP],ECX
SUB EAX,dword ptr [ESI + 0x30]
ADD EAX,0x1
JMP 0x001d890e
MOVZX ECX,byte ptr [EBX + 0x2]
CMP byte ptr [ESP + 0x14],0x30
MOV EAX,ECX
MOV byte ptr [ESP + 0x1b],CL
JNZ 0x001d89ae
MOVZX ECX,byte ptr [ESP + 0x10]
AND ECX,0xffffffdf
CMP CL,0x58
JNZ 0x001d8a78
MOV ECX,EAX
SUB ECX,0x30
CMP CL,0x36
JA 0x001d89ae
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ECX,CL
MOV EDX,dword ptr [EAX + ECX*0x4 + 0xffef7c1c]
ADD EDX,EAX
JMP EDX
MOVZX EAX,byte ptr [ESP + 0x14]
LEA ECX,[EAX + -0x21]
CMP CL,0x5b
JA 0x001d8d16
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ECX,CL
MOV EDX,dword ptr [EAX + ECX*0x4 + 0xffef7dd4]
ADD EDX,EAX
JMP EDX
LEA EDX,[EBX + 0x2]
MOV ECX,dword ptr [ESI + 0x2c]
MOV dword ptr [EDI],0x4
MOV dword ptr [EBP],EDX
SUB EBX,dword ptr [ESI + 0x30]
MOV EDX,EBX
MOV dword ptr [EDI + 0x4],0x0
ADD EDX,0x1
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],EAX
MOV dword ptr [EDI + 0x10],ECX
MOV dword ptr [EDI + 0x14],EDX
JMP 0x001d878b
SUB ESP,0x4
MOV dword ptr [EBP],EBX
PUSH EBP
PUSH ESI
PUSH EDI
CALL 0x001d8640
ADD ESP,0xc
JMP 0x001d878b
CMP byte ptr [ESP + 0x10],0x3c
JNZ 0x001d8ce0
CMP byte ptr [ESP + 0x1b],0x3d
JZ 0x001d8d3f
MOVZX EAX,byte ptr [ESP + 0x10]
CMP AL,0x3d
JZ 0x001d8d8b
CMP AL,0x3c
JNZ 0x001d89ff
MOV EAX,0x110
JMP 0x001d8be1
MOV EAX,EBX
SUB EAX,dword ptr [ESI + 0x30]
MOV EDX,dword ptr [ESI + 0x2c]
MOV dword ptr [EDI],0x0
ADD EAX,0x1
JMP 0x001d886d
MOVZX EAX,byte ptr [ESP + 0x14]
LEA EDX,[EAX + -0x21]
CMP DL,0x5d
JA 0x001d8d00
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EDX,DL
ADD EAX,dword ptr [EAX + EDX*0x4 + 0xffef7f44]
JMP EAX
MOV byte ptr [ESP + 0x10],DL
OR ECX,0xffffffff
JMP 0x001d8aa6
MOV EDX,0x106
LEA EAX,[EBX + 0x3]
MOV ECX,dword ptr [ESI + 0x2c]
MOV dword ptr [EDI],0x4
MOV dword ptr [EBP],EAX
MOV EAX,EBX
SUB EAX,dword ptr [ESI + 0x30]
ADD EAX,0x1
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],EDX
MOV dword ptr [EDI + 0x10],ECX
MOV dword ptr [EDI + 0x14],EAX
JMP 0x001d878b
MOV EAX,0x111
JMP 0x001d8be1
MOV EAX,0x10f
JMP 0x001d8be1
MOV EAX,0x10e
JMP 0x001d8be1
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined4 * FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}\n\n" comment (function_definition "undefined4 * FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}" type_identifier (pointer_declarator "* FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)" * (function_declarator "FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)" identifier (parameter_list "(undefined4 *param_1,int param_2,int *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte local_21;" type_identifier identifier ;) (do_statement "do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  }" { (expression_statement "pbVar10 = (byte *)*param_3;" (assignment_expression "pbVar10 = (byte *)*param_3" identifier = (cast_expression "(byte *)*param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (labeled_statement "LAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" statement_identifier : (while_statement "while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" { (for_statement "for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }" for ( ; (parenthesized_expression "(bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20))" ( (comma_expression "bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)" (assignment_expression "bVar5 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) , (binary_expression "(bVar5 & 0xfb) == 9 || (bVar5 == 0x20)" (binary_expression "(bVar5 & 0xfb) == 9" (parenthesized_expression "(bVar5 & 0xfb)" ( (binary_expression "bVar5 & 0xfb" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(bVar5 == 0x20)" ( (binary_expression "bVar5 == 0x20" identifier == number_literal) )))) )) ; (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) (if_statement "if (bVar5 != 10) break;" if (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;" (assignment_expression "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(byte **)(param_2 + 0x30) = pbVar10;" (assignment_expression "*(byte **)(param_2 + 0x30) = pbVar10" (pointer_expression "*(byte **)(param_2 + 0x30)" * (cast_expression "(byte **)(param_2 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }" { (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001d886d;" goto statement_identifier ;) })) (expression_statement "bVar1 = pbVar10[1];" (assignment_expression "bVar1 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }" if (parenthesized_expression "((bVar5 == 0x2f) && (bVar1 == 0x2a))" ( (binary_expression "(bVar5 == 0x2f) && (bVar1 == 0x2a)" (parenthesized_expression "(bVar5 == 0x2f)" ( (binary_expression "bVar5 == 0x2f" identifier == number_literal) )) && (parenthesized_expression "(bVar1 == 0x2a)" ( (binary_expression "bVar1 == 0x2a" identifier == number_literal) ))) )) (compound_statement "{\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }" { (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar10 + 2;" (assignment_expression "pbVar8 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = (int)pbVar8;" (assignment_expression "*param_3 = (int)pbVar8" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar5 = pbVar10[2];" (assignment_expression "bVar5 = pbVar10[2]" identifier = (subscript_expression "pbVar10[2]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );" do (compound_statement "{\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      }" { (if_statement "if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" if (parenthesized_expression "(bVar5 == 0x2a)" ( (binary_expression "bVar5 == 0x2a" identifier == number_literal) )) (compound_statement "{\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }" { (expression_statement "bVar5 = pbVar8[1];" (assignment_expression "bVar5 = pbVar8[1]" identifier = (subscript_expression "pbVar8[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar5 == 0x2f) goto LAB_001d8850;" if (parenthesized_expression "(bVar5 == 0x2f)" ( (binary_expression "bVar5 == 0x2f" identifier == number_literal) )) (goto_statement "goto LAB_001d8850;" goto statement_identifier ;)) }) (else_clause "else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" else (compound_statement "{\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" { (if_statement "if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }" { (expression_statement "*param_3 = (int)pbVar8;" (assignment_expression "*param_3 = (int)pbVar8" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }" if (parenthesized_expression "(bVar5 == 10)" ( (binary_expression "bVar5 == 10" identifier == number_literal) )) (compound_statement "{\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }" { (expression_statement "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;" (assignment_expression "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(byte **)(param_2 + 0x30) = pbVar8 + 1;" (assignment_expression "*(byte **)(param_2 + 0x30) = pbVar8 + 1" (pointer_expression "*(byte **)(param_2 + 0x30)" * (cast_expression "(byte **)(param_2 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) })) (expression_statement "bVar5 = pbVar8[1];" (assignment_expression "bVar5 = pbVar8[1]" identifier = (subscript_expression "pbVar8[1]" identifier [ number_literal ])) ;) }))) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }" if (parenthesized_expression "(bVar5 != 0x23)" ( (binary_expression "bVar5 != 0x23" identifier != number_literal) )) (compound_statement "{\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }" { (if_statement "if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }" if (parenthesized_expression "((byte)(bVar5 - 0x24) < 0x5b)" ( (binary_expression "(byte)(bVar5 - 0x24) < 0x5b" (call_expression "(byte)(bVar5 - 0x24)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar5 - 0x24)" ( (binary_expression "bVar5 - 0x24" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }" { comment comment (expression_statement "puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" * (cast_expression "(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" ( (binary_expression "&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4" (pointer_expression "&DAT_0030b66c" & identifier) + (binary_expression "(uint)(byte)(bVar5 - 0x24) * 4" (call_expression "(uint)(byte)(bVar5 - 0x24)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar5 - 0x24)" ( (binary_expression "bVar5 - 0x24" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }" if (parenthesized_expression "(bVar5 == 0x22)" ( (binary_expression "bVar5 == 0x22" identifier == number_literal) )) (compound_statement "{\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }" { (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_001d8640(param_1,param_2,param_3);" (call_expression "FUN_001d8640(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }" { (if_statement "if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }" if (parenthesized_expression "(bVar5 != 0x30)" ( (binary_expression "bVar5 != 0x30" identifier != number_literal) )) (compound_statement "{\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }" { (expression_statement "local_21 = 0;" (assignment_expression "local_21 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001d89ae;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" else (compound_statement "{\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" { (expression_statement "local_21 = pbVar10[2];" (assignment_expression "local_21 = pbVar10[2]" identifier = (subscript_expression "pbVar10[2]" identifier [ number_literal ])) ;) (if_statement "if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }" if (parenthesized_expression "(bVar5 == 0x30)" ( (binary_expression "bVar5 == 0x30" identifier == number_literal) )) (compound_statement "{\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }" { (if_statement "if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;" if (parenthesized_expression "((bVar1 & 0xdf) != 0x58)" ( (binary_expression "(bVar1 & 0xdf) != 0x58" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_001d8a78;" goto statement_identifier ;)) (if_statement "if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }" if (parenthesized_expression "((byte)(local_21 - 0x30) < 0x37)" ( (binary_expression "(byte)(local_21 - 0x30) < 0x37" (call_expression "(byte)(local_21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_21 - 0x30)" ( (binary_expression "local_21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }" { comment comment (expression_statement "puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" * (cast_expression "(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" ( (binary_expression "&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4" (pointer_expression "&DAT_0030bc1c" & identifier) + (binary_expression "(uint)(byte)(local_21 - 0x30) * 4" (call_expression "(uint)(byte)(local_21 - 0x30)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(local_21 - 0x30)" ( (binary_expression "local_21 - 0x30" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) })) (labeled_statement "LAB_001d89ae:\n        iVar7 = (int)(char)bVar5;" statement_identifier : (expression_statement "iVar7 = (int)(char)bVar5;" (assignment_expression "iVar7 = (int)(char)bVar5" identifier = (cast_expression "(int)(char)bVar5" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar5" ( (type_descriptor "char" primitive_type) ) identifier))) ;)) (if_statement "if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }" if (parenthesized_expression "(9 < iVar7 - 0x30U)" ( (binary_expression "9 < iVar7 - 0x30U" number_literal < (binary_expression "iVar7 - 0x30U" identifier - number_literal)) )) (compound_statement "{\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }" { (if_statement "if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" if (parenthesized_expression "(bVar5 == 0x3c)" ( (binary_expression "bVar5 == 0x3c" identifier == number_literal) )) (compound_statement "{\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }" { (if_statement "if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" if (parenthesized_expression "((bVar1 == 0x3c) && (local_21 == 0x3d))" ( (binary_expression "(bVar1 == 0x3c) && (local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3c)" ( (binary_expression "bVar1 == 0x3c" identifier == number_literal) )) && (parenthesized_expression "(local_21 == 0x3d)" ( (binary_expression "local_21 == 0x3d" identifier == number_literal) ))) )) (compound_statement "{\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" { (expression_statement "uVar9 = 0x106;" (assignment_expression "uVar9 = 0x106" identifier = number_literal) ;) (labeled_statement "LAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar3 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar10 + 3);" (assignment_expression "*param_3 = (int)(pbVar10 + 3)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 3)" ( (binary_expression "pbVar10 + 3" identifier + number_literal) )))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = uVar9;" (assignment_expression "param_1[3] = uVar9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = uVar3;" (assignment_expression "param_1[4] = uVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" if (parenthesized_expression "(bVar1 == 0x3d)" ( (binary_expression "bVar1 == 0x3d" identifier == number_literal) )) (compound_statement "{\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" { (expression_statement "uVar9 = 0x10e;" (assignment_expression "uVar9 = 0x10e" identifier = number_literal) ;) (labeled_statement "LAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar3 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar10 + 2);" (assignment_expression "*param_3 = (int)(pbVar10 + 2)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 2)" ( (binary_expression "pbVar10 + 2" identifier + number_literal) )))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = uVar9;" (assignment_expression "param_1[3] = uVar9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = uVar3;" (assignment_expression "param_1[4] = uVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }" if (parenthesized_expression "(bVar1 == 0x3c)" ( (binary_expression "bVar1 == 0x3c" identifier == number_literal) )) (compound_statement "{\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }" { (expression_statement "uVar9 = 0x110;" (assignment_expression "uVar9 = 0x110" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (labeled_statement "LAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }" { (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar10 + 1);" (assignment_expression "*param_3 = (int)(pbVar10 + 1)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = iVar7;" (assignment_expression "param_1[3] = iVar7" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar2);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar2)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar2)" identifier + (parenthesized_expression "(1 - iVar2)" ( (binary_expression "1 - iVar2" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) }) (else_clause "else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" else (compound_statement "{\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" { (if_statement "if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" if (parenthesized_expression "(bVar5 == 0x3e)" ( (binary_expression "bVar5 == 0x3e" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" { (if_statement "if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;" if (parenthesized_expression "((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d))" ( (binary_expression "(bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3e)" ( (binary_expression "bVar1 == 0x3e" identifier == number_literal) )) && (parenthesized_expression "(uVar9 = 0x107, local_21 == 0x3d)" ( (comma_expression "uVar9 = 0x107, local_21 == 0x3d" (assignment_expression "uVar9 = 0x107" identifier = number_literal) , (binary_expression "local_21 == 0x3d" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001d8d44;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }" if (parenthesized_expression "(bVar1 == 0x3d)" ( (binary_expression "bVar1 == 0x3d" identifier == number_literal) )) (compound_statement "{\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }" { (expression_statement "uVar9 = 0x10f;" (assignment_expression "uVar9 = 0x10f" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }" if (parenthesized_expression "(bVar1 == 0x3e)" ( (binary_expression "bVar1 == 0x3e" identifier == number_literal) )) (compound_statement "{\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }" { (expression_statement "uVar9 = 0x111;" (assignment_expression "uVar9 = 0x111" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (goto_statement "goto LAB_001d89ff;" goto statement_identifier ;) })) (if_statement "if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" if (parenthesized_expression "((byte)(bVar5 - 0x21) < 0x5c)" ( (binary_expression "(byte)(bVar5 - 0x21) < 0x5c" (call_expression "(byte)(bVar5 - 0x21)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" { comment comment (expression_statement "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" * (cast_expression "(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (binary_expression "&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4" (pointer_expression "&DAT_0030bdd4" & identifier) + (binary_expression "(uint)(byte)(bVar5 - 0x21) * 4" (call_expression "(uint)(byte)(bVar5 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" if (parenthesized_expression "((byte)(bVar5 - 0x21) < 0x5e)" ( (binary_expression "(byte)(bVar5 - 0x21) < 0x5e" (call_expression "(byte)(bVar5 - 0x21)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" { comment comment (expression_statement "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" * (cast_expression "(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (binary_expression "&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4" (pointer_expression "&DAT_0030bf44" & identifier) + (binary_expression "(uint)(byte)(bVar5 - 0x21) * 4" (call_expression "(uint)(byte)(bVar5 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) }))) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (labeled_statement "LAB_001d886d:\n          param_1[1] = 0;" statement_identifier : (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) }))) (labeled_statement "LAB_001d8a78:\n      pbVar8 = pbVar10 + 1;" statement_identifier : (expression_statement "pbVar8 = pbVar10 + 1;" (assignment_expression "pbVar8 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x001d8a89;" goto statement_identifier ;) })) (expression_statement "*param_3 = (int)(pbVar10 + 1);" (assignment_expression "*param_3 = (int)(pbVar10 + 1)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "cVar4 = FUN_001d85e0(param_2,param_3);" (assignment_expression "cVar4 = FUN_001d85e0(param_2,param_3)" identifier = (call_expression "FUN_001d85e0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }" { (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_001d8850:\n  pbVar10 = pbVar8 + 2;" statement_identifier : (expression_statement "pbVar10 = pbVar8 + 2;" (assignment_expression "pbVar10 = pbVar8 + 2" identifier = (binary_expression "pbVar8 + 2" identifier + number_literal)) ;)) (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001d8714;" goto statement_identifier ;) (labeled_statement "joined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" statement_identifier : (if_statement "if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" if (parenthesized_expression "(9 < (int)(char)bVar1 - 0x30U)" ( (binary_expression "9 < (int)(char)bVar1 - 0x30U" number_literal < (binary_expression "(int)(char)bVar1 - 0x30U" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) - number_literal)) )) (compound_statement "{\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" { (labeled_statement "LAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (expression_statement "*param_1 = 5;" (assignment_expression "*param_1 = 5" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));" (assignment_expression "*param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (binary_expression "pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" identifier + (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" ( (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" ( (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) ))) )))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = pbVar10;" (assignment_expression "param_1[1] = pbVar10" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;" (assignment_expression "param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10" (cast_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (binary_expression "pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" identifier + (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" ( (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" ( (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) ))) ))) - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) }))) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" if (parenthesized_expression "(pbVar8 == (byte *)0x0)" ( (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" { (expression_statement "pbVar8 = (byte *)0xffffffff;" (assignment_expression "pbVar8 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001d8aa6;" goto statement_identifier ;) })) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) (goto_statement "goto joined_r0x001d8a89;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: Token get_token(Lex * this, char * * pp) */\n\nToken * __thiscall gold::Lex::get_token(Token *__return_storage_ptr__,Lex *this,char **pp)\n\n{\n  byte bVar1;\n  char *pcVar2;\n  bool bVar3;\n  byte bVar4;\n  Token *pTVar5;\n  int iVar6;\n  byte *pbVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte local_21;\n  \n  do {\n    pbVar9 = (byte *)*pp;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }\n    if (bVar4 == 0) {\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      iVar6 = this->lineno_;\n      *pp = (char *)pbVar9;\n      pcVar2 = this->linestart_;\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar9[1];\n    if ((bVar4 == 0x2f) && (bVar1 == 0x2a)) {\n      iVar6 = this->lineno_;\n      pbVar7 = pbVar9 + 2;\n      pcVar2 = this->linestart_;\n      *pp = (char *)pbVar7;\n      bVar4 = pbVar9[2];\n      do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );\n    }\n    if (bVar4 != 0x23) {\n      if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }\n      if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }\n      if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }\nLAB_001d8a78:\n      pbVar7 = pbVar9 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *pp = (char *)(pbVar9 + 1);\n    bVar3 = skip_line_comment(this,pp);\n    if (!bVar3) {\n      iVar6 = this->lineno_;\n      pcVar2 = this->linestart_;\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      __return_storage_ptr__->value_ = (char *)0x0;\n      __return_storage_ptr__->value_length_ = 0;\n      __return_storage_ptr__->opcode_ = 0;\n      __return_storage_ptr__->lineno_ = iVar6;\n      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n      return __return_storage_ptr__;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar9 = pbVar7 + 2;\n  *pp = (char *)pbVar9;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    iVar6 = this->lineno_;\n    __return_storage_ptr__->classification_ = TOKEN_INTEGER;\n    *pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    pcVar2 = this->linestart_;\n    __return_storage_ptr__->value_ = (char *)pbVar9;\n    __return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;\n    __return_storage_ptr__->opcode_ = 0;\n    __return_storage_ptr__->lineno_ = iVar6;\n    __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n    return __return_storage_ptr__;\n  }\n  pbVar7 = pbVar7 + 1;\n  if (pbVar7 == (byte *)0x0) {\n    pbVar7 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar7;\n  goto joined_r0x001d8a89;\n}\n\n" comment comment (ERROR "Token * __thiscall gold::Lex::get_token(Token *__return_storage_ptr__,Lex *this,char **pp)" (binary_expression "Token * __thiscall gold::Lex::get_token(Token *__return_storage_ptr__" (binary_expression "Token * __thiscall" identifier * identifier) (ERROR "gold::Lex::get_token(Token" identifier : : identifier : : identifier ( identifier) * identifier) , type_identifier (pointer_declarator "*this" * identifier) , (ERROR "char" identifier) (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier)) )) (compound_statement "{\n  byte bVar1;\n  char *pcVar2;\n  bool bVar3;\n  byte bVar4;\n  Token *pTVar5;\n  int iVar6;\n  byte *pbVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte local_21;\n  \n  do {\n    pbVar9 = (byte *)*pp;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }\n    if (bVar4 == 0) {\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      iVar6 = this->lineno_;\n      *pp = (char *)pbVar9;\n      pcVar2 = this->linestart_;\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar9[1];\n    if ((bVar4 == 0x2f) && (bVar1 == 0x2a)) {\n      iVar6 = this->lineno_;\n      pbVar7 = pbVar9 + 2;\n      pcVar2 = this->linestart_;\n      *pp = (char *)pbVar7;\n      bVar4 = pbVar9[2];\n      do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );\n    }\n    if (bVar4 != 0x23) {\n      if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }\n      if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }\n      if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }\nLAB_001d8a78:\n      pbVar7 = pbVar9 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *pp = (char *)(pbVar9 + 1);\n    bVar3 = skip_line_comment(this,pp);\n    if (!bVar3) {\n      iVar6 = this->lineno_;\n      pcVar2 = this->linestart_;\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      __return_storage_ptr__->value_ = (char *)0x0;\n      __return_storage_ptr__->value_length_ = 0;\n      __return_storage_ptr__->opcode_ = 0;\n      __return_storage_ptr__->lineno_ = iVar6;\n      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n      return __return_storage_ptr__;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar9 = pbVar7 + 2;\n  *pp = (char *)pbVar9;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    iVar6 = this->lineno_;\n    __return_storage_ptr__->classification_ = TOKEN_INTEGER;\n    *pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    pcVar2 = this->linestart_;\n    __return_storage_ptr__->value_ = (char *)pbVar9;\n    __return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;\n    __return_storage_ptr__->opcode_ = 0;\n    __return_storage_ptr__->lineno_ = iVar6;\n    __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n    return __return_storage_ptr__;\n  }\n  pbVar7 = pbVar7 + 1;\n  if (pbVar7 == (byte *)0x0) {\n    pbVar7 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar7;\n  goto joined_r0x001d8a89;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "Token *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte local_21;" type_identifier identifier ;) (do_statement "do {\n    pbVar9 = (byte *)*pp;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }\n    if (bVar4 == 0) {\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      iVar6 = this->lineno_;\n      *pp = (char *)pbVar9;\n      pcVar2 = this->linestart_;\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar9[1];\n    if ((bVar4 == 0x2f) && (bVar1 == 0x2a)) {\n      iVar6 = this->lineno_;\n      pbVar7 = pbVar9 + 2;\n      pcVar2 = this->linestart_;\n      *pp = (char *)pbVar7;\n      bVar4 = pbVar9[2];\n      do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );\n    }\n    if (bVar4 != 0x23) {\n      if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }\n      if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }\n      if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }\nLAB_001d8a78:\n      pbVar7 = pbVar9 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *pp = (char *)(pbVar9 + 1);\n    bVar3 = skip_line_comment(this,pp);\n    if (!bVar3) {\n      iVar6 = this->lineno_;\n      pcVar2 = this->linestart_;\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      __return_storage_ptr__->value_ = (char *)0x0;\n      __return_storage_ptr__->value_length_ = 0;\n      __return_storage_ptr__->opcode_ = 0;\n      __return_storage_ptr__->lineno_ = iVar6;\n      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n      return __return_storage_ptr__;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar9 = (byte *)*pp;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }\n    if (bVar4 == 0) {\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      iVar6 = this->lineno_;\n      *pp = (char *)pbVar9;\n      pcVar2 = this->linestart_;\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar9[1];\n    if ((bVar4 == 0x2f) && (bVar1 == 0x2a)) {\n      iVar6 = this->lineno_;\n      pbVar7 = pbVar9 + 2;\n      pcVar2 = this->linestart_;\n      *pp = (char *)pbVar7;\n      bVar4 = pbVar9[2];\n      do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );\n    }\n    if (bVar4 != 0x23) {\n      if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }\n      if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }\n      if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }\nLAB_001d8a78:\n      pbVar7 = pbVar9 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *pp = (char *)(pbVar9 + 1);\n    bVar3 = skip_line_comment(this,pp);\n    if (!bVar3) {\n      iVar6 = this->lineno_;\n      pcVar2 = this->linestart_;\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      __return_storage_ptr__->value_ = (char *)0x0;\n      __return_storage_ptr__->value_length_ = 0;\n      __return_storage_ptr__->opcode_ = 0;\n      __return_storage_ptr__->lineno_ = iVar6;\n      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n      return __return_storage_ptr__;\n    }\n  }" { (expression_statement "pbVar9 = (byte *)*pp;" (assignment_expression "pbVar9 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (labeled_statement "LAB_001d8714:\n    while( true ) {\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }" statement_identifier : (while_statement "while( true ) {\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }\n      if (bVar4 != 10) break;\n      pbVar9 = pbVar9 + 1;\n      this->lineno_ = this->lineno_ + 1;\n      this->linestart_ = (char *)pbVar9;\n    }" { (for_statement "for (; (bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)); pbVar9 = pbVar9 + 1) {\n      }" for ( ; (parenthesized_expression "(bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20))" ( (comma_expression "bVar4 = *pbVar9, (bVar4 & 0xfb) == 9 || (bVar4 == 0x20)" (assignment_expression "bVar4 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) , (binary_expression "(bVar4 & 0xfb) == 9 || (bVar4 == 0x20)" (binary_expression "(bVar4 & 0xfb) == 9" (parenthesized_expression "(bVar4 & 0xfb)" ( (binary_expression "bVar4 & 0xfb" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )))) )) ; (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) (if_statement "if (bVar4 != 10) break;" if (parenthesized_expression "(bVar4 != 10)" ( (binary_expression "bVar4 != 10" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "this->lineno_ = this->lineno_ + 1;" (assignment_expression "this->lineno_ = this->lineno_ + 1" (field_expression "this->lineno_" identifier -> field_identifier) = (binary_expression "this->lineno_ + 1" (field_expression "this->lineno_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "this->linestart_ = (char *)pbVar9;" (assignment_expression "this->linestart_ = (char *)pbVar9" (field_expression "this->linestart_" identifier -> field_identifier) = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (if_statement "if (bVar4 == 0) {\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      iVar6 = this->lineno_;\n      *pp = (char *)pbVar9;\n      pcVar2 = this->linestart_;\n      goto LAB_001d886d;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      iVar6 = this->lineno_;\n      *pp = (char *)pbVar9;\n      pcVar2 = this->linestart_;\n      goto LAB_001d886d;\n    }" { (expression_statement "__return_storage_ptr__->classification_ = TOKEN_EOF;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_EOF" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar6 = this->lineno_;" (assignment_expression "iVar6 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;) (expression_statement "*pp = (char *)pbVar9;" (assignment_expression "*pp = (char *)pbVar9" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (goto_statement "goto LAB_001d886d;" goto statement_identifier ;) })) (expression_statement "bVar1 = pbVar9[1];" (assignment_expression "bVar1 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar4 == 0x2f) && (bVar1 == 0x2a)) {\n      iVar6 = this->lineno_;\n      pbVar7 = pbVar9 + 2;\n      pcVar2 = this->linestart_;\n      *pp = (char *)pbVar7;\n      bVar4 = pbVar9[2];\n      do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );\n    }" if (parenthesized_expression "((bVar4 == 0x2f) && (bVar1 == 0x2a))" ( (binary_expression "(bVar4 == 0x2f) && (bVar1 == 0x2a)" (parenthesized_expression "(bVar4 == 0x2f)" ( (binary_expression "bVar4 == 0x2f" identifier == number_literal) )) && (parenthesized_expression "(bVar1 == 0x2a)" ( (binary_expression "bVar1 == 0x2a" identifier == number_literal) ))) )) (compound_statement "{\n      iVar6 = this->lineno_;\n      pbVar7 = pbVar9 + 2;\n      pcVar2 = this->linestart_;\n      *pp = (char *)pbVar7;\n      bVar4 = pbVar9[2];\n      do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );\n    }" { (expression_statement "iVar6 = this->lineno_;" (assignment_expression "iVar6 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;) (expression_statement "pbVar7 = pbVar9 + 2;" (assignment_expression "pbVar7 = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "*pp = (char *)pbVar7;" (assignment_expression "*pp = (char *)pbVar7" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar4 = pbVar9[2];" (assignment_expression "bVar4 = pbVar9[2]" identifier = (subscript_expression "pbVar9[2]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      } while( true );" do (compound_statement "{\n        if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }\n        pbVar7 = pbVar7 + 1;\n      }" { (if_statement "if (bVar4 == 0x2a) {\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }" if (parenthesized_expression "(bVar4 == 0x2a)" ( (binary_expression "bVar4 == 0x2a" identifier == number_literal) )) (compound_statement "{\n          bVar4 = pbVar7[1];\n          if (bVar4 == 0x2f) goto LAB_001d8850;\n        }" { (expression_statement "bVar4 = pbVar7[1];" (assignment_expression "bVar4 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar4 == 0x2f) goto LAB_001d8850;" if (parenthesized_expression "(bVar4 == 0x2f)" ( (binary_expression "bVar4 == 0x2f" identifier == number_literal) )) (goto_statement "goto LAB_001d8850;" goto statement_identifier ;)) }) (else_clause "else {\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }" else (compound_statement "{\n          if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }\n          if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }\n          bVar4 = pbVar7[1];\n        }" { (if_statement "if (bVar4 == 0) {\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            *pp = (char *)pbVar7;\n            __return_storage_ptr__->classification_ = TOKEN_INVALID;\n            __return_storage_ptr__->lineno_ = iVar6;\n            __return_storage_ptr__->value_ = (char *)0x0;\n            __return_storage_ptr__->value_length_ = 0;\n            __return_storage_ptr__->opcode_ = 0;\n            __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n            return __return_storage_ptr__;\n          }" { (expression_statement "*pp = (char *)pbVar7;" (assignment_expression "*pp = (char *)pbVar7" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__return_storage_ptr__->classification_ = TOKEN_INVALID;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_INVALID" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar6;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar6" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->value_ = (char *)0x0;" (assignment_expression "__return_storage_ptr__->value_ = (char *)0x0" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__return_storage_ptr__->value_length_ = 0;" (assignment_expression "__return_storage_ptr__->value_length_ = 0" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->opcode_ = 0;" (assignment_expression "__return_storage_ptr__->opcode_ = 0" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (if_statement "if (bVar4 == 10) {\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }" if (parenthesized_expression "(bVar4 == 10)" ( (binary_expression "bVar4 == 10" identifier == number_literal) )) (compound_statement "{\n            this->lineno_ = this->lineno_ + 1;\n            this->linestart_ = (char *)(pbVar7 + 1);\n          }" { (expression_statement "this->lineno_ = this->lineno_ + 1;" (assignment_expression "this->lineno_ = this->lineno_ + 1" (field_expression "this->lineno_" identifier -> field_identifier) = (binary_expression "this->lineno_ + 1" (field_expression "this->lineno_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "this->linestart_ = (char *)(pbVar7 + 1);" (assignment_expression "this->linestart_ = (char *)(pbVar7 + 1)" (field_expression "this->linestart_" identifier -> field_identifier) = (cast_expression "(char *)(pbVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar7 + 1)" ( (binary_expression "pbVar7 + 1" identifier + number_literal) )))) ;) })) (expression_statement "bVar4 = pbVar7[1];" (assignment_expression "bVar4 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) }))) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (bVar4 != 0x23) {\n      if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }\n      if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }\n      if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }\nLAB_001d8a78:\n      pbVar7 = pbVar9 + 1;\n      goto joined_r0x001d8a89;\n    }" if (parenthesized_expression "(bVar4 != 0x23)" ( (binary_expression "bVar4 != 0x23" identifier != number_literal) )) (compound_statement "{\n      if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }\n      if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }\n      if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }\nLAB_001d8a78:\n      pbVar7 = pbVar9 + 1;\n      goto joined_r0x001d8a89;\n    }" { (if_statement "if ((byte)(bVar4 - 0x24) < 0x5b) {\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }" if (parenthesized_expression "((byte)(bVar4 - 0x24) < 0x5b)" ( (binary_expression "(byte)(bVar4 - 0x24) < 0x5b" (call_expression "(byte)(bVar4 - 0x24)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0x24)" ( (binary_expression "bVar4 - 0x24" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();\n        return pTVar5;\n      }" { comment comment (expression_statement "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))();" (assignment_expression "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))()" identifier = (cast_expression "(Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))()" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))()" (parenthesized_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)))" ( (pointer_expression "*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4))" * (cast_expression "(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4))" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n                                    *(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (pointer_expression "*(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)" * (cast_expression "(int *)(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4)" ( (binary_expression "&DAT_0030b66c + (uint)(byte)(bVar4 - 0x24) * 4" (pointer_expression "&DAT_0030b66c" & identifier) + (binary_expression "(uint)(byte)(bVar4 - 0x24) * 4" (call_expression "(uint)(byte)(bVar4 - 0x24)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar4 - 0x24)" ( (binary_expression "bVar4 - 0x24" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pTVar5;" return identifier ;) })) (if_statement "if (bVar4 == 0x22) {\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }" if (parenthesized_expression "(bVar4 == 0x22)" ( (binary_expression "bVar4 == 0x22" identifier == number_literal) )) (compound_statement "{\n        *pp = (char *)pbVar9;\n        gather_quoted_string(this,pp);\n        return __return_storage_ptr__;\n      }" { (expression_statement "*pp = (char *)pbVar9;" (assignment_expression "*pp = (char *)pbVar9" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "gather_quoted_string(this,pp);" (call_expression "gather_quoted_string(this,pp)" identifier (argument_list "(this,pp)" ( identifier , identifier ))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (if_statement "if (bVar1 == 0) {\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }\n      else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }\n      }" { (if_statement "if (bVar4 != 0x30) {\n          local_21 = 0;\n          goto _L132;\n        }" if (parenthesized_expression "(bVar4 != 0x30)" ( (binary_expression "bVar4 != 0x30" identifier != number_literal) )) (compound_statement "{\n          local_21 = 0;\n          goto _L132;\n        }" { (expression_statement "local_21 = 0;" (assignment_expression "local_21 = 0" identifier = number_literal) ;) (goto_statement "goto _L132;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }" else (compound_statement "{\n        local_21 = pbVar9[2];\n        if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }\n_L132:\n        iVar6 = (int)(char)bVar4;\n        if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }\n      }" { (expression_statement "local_21 = pbVar9[2];" (assignment_expression "local_21 = pbVar9[2]" identifier = (subscript_expression "pbVar9[2]" identifier [ number_literal ])) ;) (if_statement "if (bVar4 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }" if (parenthesized_expression "(bVar4 == 0x30)" ( (binary_expression "bVar4 == 0x30" identifier == number_literal) )) (compound_statement "{\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }\n        }" { (if_statement "if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;" if (parenthesized_expression "((bVar1 & 0xdf) != 0x58)" ( (binary_expression "(bVar1 & 0xdf) != 0x58" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_001d8a78;" goto statement_identifier ;)) (if_statement "if ((byte)(local_21 - 0x30) < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }" if (parenthesized_expression "((byte)(local_21 - 0x30) < 0x37)" ( (binary_expression "(byte)(local_21 - 0x30) < 0x37" (call_expression "(byte)(local_21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_21 - 0x30)" ( (binary_expression "local_21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();\n            return pTVar5;\n          }" { comment comment (expression_statement "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )();" (assignment_expression "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )()" identifier = (cast_expression "(Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )()" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )()" (parenthesized_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))\n                              )" ( (pointer_expression "*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" * (cast_expression "(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n                                        *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" * (cast_expression "(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" ( (binary_expression "&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4" (pointer_expression "&DAT_0030bc1c" & identifier) + (binary_expression "(uint)(byte)(local_21 - 0x30) * 4" (call_expression "(uint)(byte)(local_21 - 0x30)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(local_21 - 0x30)" ( (binary_expression "local_21 - 0x30" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pTVar5;" return identifier ;) })) })) (labeled_statement "_L132:\n        iVar6 = (int)(char)bVar4;" statement_identifier : (expression_statement "iVar6 = (int)(char)bVar4;" (assignment_expression "iVar6 = (int)(char)bVar4" identifier = (cast_expression "(int)(char)bVar4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar4" ( (type_descriptor "char" primitive_type) ) identifier))) ;)) (if_statement "if (9 < iVar6 - 0x30U) {\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }" if (parenthesized_expression "(9 < iVar6 - 0x30U)" ( (binary_expression "9 < iVar6 - 0x30U" number_literal < (binary_expression "iVar6 - 0x30U" identifier - number_literal)) )) (compound_statement "{\n          if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }\n          pcVar2 = this->linestart_;\n          iVar6 = this->lineno_;\n          __return_storage_ptr__->classification_ = TOKEN_INVALID;\nLAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;\n          __return_storage_ptr__->value_length_ = 0;\n          __return_storage_ptr__->opcode_ = 0;\n          __return_storage_ptr__->lineno_ = iVar6;\n          __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n          return __return_storage_ptr__;\n        }" { (if_statement "if (bVar4 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }\n          else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }" if (parenthesized_expression "(bVar4 == 0x3c)" ( (binary_expression "bVar4 == 0x3c" identifier == number_literal) )) (compound_statement "{\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n            if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            iVar8 = this->lineno_;\n            if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }\n          }" { (if_statement "if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }" if (parenthesized_expression "((bVar1 == 0x3c) && (local_21 == 0x3d))" ( (binary_expression "(bVar1 == 0x3c) && (local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3c)" ( (binary_expression "bVar1 == 0x3c" identifier == number_literal) )) && (parenthesized_expression "(local_21 == 0x3d)" ( (binary_expression "local_21 == 0x3d" identifier == number_literal) ))) )) (compound_statement "{\n              iVar8 = 0x106;\nLAB_001d8d44:\n              iVar6 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 3);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar8;\n              __return_storage_ptr__->lineno_ = iVar6;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }" { (expression_statement "iVar8 = 0x106;" (assignment_expression "iVar8 = 0x106" identifier = number_literal) ;) (labeled_statement "LAB_001d8d44:\n              iVar6 = this->lineno_;" statement_identifier : (expression_statement "iVar6 = this->lineno_;" (assignment_expression "iVar6 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;)) (expression_statement "__return_storage_ptr__->classification_ = TOKEN_OPERATOR;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_OPERATOR" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "*pp = (char *)(pbVar9 + 3);" (assignment_expression "*pp = (char *)(pbVar9 + 3)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 3)" ( (binary_expression "pbVar9 + 3" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "__return_storage_ptr__->value_ = (char *)0x0;" (assignment_expression "__return_storage_ptr__->value_ = (char *)0x0" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__return_storage_ptr__->value_length_ = 0;" (assignment_expression "__return_storage_ptr__->value_length_ = 0" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->opcode_ = iVar8;" (assignment_expression "__return_storage_ptr__->opcode_ = iVar8" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar6;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar6" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (if_statement "if (bVar1 == 0x3d) {\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }" if (parenthesized_expression "(bVar1 == 0x3d)" ( (binary_expression "bVar1 == 0x3d" identifier == number_literal) )) (compound_statement "{\n              iVar6 = 0x10e;\nLAB_001d8be1:\n              iVar8 = this->lineno_;\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 2);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }" { (expression_statement "iVar6 = 0x10e;" (assignment_expression "iVar6 = 0x10e" identifier = number_literal) ;) (labeled_statement "LAB_001d8be1:\n              iVar8 = this->lineno_;" statement_identifier : (expression_statement "iVar8 = this->lineno_;" (assignment_expression "iVar8 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;)) (expression_statement "__return_storage_ptr__->classification_ = TOKEN_OPERATOR;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_OPERATOR" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "*pp = (char *)(pbVar9 + 2);" (assignment_expression "*pp = (char *)(pbVar9 + 2)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar9 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 2)" ( (binary_expression "pbVar9 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "__return_storage_ptr__->value_ = (char *)0x0;" (assignment_expression "__return_storage_ptr__->value_ = (char *)0x0" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__return_storage_ptr__->value_length_ = 0;" (assignment_expression "__return_storage_ptr__->value_length_ = 0" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->opcode_ = iVar6;" (assignment_expression "__return_storage_ptr__->opcode_ = iVar6" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar8;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar8" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (if_statement "if (bVar1 == 0x3c) {\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }" if (parenthesized_expression "(bVar1 == 0x3c)" ( (binary_expression "bVar1 == 0x3c" identifier == number_literal) )) (compound_statement "{\n              iVar6 = 0x110;\n              goto LAB_001d8be1;\n            }" { (expression_statement "iVar6 = 0x110;" (assignment_expression "iVar6 = 0x110" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (labeled_statement "LAB_001d89ff:\n            iVar8 = this->lineno_;" statement_identifier : (expression_statement "iVar8 = this->lineno_;" (assignment_expression "iVar8 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;)) (if_statement "if (iVar6 != 0) {\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;\n              *pp = (char *)(pbVar9 + 1);\n              pcVar2 = this->linestart_;\n              __return_storage_ptr__->value_ = (char *)0x0;\n              __return_storage_ptr__->value_length_ = 0;\n              __return_storage_ptr__->opcode_ = iVar6;\n              __return_storage_ptr__->lineno_ = iVar8;\n              __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n              return __return_storage_ptr__;\n            }" { (expression_statement "__return_storage_ptr__->classification_ = TOKEN_OPERATOR;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_OPERATOR" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "*pp = (char *)(pbVar9 + 1);" (assignment_expression "*pp = (char *)(pbVar9 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 1)" ( (binary_expression "pbVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "__return_storage_ptr__->value_ = (char *)0x0;" (assignment_expression "__return_storage_ptr__->value_ = (char *)0x0" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__return_storage_ptr__->value_length_ = 0;" (assignment_expression "__return_storage_ptr__->value_length_ = 0" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->opcode_ = iVar6;" (assignment_expression "__return_storage_ptr__->opcode_ = iVar6" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar8;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar8" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) }) (else_clause "else {\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }" else (compound_statement "{\n            if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n            if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }\n          }" { (if_statement "if (bVar4 == 0x3e) {\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" if (parenthesized_expression "(bVar4 == 0x3e)" ( (binary_expression "bVar4 == 0x3e" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" { (if_statement "if ((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;" if (parenthesized_expression "((bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d))" ( (binary_expression "(bVar1 == 0x3e) && (iVar8 = 0x107, local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3e)" ( (binary_expression "bVar1 == 0x3e" identifier == number_literal) )) && (parenthesized_expression "(iVar8 = 0x107, local_21 == 0x3d)" ( (comma_expression "iVar8 = 0x107, local_21 == 0x3d" (assignment_expression "iVar8 = 0x107" identifier = number_literal) , (binary_expression "local_21 == 0x3d" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001d8d44;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x3d) {\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }" if (parenthesized_expression "(bVar1 == 0x3d)" ( (binary_expression "bVar1 == 0x3d" identifier == number_literal) )) (compound_statement "{\n                iVar6 = 0x10f;\n                goto LAB_001d8be1;\n              }" { (expression_statement "iVar6 = 0x10f;" (assignment_expression "iVar6 = 0x10f" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x3e) {\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }" if (parenthesized_expression "(bVar1 == 0x3e)" ( (binary_expression "bVar1 == 0x3e" identifier == number_literal) )) (compound_statement "{\n                iVar6 = 0x111;\n                goto LAB_001d8be1;\n              }" { (expression_statement "iVar6 = 0x111;" (assignment_expression "iVar6 = 0x111" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (goto_statement "goto LAB_001d89ff;" goto statement_identifier ;) })) (if_statement "if ((byte)(bVar4 - 0x21) < 0x5c) {\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }" if (parenthesized_expression "((byte)(bVar4 - 0x21) < 0x5c)" ( (binary_expression "(byte)(bVar4 - 0x21) < 0x5c" (call_expression "(byte)(bVar4 - 0x21)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0x21)" ( (binary_expression "bVar4 - 0x21" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }" { comment comment (expression_statement "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();" (assignment_expression "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ()" identifier = (cast_expression "(Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ()" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ()" (parenthesized_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)))" ( (pointer_expression "*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4))" * (cast_expression "(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4))" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)" * (cast_expression "(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4)" ( (binary_expression "&DAT_0030bdd4 + (uint)(byte)(bVar4 - 0x21) * 4" (pointer_expression "&DAT_0030bdd4" & identifier) + (binary_expression "(uint)(byte)(bVar4 - 0x21) * 4" (call_expression "(uint)(byte)(bVar4 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar4 - 0x21)" ( (binary_expression "bVar4 - 0x21" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pTVar5;" return identifier ;) })) (if_statement "if ((byte)(bVar4 - 0x21) < 0x5e) {\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }" if (parenthesized_expression "((byte)(bVar4 - 0x21) < 0x5e)" ( (binary_expression "(byte)(bVar4 - 0x21) < 0x5e" (call_expression "(byte)(bVar4 - 0x21)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0x21)" ( (binary_expression "bVar4 - 0x21" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();\n              return pTVar5;\n            }" { comment comment (expression_statement "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ();" (assignment_expression "pTVar5 = (Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ()" identifier = (cast_expression "(Token *)(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ()" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))\n                                          ()" (parenthesized_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)))" ( (pointer_expression "*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4))" * (cast_expression "(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4))" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n                                          *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)" * (cast_expression "(int *)(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4)" ( (binary_expression "&DAT_0030bf44 + (uint)(byte)(bVar4 - 0x21) * 4" (pointer_expression "&DAT_0030bf44" & identifier) + (binary_expression "(uint)(byte)(bVar4 - 0x21) * 4" (call_expression "(uint)(byte)(bVar4 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar4 - 0x21)" ( (binary_expression "bVar4 - 0x21" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pTVar5;" return identifier ;) })) }))) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "iVar6 = this->lineno_;" (assignment_expression "iVar6 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;) (expression_statement "__return_storage_ptr__->classification_ = TOKEN_INVALID;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_INVALID" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_001d886d:\n          __return_storage_ptr__->value_ = (char *)0x0;" statement_identifier : (expression_statement "__return_storage_ptr__->value_ = (char *)0x0;" (assignment_expression "__return_storage_ptr__->value_ = (char *)0x0" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "__return_storage_ptr__->value_length_ = 0;" (assignment_expression "__return_storage_ptr__->value_length_ = 0" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->opcode_ = 0;" (assignment_expression "__return_storage_ptr__->opcode_ = 0" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar6;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar6" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) }))) (labeled_statement "LAB_001d8a78:\n      pbVar7 = pbVar9 + 1;" statement_identifier : (expression_statement "pbVar7 = pbVar9 + 1;" (assignment_expression "pbVar7 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x001d8a89;" goto statement_identifier ;) })) (expression_statement "*pp = (char *)(pbVar9 + 1);" (assignment_expression "*pp = (char *)(pbVar9 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 1)" ( (binary_expression "pbVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar3 = skip_line_comment(this,pp);" (assignment_expression "bVar3 = skip_line_comment(this,pp)" identifier = (call_expression "skip_line_comment(this,pp)" identifier (argument_list "(this,pp)" ( identifier , identifier )))) ;) (if_statement "if (!bVar3) {\n      iVar6 = this->lineno_;\n      pcVar2 = this->linestart_;\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      __return_storage_ptr__->value_ = (char *)0x0;\n      __return_storage_ptr__->value_length_ = 0;\n      __return_storage_ptr__->opcode_ = 0;\n      __return_storage_ptr__->lineno_ = iVar6;\n      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n      return __return_storage_ptr__;\n    }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n      iVar6 = this->lineno_;\n      pcVar2 = this->linestart_;\n      __return_storage_ptr__->classification_ = TOKEN_EOF;\n      __return_storage_ptr__->value_ = (char *)0x0;\n      __return_storage_ptr__->value_length_ = 0;\n      __return_storage_ptr__->opcode_ = 0;\n      __return_storage_ptr__->lineno_ = iVar6;\n      __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n      return __return_storage_ptr__;\n    }" { (expression_statement "iVar6 = this->lineno_;" (assignment_expression "iVar6 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "__return_storage_ptr__->classification_ = TOKEN_EOF;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_EOF" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->value_ = (char *)0x0;" (assignment_expression "__return_storage_ptr__->value_ = (char *)0x0" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__return_storage_ptr__->value_length_ = 0;" (assignment_expression "__return_storage_ptr__->value_length_ = 0" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->opcode_ = 0;" (assignment_expression "__return_storage_ptr__->opcode_ = 0" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar6;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar6" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_001d8850:\n  pbVar9 = pbVar7 + 2;" statement_identifier : (expression_statement "pbVar9 = pbVar7 + 2;" (assignment_expression "pbVar9 = pbVar7 + 2" identifier = (binary_expression "pbVar7 + 2" identifier + number_literal)) ;)) (expression_statement "*pp = (char *)pbVar9;" (assignment_expression "*pp = (char *)pbVar9" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_001d8714;" goto statement_identifier ;) (labeled_statement "joined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    iVar6 = this->lineno_;\n    __return_storage_ptr__->classification_ = TOKEN_INTEGER;\n    *pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    pcVar2 = this->linestart_;\n    __return_storage_ptr__->value_ = (char *)pbVar9;\n    __return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;\n    __return_storage_ptr__->opcode_ = 0;\n    __return_storage_ptr__->lineno_ = iVar6;\n    __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n    return __return_storage_ptr__;\n  }" statement_identifier : (if_statement "if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    iVar6 = this->lineno_;\n    __return_storage_ptr__->classification_ = TOKEN_INTEGER;\n    *pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    pcVar2 = this->linestart_;\n    __return_storage_ptr__->value_ = (char *)pbVar9;\n    __return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;\n    __return_storage_ptr__->opcode_ = 0;\n    __return_storage_ptr__->lineno_ = iVar6;\n    __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n    return __return_storage_ptr__;\n  }" if (parenthesized_expression "(9 < (int)(char)bVar1 - 0x30U)" ( (binary_expression "9 < (int)(char)bVar1 - 0x30U" number_literal < (binary_expression "(int)(char)bVar1 - 0x30U" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) - number_literal)) )) (compound_statement "{\nLAB_001d8aa6:\n    iVar6 = this->lineno_;\n    __return_storage_ptr__->classification_ = TOKEN_INTEGER;\n    *pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    pcVar2 = this->linestart_;\n    __return_storage_ptr__->value_ = (char *)pbVar9;\n    __return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;\n    __return_storage_ptr__->opcode_ = 0;\n    __return_storage_ptr__->lineno_ = iVar6;\n    __return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));\n    return __return_storage_ptr__;\n  }" { (labeled_statement "LAB_001d8aa6:\n    iVar6 = this->lineno_;" statement_identifier : (expression_statement "iVar6 = this->lineno_;" (assignment_expression "iVar6 = this->lineno_" identifier = (field_expression "this->lineno_" identifier -> field_identifier)) ;)) (expression_statement "__return_storage_ptr__->classification_ = TOKEN_INTEGER;" (assignment_expression "__return_storage_ptr__->classification_ = TOKEN_INTEGER" (field_expression "__return_storage_ptr__->classification_" identifier -> field_identifier) = identifier) ;) (expression_statement "*pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));" (assignment_expression "*pp = (char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (binary_expression "pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" identifier + (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" ( (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" ( (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) ))) )))) ;) (expression_statement "pcVar2 = this->linestart_;" (assignment_expression "pcVar2 = this->linestart_" identifier = (field_expression "this->linestart_" identifier -> field_identifier)) ;) (expression_statement "__return_storage_ptr__->value_ = (char *)pbVar9;" (assignment_expression "__return_storage_ptr__->value_ = (char *)pbVar9" (field_expression "__return_storage_ptr__->value_" identifier -> field_identifier) = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9;" (assignment_expression "__return_storage_ptr__->value_length_ =\n         (int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9" (field_expression "__return_storage_ptr__->value_length_" identifier -> field_identifier) = (binary_expression "(int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar9" (cast_expression "(int)(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (binary_expression "pbVar7 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" identifier + (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" ( (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" ( (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) ))) ))) - (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "__return_storage_ptr__->opcode_ = 0;" (assignment_expression "__return_storage_ptr__->opcode_ = 0" (field_expression "__return_storage_ptr__->opcode_" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->lineno_ = iVar6;" (assignment_expression "__return_storage_ptr__->lineno_ = iVar6" (field_expression "__return_storage_ptr__->lineno_" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2));" (assignment_expression "__return_storage_ptr__->charpos_ = (int)(pbVar9 + (1 - (int)pcVar2))" (field_expression "__return_storage_ptr__->charpos_" identifier -> field_identifier) = (cast_expression "(int)(pbVar9 + (1 - (int)pcVar2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + (1 - (int)pcVar2))" ( (binary_expression "pbVar9 + (1 - (int)pcVar2)" identifier + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) }))) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar7 == (byte *)0x0) {\n    pbVar7 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\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 *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" { (expression_statement "pbVar7 = (byte *)0xffffffff;" (assignment_expression "pbVar7 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001d8aa6;" goto statement_identifier ;) })) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (goto_statement "goto joined_r0x001d8a89;" goto statement_identifier ;) }))
(translation_unit "undefined4 * FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}\n\n" (function_definition "undefined4 * FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}" type_identifier (pointer_declarator "* FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)" * (function_declarator "FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)" identifier (parameter_list "(undefined4 *param_1,int param_2,int *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte local_21;" type_identifier identifier ;) (do_statement "do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  }" { (expression_statement "pbVar10 = (byte *)*param_3;" (assignment_expression "pbVar10 = (byte *)*param_3" identifier = (cast_expression "(byte *)*param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (labeled_statement "LAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" statement_identifier : (while_statement "while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" { (for_statement "for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }" for ( ; (parenthesized_expression "(bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20))" ( (comma_expression "bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)" (assignment_expression "bVar5 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) , (binary_expression "(bVar5 & 0xfb) == 9 || (bVar5 == 0x20)" (binary_expression "(bVar5 & 0xfb) == 9" (parenthesized_expression "(bVar5 & 0xfb)" ( (binary_expression "bVar5 & 0xfb" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(bVar5 == 0x20)" ( (binary_expression "bVar5 == 0x20" identifier == number_literal) )))) )) ; (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) (if_statement "if (bVar5 != 10) break;" if (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;" (assignment_expression "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(byte **)(param_2 + 0x30) = pbVar10;" (assignment_expression "*(byte **)(param_2 + 0x30) = pbVar10" (pointer_expression "*(byte **)(param_2 + 0x30)" * (cast_expression "(byte **)(param_2 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }" { (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001d886d;" goto statement_identifier ;) })) (expression_statement "bVar1 = pbVar10[1];" (assignment_expression "bVar1 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }" if (parenthesized_expression "((bVar5 == 0x2f) && (bVar1 == 0x2a))" ( (binary_expression "(bVar5 == 0x2f) && (bVar1 == 0x2a)" (parenthesized_expression "(bVar5 == 0x2f)" ( (binary_expression "bVar5 == 0x2f" identifier == number_literal) )) && (parenthesized_expression "(bVar1 == 0x2a)" ( (binary_expression "bVar1 == 0x2a" identifier == number_literal) ))) )) (compound_statement "{\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }" { (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar10 + 2;" (assignment_expression "pbVar8 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = (int)pbVar8;" (assignment_expression "*param_3 = (int)pbVar8" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar5 = pbVar10[2];" (assignment_expression "bVar5 = pbVar10[2]" identifier = (subscript_expression "pbVar10[2]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );" do (compound_statement "{\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      }" { (if_statement "if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" if (parenthesized_expression "(bVar5 == 0x2a)" ( (binary_expression "bVar5 == 0x2a" identifier == number_literal) )) (compound_statement "{\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }" { (expression_statement "bVar5 = pbVar8[1];" (assignment_expression "bVar5 = pbVar8[1]" identifier = (subscript_expression "pbVar8[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar5 == 0x2f) goto LAB_001d8850;" if (parenthesized_expression "(bVar5 == 0x2f)" ( (binary_expression "bVar5 == 0x2f" identifier == number_literal) )) (goto_statement "goto LAB_001d8850;" goto statement_identifier ;)) }) (else_clause "else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" else (compound_statement "{\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" { (if_statement "if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }" { (expression_statement "*param_3 = (int)pbVar8;" (assignment_expression "*param_3 = (int)pbVar8" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }" if (parenthesized_expression "(bVar5 == 10)" ( (binary_expression "bVar5 == 10" identifier == number_literal) )) (compound_statement "{\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }" { (expression_statement "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;" (assignment_expression "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(byte **)(param_2 + 0x30) = pbVar8 + 1;" (assignment_expression "*(byte **)(param_2 + 0x30) = pbVar8 + 1" (pointer_expression "*(byte **)(param_2 + 0x30)" * (cast_expression "(byte **)(param_2 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) })) (expression_statement "bVar5 = pbVar8[1];" (assignment_expression "bVar5 = pbVar8[1]" identifier = (subscript_expression "pbVar8[1]" identifier [ number_literal ])) ;) }))) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }" if (parenthesized_expression "(bVar5 != 0x23)" ( (binary_expression "bVar5 != 0x23" identifier != number_literal) )) (compound_statement "{\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }" { (if_statement "if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }" if (parenthesized_expression "((byte)(bVar5 - 0x24) < 0x5b)" ( (binary_expression "(byte)(bVar5 - 0x24) < 0x5b" (call_expression "(byte)(bVar5 - 0x24)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar5 - 0x24)" ( (binary_expression "bVar5 - 0x24" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }" { (expression_statement "puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" * (cast_expression "(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" ( (binary_expression "&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4" (pointer_expression "&DAT_0030b66c" & identifier) + (binary_expression "(uint)(byte)(bVar5 - 0x24) * 4" (call_expression "(uint)(byte)(bVar5 - 0x24)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar5 - 0x24)" ( (binary_expression "bVar5 - 0x24" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }" if (parenthesized_expression "(bVar5 == 0x22)" ( (binary_expression "bVar5 == 0x22" identifier == number_literal) )) (compound_statement "{\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }" { (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_001d8640(param_1,param_2,param_3);" (call_expression "FUN_001d8640(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }" { (if_statement "if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }" if (parenthesized_expression "(bVar5 != 0x30)" ( (binary_expression "bVar5 != 0x30" identifier != number_literal) )) (compound_statement "{\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }" { (expression_statement "local_21 = 0;" (assignment_expression "local_21 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001d89ae;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" else (compound_statement "{\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" { (expression_statement "local_21 = pbVar10[2];" (assignment_expression "local_21 = pbVar10[2]" identifier = (subscript_expression "pbVar10[2]" identifier [ number_literal ])) ;) (if_statement "if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }" if (parenthesized_expression "(bVar5 == 0x30)" ( (binary_expression "bVar5 == 0x30" identifier == number_literal) )) (compound_statement "{\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }" { (if_statement "if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;" if (parenthesized_expression "((bVar1 & 0xdf) != 0x58)" ( (binary_expression "(bVar1 & 0xdf) != 0x58" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_001d8a78;" goto statement_identifier ;)) (if_statement "if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }" if (parenthesized_expression "((byte)(local_21 - 0x30) < 0x37)" ( (binary_expression "(byte)(local_21 - 0x30) < 0x37" (call_expression "(byte)(local_21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_21 - 0x30)" ( (binary_expression "local_21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }" { (expression_statement "puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" * (cast_expression "(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" ( (binary_expression "&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4" (pointer_expression "&DAT_0030bc1c" & identifier) + (binary_expression "(uint)(byte)(local_21 - 0x30) * 4" (call_expression "(uint)(byte)(local_21 - 0x30)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(local_21 - 0x30)" ( (binary_expression "local_21 - 0x30" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) })) (labeled_statement "LAB_001d89ae:\n        iVar7 = (int)(char)bVar5;" statement_identifier : (expression_statement "iVar7 = (int)(char)bVar5;" (assignment_expression "iVar7 = (int)(char)bVar5" identifier = (cast_expression "(int)(char)bVar5" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar5" ( (type_descriptor "char" primitive_type) ) identifier))) ;)) (if_statement "if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }" if (parenthesized_expression "(9 < iVar7 - 0x30U)" ( (binary_expression "9 < iVar7 - 0x30U" number_literal < (binary_expression "iVar7 - 0x30U" identifier - number_literal)) )) (compound_statement "{\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }" { (if_statement "if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" if (parenthesized_expression "(bVar5 == 0x3c)" ( (binary_expression "bVar5 == 0x3c" identifier == number_literal) )) (compound_statement "{\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }" { (if_statement "if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" if (parenthesized_expression "((bVar1 == 0x3c) && (local_21 == 0x3d))" ( (binary_expression "(bVar1 == 0x3c) && (local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3c)" ( (binary_expression "bVar1 == 0x3c" identifier == number_literal) )) && (parenthesized_expression "(local_21 == 0x3d)" ( (binary_expression "local_21 == 0x3d" identifier == number_literal) ))) )) (compound_statement "{\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" { (expression_statement "uVar9 = 0x106;" (assignment_expression "uVar9 = 0x106" identifier = number_literal) ;) (labeled_statement "LAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar3 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar10 + 3);" (assignment_expression "*param_3 = (int)(pbVar10 + 3)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 3)" ( (binary_expression "pbVar10 + 3" identifier + number_literal) )))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = uVar9;" (assignment_expression "param_1[3] = uVar9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = uVar3;" (assignment_expression "param_1[4] = uVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" if (parenthesized_expression "(bVar1 == 0x3d)" ( (binary_expression "bVar1 == 0x3d" identifier == number_literal) )) (compound_statement "{\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" { (expression_statement "uVar9 = 0x10e;" (assignment_expression "uVar9 = 0x10e" identifier = number_literal) ;) (labeled_statement "LAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar3 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar10 + 2);" (assignment_expression "*param_3 = (int)(pbVar10 + 2)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 2)" ( (binary_expression "pbVar10 + 2" identifier + number_literal) )))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = uVar9;" (assignment_expression "param_1[3] = uVar9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = uVar3;" (assignment_expression "param_1[4] = uVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }" if (parenthesized_expression "(bVar1 == 0x3c)" ( (binary_expression "bVar1 == 0x3c" identifier == number_literal) )) (compound_statement "{\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }" { (expression_statement "uVar9 = 0x110;" (assignment_expression "uVar9 = 0x110" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (labeled_statement "LAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }" { (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar10 + 1);" (assignment_expression "*param_3 = (int)(pbVar10 + 1)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = iVar7;" (assignment_expression "param_1[3] = iVar7" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar2);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar2)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar2)" identifier + (parenthesized_expression "(1 - iVar2)" ( (binary_expression "1 - iVar2" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) }) (else_clause "else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" else (compound_statement "{\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" { (if_statement "if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" if (parenthesized_expression "(bVar5 == 0x3e)" ( (binary_expression "bVar5 == 0x3e" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" { (if_statement "if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;" if (parenthesized_expression "((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d))" ( (binary_expression "(bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3e)" ( (binary_expression "bVar1 == 0x3e" identifier == number_literal) )) && (parenthesized_expression "(uVar9 = 0x107, local_21 == 0x3d)" ( (comma_expression "uVar9 = 0x107, local_21 == 0x3d" (assignment_expression "uVar9 = 0x107" identifier = number_literal) , (binary_expression "local_21 == 0x3d" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001d8d44;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }" if (parenthesized_expression "(bVar1 == 0x3d)" ( (binary_expression "bVar1 == 0x3d" identifier == number_literal) )) (compound_statement "{\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }" { (expression_statement "uVar9 = 0x10f;" (assignment_expression "uVar9 = 0x10f" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }" if (parenthesized_expression "(bVar1 == 0x3e)" ( (binary_expression "bVar1 == 0x3e" identifier == number_literal) )) (compound_statement "{\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }" { (expression_statement "uVar9 = 0x111;" (assignment_expression "uVar9 = 0x111" identifier = number_literal) ;) (goto_statement "goto LAB_001d8be1;" goto statement_identifier ;) })) (goto_statement "goto LAB_001d89ff;" goto statement_identifier ;) })) (if_statement "if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" if (parenthesized_expression "((byte)(bVar5 - 0x21) < 0x5c)" ( (binary_expression "(byte)(bVar5 - 0x21) < 0x5c" (call_expression "(byte)(bVar5 - 0x21)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" { (expression_statement "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" * (cast_expression "(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (binary_expression "&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4" (pointer_expression "&DAT_0030bdd4" & identifier) + (binary_expression "(uint)(byte)(bVar5 - 0x21) * 4" (call_expression "(uint)(byte)(bVar5 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" if (parenthesized_expression "((byte)(bVar5 - 0x21) < 0x5e)" ( (binary_expression "(byte)(bVar5 - 0x21) < 0x5e" (call_expression "(byte)(bVar5 - 0x21)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" { (expression_statement "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" identifier = (cast_expression "(undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" * (cast_expression "(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" ( (binary_expression "(int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" * (cast_expression "(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" ( (binary_expression "&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4" (pointer_expression "&DAT_0030bf44" & identifier) + (binary_expression "(uint)(byte)(bVar5 - 0x21) * 4" (call_expression "(uint)(byte)(bVar5 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(bVar5 - 0x21)" ( (binary_expression "bVar5 - 0x21" identifier - number_literal) ))) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) }))) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (labeled_statement "LAB_001d886d:\n          param_1[1] = 0;" statement_identifier : (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) }))) (labeled_statement "LAB_001d8a78:\n      pbVar8 = pbVar10 + 1;" statement_identifier : (expression_statement "pbVar8 = pbVar10 + 1;" (assignment_expression "pbVar8 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x001d8a89;" goto statement_identifier ;) })) (expression_statement "*param_3 = (int)(pbVar10 + 1);" (assignment_expression "*param_3 = (int)(pbVar10 + 1)" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "cVar4 = FUN_001d85e0(param_2,param_3);" (assignment_expression "cVar4 = FUN_001d85e0(param_2,param_3)" identifier = (call_expression "FUN_001d85e0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }" { (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_001d8850:\n  pbVar10 = pbVar8 + 2;" statement_identifier : (expression_statement "pbVar10 = pbVar8 + 2;" (assignment_expression "pbVar10 = pbVar8 + 2" identifier = (binary_expression "pbVar8 + 2" identifier + number_literal)) ;)) (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001d8714;" goto statement_identifier ;) (labeled_statement "joined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" statement_identifier : (if_statement "if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" if (parenthesized_expression "(9 < (int)(char)bVar1 - 0x30U)" ( (binary_expression "9 < (int)(char)bVar1 - 0x30U" number_literal < (binary_expression "(int)(char)bVar1 - 0x30U" (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) - number_literal)) )) (compound_statement "{\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" { (labeled_statement "LAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);" statement_identifier : (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;)) (expression_statement "*param_1 = 5;" (assignment_expression "*param_1 = 5" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));" (assignment_expression "*param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (binary_expression "pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" identifier + (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" ( (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" ( (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) ))) )))) ;) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" identifier = (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "param_1[1] = pbVar10;" (assignment_expression "param_1[1] = pbVar10" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;" (assignment_expression "param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10" (cast_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" ( (binary_expression "pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" identifier + (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" ( (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" ( (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) ))) ))) - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "pbVar10 + (1 - iVar7)" identifier + (parenthesized_expression "(1 - iVar7)" ( (binary_expression "1 - iVar7" number_literal - identifier) )))) ;) (return_statement "return param_1;" return identifier ;) }))) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" if (parenthesized_expression "(pbVar8 == (byte *)0x0)" ( (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" { (expression_statement "pbVar8 = (byte *)0xffffffff;" (assignment_expression "pbVar8 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001d8aa6;" goto statement_identifier ;) })) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) (goto_statement "goto joined_r0x001d8a89;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (for_statement for ( ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return IDENT ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return IDENT ;) })) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) & LIT) )) == LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) & LIT) )) == LIT) ))) ))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 * FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)" (* "*") (function_declarator "FUN_001d86f0(undefined4 *param_1,int param_2,int *param_3)" (identifier "FUN_001d86f0") (parameter_list "(undefined4 *param_1,int param_2,int *param_3)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char cVar4;\n  byte bVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  byte *pbVar10;\n  byte local_21;\n  \n  do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );\nLAB_001d8850:\n  pbVar10 = pbVar8 + 2;\n  *param_3 = (int)pbVar10;\n  goto LAB_001d8714;\njoined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }\n  pbVar8 = pbVar8 + 1;\n  if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }\n  bVar1 = *pbVar8;\n  goto joined_r0x001d8a89;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte local_21;" (type_identifier "byte") (identifier "local_21") (; ";")) (do_statement "do {\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    pbVar10 = (byte *)*param_3;\nLAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }\n    if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }\n    bVar1 = pbVar10[1];\n    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }\n    if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }\n    *param_3 = (int)(pbVar10 + 1);\n    cVar4 = FUN_001d85e0(param_2,param_3);\n    if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }\n  }" ({ "{") (expression_statement "pbVar10 = (byte *)*param_3;" (assignment_expression "pbVar10 = (byte *)*param_3" (identifier "pbVar10") (= "=") (cast_expression "(byte *)*param_3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (labeled_statement "LAB_001d8714:\n    while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" (statement_identifier "LAB_001d8714") (: ":") (while_statement "while( true ) {\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }\n      if (bVar5 != 10) break;\n      pbVar10 = pbVar10 + 1;\n      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n      *(byte **)(param_2 + 0x30) = pbVar10;\n    }" ({ "{") (for_statement "for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {\n      }" (for "for") (( "(") (; ";") (parenthesized_expression "(bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20))" (( "(") (comma_expression "bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)" (assignment_expression "bVar5 = *pbVar10" (identifier "bVar5") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (, ",") (binary_expression "(bVar5 & 0xfb) == 9 || (bVar5 == 0x20)" (binary_expression "(bVar5 & 0xfb) == 9" (parenthesized_expression "(bVar5 & 0xfb)" (( "(") (binary_expression "bVar5 & 0xfb" (identifier "bVar5") (& "&") (number_literal "0xfb")) () ")")) (== "==") (number_literal "9")) (|| "||") (parenthesized_expression "(bVar5 == 0x20)" (( "(") (binary_expression "bVar5 == 0x20" (identifier "bVar5") (== "==") (number_literal "0x20")) () ")")))) () ")")) (; ";") (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n      }" ({ "{") (} "}"))) (if_statement "if (bVar5 != 10) break;" (if "if") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;" (assignment_expression "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" (* "*") (cast_expression "(int *)(param_2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" (* "*") (cast_expression "(int *)(param_2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(param_2 + 0x30) = pbVar10;" (assignment_expression "*(byte **)(param_2 + 0x30) = pbVar10" (pointer_expression "*(byte **)(param_2 + 0x30)" (* "*") (cast_expression "(byte **)(param_2 + 0x30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "pbVar10")) (; ";")) (} "}")))) (if_statement "if (bVar5 == 0) {\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *param_1 = 1;\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      *param_3 = (int)pbVar10;\n      iVar7 = *(int *)(param_2 + 0x30);\n      goto LAB_001d886d;\n    }" ({ "{") (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10"))) (; ";")) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (goto_statement "goto LAB_001d886d;" (goto "goto") (statement_identifier "LAB_001d886d") (; ";")) (} "}"))) (expression_statement "bVar1 = pbVar10[1];" (assignment_expression "bVar1 = pbVar10[1]" (identifier "bVar1") (= "=") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }" (if "if") (parenthesized_expression "((bVar5 == 0x2f) && (bVar1 == 0x2a))" (( "(") (binary_expression "(bVar5 == 0x2f) && (bVar1 == 0x2a)" (parenthesized_expression "(bVar5 == 0x2f)" (( "(") (binary_expression "bVar5 == 0x2f" (identifier "bVar5") (== "==") (number_literal "0x2f")) () ")")) (&& "&&") (parenthesized_expression "(bVar1 == 0x2a)" (( "(") (binary_expression "bVar1 == 0x2a" (identifier "bVar1") (== "==") (number_literal "0x2a")) () ")"))) () ")")) (compound_statement "{\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      pbVar8 = pbVar10 + 2;\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_3 = (int)pbVar8;\n      bVar5 = pbVar10[2];\n      do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );\n    }" ({ "{") (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "pbVar8 = pbVar10 + 2;" (assignment_expression "pbVar8 = pbVar10 + 2" (identifier "pbVar8") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*param_3 = (int)pbVar8;" (assignment_expression "*param_3 = (int)pbVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8"))) (; ";")) (expression_statement "bVar5 = pbVar10[2];" (assignment_expression "bVar5 = pbVar10[2]" (identifier "bVar5") (= "=") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (do_statement "do {\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      } while( true );" (do "do") (compound_statement "{\n        if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }\n        pbVar8 = pbVar8 + 1;\n      }" ({ "{") (if_statement "if (bVar5 == 0x2a) {\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }\n        else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" (if "if") (parenthesized_expression "(bVar5 == 0x2a)" (( "(") (binary_expression "bVar5 == 0x2a" (identifier "bVar5") (== "==") (number_literal "0x2a")) () ")")) (compound_statement "{\n          bVar5 = pbVar8[1];\n          if (bVar5 == 0x2f) goto LAB_001d8850;\n        }" ({ "{") (expression_statement "bVar5 = pbVar8[1];" (assignment_expression "bVar5 = pbVar8[1]" (identifier "bVar5") (= "=") (subscript_expression "pbVar8[1]" (identifier "pbVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar5 == 0x2f) goto LAB_001d8850;" (if "if") (parenthesized_expression "(bVar5 == 0x2f)" (( "(") (binary_expression "bVar5 == 0x2f" (identifier "bVar5") (== "==") (number_literal "0x2f")) () ")")) (goto_statement "goto LAB_001d8850;" (goto "goto") (statement_identifier "LAB_001d8850") (; ";"))) (} "}")) (else_clause "else {\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" (else "else") (compound_statement "{\n          if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }\n          if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }\n          bVar5 = pbVar8[1];\n        }" ({ "{") (if_statement "if (bVar5 == 0) {\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *param_3 = (int)pbVar8;\n            *param_1 = 0;\n            param_1[4] = uVar9;\n            param_1[1] = 0;\n            param_1[2] = 0;\n            param_1[3] = 0;\n            param_1[5] = pbVar10 + (1 - iVar7);\n            return param_1;\n          }" ({ "{") (expression_statement "*param_3 = (int)pbVar8;" (assignment_expression "*param_3 = (int)pbVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8"))) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar7)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar7)" (( "(") (binary_expression "1 - iVar7" (number_literal "1") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (bVar5 == 10) {\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }" (if "if") (parenthesized_expression "(bVar5 == 10)" (( "(") (binary_expression "bVar5 == 10" (identifier "bVar5") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;\n            *(byte **)(param_2 + 0x30) = pbVar8 + 1;\n          }" ({ "{") (expression_statement "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;" (assignment_expression "*(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" (* "*") (cast_expression "(int *)(param_2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(param_2 + 0x2c) + 1" (pointer_expression "*(int *)(param_2 + 0x2c)" (* "*") (cast_expression "(int *)(param_2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(param_2 + 0x30) = pbVar8 + 1;" (assignment_expression "*(byte **)(param_2 + 0x30) = pbVar8 + 1" (pointer_expression "*(byte **)(param_2 + 0x30)" (* "*") (cast_expression "(byte **)(param_2 + 0x30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "bVar5 = pbVar8[1];" (assignment_expression "bVar5 = pbVar8[1]" (identifier "bVar5") (= "=") (subscript_expression "pbVar8[1]" (identifier "pbVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (bVar5 != 0x23) {\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }" (if "if") (parenthesized_expression "(bVar5 != 0x23)" (( "(") (binary_expression "bVar5 != 0x23" (identifier "bVar5") (!= "!=") (number_literal "0x23")) () ")")) (compound_statement "{\n      if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }\n      if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }\n      if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }\nLAB_001d8a78:\n      pbVar8 = pbVar10 + 1;\n      goto joined_r0x001d8a89;\n    }" ({ "{") (if_statement "if ((byte)(bVar5 - 0x24) < 0x5b) {\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }" (if "if") (parenthesized_expression "((byte)(bVar5 - 0x24) < 0x5b)" (( "(") (binary_expression "(byte)(bVar5 - 0x24) < 0x5b" (call_expression "(byte)(bVar5 - 0x24)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar5 - 0x24)" (( "(") (binary_expression "bVar5 - 0x24" (identifier "bVar5") (- "-") (number_literal "0x24")) () ")"))) (< "<") (number_literal "0x5b")) () ")")) (compound_statement "{\n                    \n                    \n        puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();\n        return puVar6;\n      }" ({ "{") (expression_statement "puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)\n                 (*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))" (( "(") (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" (* "*") (cast_expression "(code *)((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4))" (( "(") (binary_expression "(int)&__DT_PLTGOT +\n                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" (* "*") (cast_expression "(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)" (( "(") (binary_expression "&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4" (pointer_expression "&DAT_0030b66c" (& "&") (identifier "DAT_0030b66c")) (+ "+") (binary_expression "(uint)(byte)(bVar5 - 0x24) * 4" (call_expression "(uint)(byte)(bVar5 - 0x24)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(bVar5 - 0x24)" (( "(") (binary_expression "bVar5 - 0x24" (identifier "bVar5") (- "-") (number_literal "0x24")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if (bVar5 == 0x22) {\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }" (if "if") (parenthesized_expression "(bVar5 == 0x22)" (( "(") (binary_expression "bVar5 == 0x22" (identifier "bVar5") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\n        *param_3 = (int)pbVar10;\n        FUN_001d8640(param_1,param_2,param_3);\n        return param_1;\n      }" ({ "{") (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10"))) (; ";")) (expression_statement "FUN_001d8640(param_1,param_2,param_3);" (call_expression "FUN_001d8640(param_1,param_2,param_3)" (identifier "FUN_001d8640") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0) {\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }\n      else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }\n      }" ({ "{") (if_statement "if (bVar5 != 0x30) {\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }" (if "if") (parenthesized_expression "(bVar5 != 0x30)" (( "(") (binary_expression "bVar5 != 0x30" (identifier "bVar5") (!= "!=") (number_literal "0x30")) () ")")) (compound_statement "{\n          local_21 = 0;\n          goto LAB_001d89ae;\n        }" ({ "{") (expression_statement "local_21 = 0;" (assignment_expression "local_21 = 0" (identifier "local_21") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_001d89ae;" (goto "goto") (statement_identifier "LAB_001d89ae") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" (else "else") (compound_statement "{\n        local_21 = pbVar10[2];\n        if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }\nLAB_001d89ae:\n        iVar7 = (int)(char)bVar5;\n        if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }\n      }" ({ "{") (expression_statement "local_21 = pbVar10[2];" (assignment_expression "local_21 = pbVar10[2]" (identifier "local_21") (= "=") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (bVar5 == 0x30) {\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }" (if "if") (parenthesized_expression "(bVar5 == 0x30)" (( "(") (binary_expression "bVar5 == 0x30" (identifier "bVar5") (== "==") (number_literal "0x30")) () ")")) (compound_statement "{\n          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;\n          if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }\n        }" ({ "{") (if_statement "if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;" (if "if") (parenthesized_expression "((bVar1 & 0xdf) != 0x58)" (( "(") (binary_expression "(bVar1 & 0xdf) != 0x58" (parenthesized_expression "(bVar1 & 0xdf)" (( "(") (binary_expression "bVar1 & 0xdf" (identifier "bVar1") (& "&") (number_literal "0xdf")) () ")")) (!= "!=") (number_literal "0x58")) () ")")) (goto_statement "goto LAB_001d8a78;" (goto "goto") (statement_identifier "LAB_001d8a78") (; ";"))) (if_statement "if ((byte)(local_21 - 0x30) < 0x37) {\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }" (if "if") (parenthesized_expression "((byte)(local_21 - 0x30) < 0x37)" (( "(") (binary_expression "(byte)(local_21 - 0x30) < 0x37" (call_expression "(byte)(local_21 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_21 - 0x30)" (( "(") (binary_expression "local_21 - 0x30" (identifier "local_21") (- "-") (number_literal "0x30")) () ")"))) (< "<") (number_literal "0x37")) () ")")) (compound_statement "{\n                    \n                    \n            puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();\n            return puVar6;\n          }" ({ "{") (expression_statement "puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)\n                     (*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))" (( "(") (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" (* "*") (cast_expression "(code *)((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4))" (( "(") (binary_expression "(int)&__DT_PLTGOT +\n                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (* "*") (cast_expression "(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)" (( "(") (binary_expression "&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4" (pointer_expression "&DAT_0030bc1c" (& "&") (identifier "DAT_0030bc1c")) (+ "+") (binary_expression "(uint)(byte)(local_21 - 0x30) * 4" (call_expression "(uint)(byte)(local_21 - 0x30)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(local_21 - 0x30)" (( "(") (binary_expression "local_21 - 0x30" (identifier "local_21") (- "-") (number_literal "0x30")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001d89ae:\n        iVar7 = (int)(char)bVar5;" (statement_identifier "LAB_001d89ae") (: ":") (expression_statement "iVar7 = (int)(char)bVar5;" (assignment_expression "iVar7 = (int)(char)bVar5" (identifier "iVar7") (= "=") (cast_expression "(int)(char)bVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar5")))) (; ";"))) (if_statement "if (9 < iVar7 - 0x30U) {\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }" (if "if") (parenthesized_expression "(9 < iVar7 - 0x30U)" (( "(") (binary_expression "9 < iVar7 - 0x30U" (number_literal "9") (< "<") (binary_expression "iVar7 - 0x30U" (identifier "iVar7") (- "-") (number_literal "0x30U"))) () ")")) (compound_statement "{\n          if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }\n          iVar7 = *(int *)(param_2 + 0x30);\n          uVar9 = *(undefined4 *)(param_2 + 0x2c);\n          *param_1 = 0;\nLAB_001d886d:\n          param_1[1] = 0;\n          param_1[2] = 0;\n          param_1[3] = 0;\n          param_1[4] = uVar9;\n          param_1[5] = pbVar10 + (1 - iVar7);\n          return param_1;\n        }" ({ "{") (if_statement "if (bVar5 == 0x3c) {\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }\n          else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" (if "if") (parenthesized_expression "(bVar5 == 0x3c)" (( "(") (binary_expression "bVar5 == 0x3c" (identifier "bVar5") (== "==") (number_literal "0x3c")) () ")")) (compound_statement "{\n            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }\n            if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }\nLAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);\n            if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }\n          }" ({ "{") (if_statement "if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" (if "if") (parenthesized_expression "((bVar1 == 0x3c) && (local_21 == 0x3d))" (( "(") (binary_expression "(bVar1 == 0x3c) && (local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3c)" (( "(") (binary_expression "bVar1 == 0x3c" (identifier "bVar1") (== "==") (number_literal "0x3c")) () ")")) (&& "&&") (parenthesized_expression "(local_21 == 0x3d)" (( "(") (binary_expression "local_21 == 0x3d" (identifier "local_21") (== "==") (number_literal "0x3d")) () ")"))) () ")")) (compound_statement "{\n              uVar9 = 0x106;\nLAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 3);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" ({ "{") (expression_statement "uVar9 = 0x106;" (assignment_expression "uVar9 = 0x106" (identifier "uVar9") (= "=") (number_literal "0x106")) (; ";")) (labeled_statement "LAB_001d8d44:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);" (statement_identifier "LAB_001d8d44") (: ":") (expression_statement "uVar3 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar3 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";"))) (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*param_3 = (int)(pbVar10 + 3);" (assignment_expression "*param_3 = (int)(pbVar10 + 3)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)(pbVar10 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar10 + 3)" (( "(") (binary_expression "pbVar10 + 3" (identifier "pbVar10") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = uVar9;" (assignment_expression "param_1[3] = uVar9" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[4] = uVar3;" (assignment_expression "param_1[4] = uVar3" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar7)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar7)" (( "(") (binary_expression "1 - iVar7" (number_literal "1") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x3d) {\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" (if "if") (parenthesized_expression "(bVar1 == 0x3d)" (( "(") (binary_expression "bVar1 == 0x3d" (identifier "bVar1") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n              uVar9 = 0x10e;\nLAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 2);\n              iVar7 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = uVar9;\n              param_1[4] = uVar3;\n              param_1[5] = pbVar10 + (1 - iVar7);\n              return param_1;\n            }" ({ "{") (expression_statement "uVar9 = 0x10e;" (assignment_expression "uVar9 = 0x10e" (identifier "uVar9") (= "=") (number_literal "0x10e")) (; ";")) (labeled_statement "LAB_001d8be1:\n              uVar3 = *(undefined4 *)(param_2 + 0x2c);" (statement_identifier "LAB_001d8be1") (: ":") (expression_statement "uVar3 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar3 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";"))) (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*param_3 = (int)(pbVar10 + 2);" (assignment_expression "*param_3 = (int)(pbVar10 + 2)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)(pbVar10 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar10 + 2)" (( "(") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = uVar9;" (assignment_expression "param_1[3] = uVar9" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[4] = uVar3;" (assignment_expression "param_1[4] = uVar3" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar7)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar7)" (( "(") (binary_expression "1 - iVar7" (number_literal "1") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x3c) {\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }" (if "if") (parenthesized_expression "(bVar1 == 0x3c)" (( "(") (binary_expression "bVar1 == 0x3c" (identifier "bVar1") (== "==") (number_literal "0x3c")) () ")")) (compound_statement "{\n              uVar9 = 0x110;\n              goto LAB_001d8be1;\n            }" ({ "{") (expression_statement "uVar9 = 0x110;" (assignment_expression "uVar9 = 0x110" (identifier "uVar9") (= "=") (number_literal "0x110")) (; ";")) (goto_statement "goto LAB_001d8be1;" (goto "goto") (statement_identifier "LAB_001d8be1") (; ";")) (} "}"))) (labeled_statement "LAB_001d89ff:\n            uVar9 = *(undefined4 *)(param_2 + 0x2c);" (statement_identifier "LAB_001d89ff") (: ":") (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar7 != 0) {\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *param_1 = 4;\n              *param_3 = (int)(pbVar10 + 1);\n              iVar2 = *(int *)(param_2 + 0x30);\n              param_1[1] = 0;\n              param_1[2] = 0;\n              param_1[3] = iVar7;\n              param_1[4] = uVar9;\n              param_1[5] = pbVar10 + (1 - iVar2);\n              return param_1;\n            }" ({ "{") (expression_statement "*param_1 = 4;" (assignment_expression "*param_1 = 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*param_3 = (int)(pbVar10 + 1);" (assignment_expression "*param_3 = (int)(pbVar10 + 1)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)(pbVar10 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar10 + 1)" (( "(") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_2 + 0x30)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = iVar7;" (assignment_expression "param_1[3] = iVar7" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar2);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar2)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar2)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar2)" (( "(") (binary_expression "1 - iVar2" (number_literal "1") (- "-") (identifier "iVar2")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" (else "else") (compound_statement "{\n            if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n            if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }\n          }" ({ "{") (if_statement "if (bVar5 == 0x3e) {\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" (if "if") (parenthesized_expression "(bVar5 == 0x3e)" (( "(") (binary_expression "bVar5 == 0x3e" (identifier "bVar5") (== "==") (number_literal "0x3e")) () ")")) (compound_statement "{\n              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;\n              if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }\n              if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }\n              goto LAB_001d89ff;\n            }" ({ "{") (if_statement "if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;" (if "if") (parenthesized_expression "((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d))" (( "(") (binary_expression "(bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)" (parenthesized_expression "(bVar1 == 0x3e)" (( "(") (binary_expression "bVar1 == 0x3e" (identifier "bVar1") (== "==") (number_literal "0x3e")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = 0x107, local_21 == 0x3d)" (( "(") (comma_expression "uVar9 = 0x107, local_21 == 0x3d" (assignment_expression "uVar9 = 0x107" (identifier "uVar9") (= "=") (number_literal "0x107")) (, ",") (binary_expression "local_21 == 0x3d" (identifier "local_21") (== "==") (number_literal "0x3d"))) () ")"))) () ")")) (goto_statement "goto LAB_001d8d44;" (goto "goto") (statement_identifier "LAB_001d8d44") (; ";"))) (if_statement "if (bVar1 == 0x3d) {\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }" (if "if") (parenthesized_expression "(bVar1 == 0x3d)" (( "(") (binary_expression "bVar1 == 0x3d" (identifier "bVar1") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n                uVar9 = 0x10f;\n                goto LAB_001d8be1;\n              }" ({ "{") (expression_statement "uVar9 = 0x10f;" (assignment_expression "uVar9 = 0x10f" (identifier "uVar9") (= "=") (number_literal "0x10f")) (; ";")) (goto_statement "goto LAB_001d8be1;" (goto "goto") (statement_identifier "LAB_001d8be1") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x3e) {\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }" (if "if") (parenthesized_expression "(bVar1 == 0x3e)" (( "(") (binary_expression "bVar1 == 0x3e" (identifier "bVar1") (== "==") (number_literal "0x3e")) () ")")) (compound_statement "{\n                uVar9 = 0x111;\n                goto LAB_001d8be1;\n              }" ({ "{") (expression_statement "uVar9 = 0x111;" (assignment_expression "uVar9 = 0x111" (identifier "uVar9") (= "=") (number_literal "0x111")) (; ";")) (goto_statement "goto LAB_001d8be1;" (goto "goto") (statement_identifier "LAB_001d8be1") (; ";")) (} "}"))) (goto_statement "goto LAB_001d89ff;" (goto "goto") (statement_identifier "LAB_001d89ff") (; ";")) (} "}"))) (if_statement "if ((byte)(bVar5 - 0x21) < 0x5c) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" (if "if") (parenthesized_expression "((byte)(bVar5 - 0x21) < 0x5c)" (( "(") (binary_expression "(byte)(bVar5 - 0x21) < 0x5c" (call_expression "(byte)(bVar5 - 0x21)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar5 - 0x21)" (( "(") (binary_expression "bVar5 - 0x21" (identifier "bVar5") (- "-") (number_literal "0x21")) () ")"))) (< "<") (number_literal "0x5c")) () ")")) (compound_statement "{\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" ({ "{") (expression_statement "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))" (( "(") (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" (* "*") (cast_expression "(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4))" (( "(") (binary_expression "(int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" (* "*") (cast_expression "(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)" (( "(") (binary_expression "&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4" (pointer_expression "&DAT_0030bdd4" (& "&") (identifier "DAT_0030bdd4")) (+ "+") (binary_expression "(uint)(byte)(bVar5 - 0x21) * 4" (call_expression "(uint)(byte)(bVar5 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(bVar5 - 0x21)" (( "(") (binary_expression "bVar5 - 0x21" (identifier "bVar5") (- "-") (number_literal "0x21")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if ((byte)(bVar5 - 0x21) < 0x5e) {\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" (if "if") (parenthesized_expression "((byte)(bVar5 - 0x21) < 0x5e)" (( "(") (binary_expression "(byte)(bVar5 - 0x21) < 0x5e" (call_expression "(byte)(bVar5 - 0x21)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar5 - 0x21)" (( "(") (binary_expression "bVar5 - 0x21" (identifier "bVar5") (- "-") (number_literal "0x21")) () ")"))) (< "<") (number_literal "0x5e")) () ")")) (compound_statement "{\n                    \n                    \n              puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();\n              return puVar6;\n            }" ({ "{") (expression_statement "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();" (assignment_expression "puVar6 = (undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)\n                       (*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))" (( "(") (pointer_expression "*(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" (* "*") (cast_expression "(code *)((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4))" (( "(") (binary_expression "(int)&__DT_PLTGOT +\n                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" (* "*") (cast_expression "(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)" (( "(") (binary_expression "&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4" (pointer_expression "&DAT_0030bf44" (& "&") (identifier "DAT_0030bf44")) (+ "+") (binary_expression "(uint)(byte)(bVar5 - 0x21) * 4" (call_expression "(uint)(byte)(bVar5 - 0x21)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(bVar5 - 0x21)" (( "(") (binary_expression "bVar5 - 0x21" (identifier "bVar5") (- "-") (number_literal "0x21")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001d886d:\n          param_1[1] = 0;" (statement_identifier "LAB_001d886d") (: ":") (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar7)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar7)" (( "(") (binary_expression "1 - iVar7" (number_literal "1") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_001d8a78:\n      pbVar8 = pbVar10 + 1;" (statement_identifier "LAB_001d8a78") (: ":") (expression_statement "pbVar8 = pbVar10 + 1;" (assignment_expression "pbVar8 = pbVar10 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";"))) (goto_statement "goto joined_r0x001d8a89;" (goto "goto") (statement_identifier "joined_r0x001d8a89") (; ";")) (} "}"))) (expression_statement "*param_3 = (int)(pbVar10 + 1);" (assignment_expression "*param_3 = (int)(pbVar10 + 1)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)(pbVar10 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar10 + 1)" (( "(") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "cVar4 = FUN_001d85e0(param_2,param_3);" (assignment_expression "cVar4 = FUN_001d85e0(param_2,param_3)" (identifier "cVar4") (= "=") (call_expression "FUN_001d85e0(param_2,param_3)" (identifier "FUN_001d85e0") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar9 = *(undefined4 *)(param_2 + 0x2c);\n      iVar7 = *(int *)(param_2 + 0x30);\n      *param_1 = 1;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      param_1[4] = uVar9;\n      param_1[5] = pbVar10 + (1 - iVar7);\n      return param_1;\n    }" ({ "{") (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar7)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar7)" (( "(") (binary_expression "1 - iVar7" (number_literal "1") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "LAB_001d8850:\n  pbVar10 = pbVar8 + 2;" (statement_identifier "LAB_001d8850") (: ":") (expression_statement "pbVar10 = pbVar8 + 2;" (assignment_expression "pbVar10 = pbVar8 + 2" (identifier "pbVar10") (= "=") (binary_expression "pbVar8 + 2" (identifier "pbVar8") (+ "+") (number_literal "2"))) (; ";"))) (expression_statement "*param_3 = (int)pbVar10;" (assignment_expression "*param_3 = (int)pbVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10"))) (; ";")) (goto_statement "goto LAB_001d8714;" (goto "goto") (statement_identifier "LAB_001d8714") (; ";")) (labeled_statement "joined_r0x001d8a89:\n  if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" (statement_identifier "joined_r0x001d8a89") (: ":") (if_statement "if (9 < (int)(char)bVar1 - 0x30U) {\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" (if "if") (parenthesized_expression "(9 < (int)(char)bVar1 - 0x30U)" (( "(") (binary_expression "9 < (int)(char)bVar1 - 0x30U" (number_literal "9") (< "<") (binary_expression "(int)(char)bVar1 - 0x30U" (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) (- "-") (number_literal "0x30U"))) () ")")) (compound_statement "{\nLAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);\n    *param_1 = 5;\n    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));\n    iVar7 = *(int *)(param_2 + 0x30);\n    param_1[1] = pbVar10;\n    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;\n    param_1[3] = 0;\n    param_1[4] = uVar9;\n    param_1[5] = pbVar10 + (1 - iVar7);\n    return param_1;\n  }" ({ "{") (labeled_statement "LAB_001d8aa6:\n    uVar9 = *(undefined4 *)(param_2 + 0x2c);" (statement_identifier "LAB_001d8aa6") (: ":") (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";"))) (expression_statement "*param_1 = 5;" (assignment_expression "*param_1 = 5" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "5")) (; ";")) (expression_statement "*param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));" (assignment_expression "*param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (( "(") (binary_expression "pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" (identifier "pbVar8") (+ "+") (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" (( "(") (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" (( "(") (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" (( "(") (binary_expression "bVar1 & 0xdf" (identifier "bVar1") (& "&") (number_literal "0xdf")) () ")")) (+ "+") (number_literal "0xb5")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)(param_2 + 0x30);" (assignment_expression "iVar7 = *(int *)(param_2 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "param_1[1] = pbVar10;" (assignment_expression "param_1[1] = pbVar10" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;" (assignment_expression "param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10" (cast_expression "(int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0))" (( "(") (binary_expression "pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" (identifier "pbVar8") (+ "+") (parenthesized_expression "(((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)" (( "(") (binary_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xdf) + 0xb5 & 0xfd)" (( "(") (binary_expression "(bVar1 & 0xdf) + 0xb5 & 0xfd" (binary_expression "(bVar1 & 0xdf) + 0xb5" (parenthesized_expression "(bVar1 & 0xdf)" (( "(") (binary_expression "bVar1 & 0xdf" (identifier "bVar1") (& "&") (number_literal "0xdf")) () ")")) (+ "+") (number_literal "0xb5")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")"))) (- "-") (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10")))) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = uVar9;" (assignment_expression "param_1[4] = uVar9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "param_1[5] = pbVar10 + (1 - iVar7);" (assignment_expression "param_1[5] = pbVar10 + (1 - iVar7)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "pbVar10 + (1 - iVar7)" (identifier "pbVar10") (+ "+") (parenthesized_expression "(1 - iVar7)" (( "(") (binary_expression "1 - iVar7" (number_literal "1") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar8 == (byte *)0x0) {\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" (if "if") (parenthesized_expression "(pbVar8 == (byte *)0x0)" (( "(") (binary_expression "pbVar8 == (byte *)0x0" (identifier "pbVar8") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pbVar8 = (byte *)0xffffffff;\n    goto LAB_001d8aa6;\n  }" ({ "{") (expression_statement "pbVar8 = (byte *)0xffffffff;" (assignment_expression "pbVar8 = (byte *)0xffffffff" (identifier "pbVar8") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_001d8aa6;" (goto "goto") (statement_identifier "LAB_001d8aa6") (; ";")) (} "}"))) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" (identifier "bVar1") (= "=") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) (; ";")) (goto_statement "goto joined_r0x001d8a89;" (goto "goto") (statement_identifier "joined_r0x001d8a89") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: Token get_token(Lex * this, char * * pp) */

type_2 * __thiscall gold::Lex::get_token(type_2 *__return_storage_ptr__,Lex *this,char **pp)

{
  type_1 var_3;
  char *pcVar2;
  bool bVar3;
  type_1 var_1;
  type_2 *pTVar5;
  int var_7;
  type_1 *var_4;
  int iVar8;
  type_1 *var_2;
  type_1 var_6;
  
  do {
    var_2 = (type_1 *)*pp;
LAB_001d8714:
    while( true ) {
      for (; (var_1 = *var_2, (var_1 & 0xfb) == 9 || (var_1 == 0x20)); var_2 = var_2 + 1) {
      }
      if (var_1 != 10) break;
      var_2 = var_2 + 1;
      this->lineno_ = this->lineno_ + 1;
      this->linestart_ = (char *)var_2;
    }
    if (var_1 == 0) {
      __return_storage_ptr__->classification_ = TOKEN_EOF;
      var_7 = this->lineno_;
      *pp = (char *)var_2;
      pcVar2 = this->linestart_;
      goto LAB_001d886d;
    }
    var_3 = var_2[1];
    if ((var_1 == 0x2f) && (var_3 == 0x2a)) {
      var_7 = this->lineno_;
      var_4 = var_2 + 2;
      pcVar2 = this->linestart_;
      *pp = (char *)var_4;
      var_1 = var_2[2];
      do {
        if (var_1 == 0x2a) {
          var_1 = var_4[1];
          if (var_1 == 0x2f) goto LAB_001d8850;
        }
        else {
          if (var_1 == 0) {
            *pp = (char *)var_4;
            __return_storage_ptr__->classification_ = TOKEN_INVALID;
            __return_storage_ptr__->lineno_ = var_7;
            __return_storage_ptr__->value_ = (char *)0x0;
            __return_storage_ptr__->value_length_ = 0;
            __return_storage_ptr__->opcode_ = 0;
            __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
            return __return_storage_ptr__;
          }
          if (var_1 == 10) {
            this->lineno_ = this->lineno_ + 1;
            this->linestart_ = (char *)(var_4 + 1);
          }
          var_1 = var_4[1];
        }
        var_4 = var_4 + 1;
      } while( true );
    }
    if (var_1 != 0x23) {
      if ((type_1)(var_1 - 0x24) < 0x5b) {
                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        pTVar5 = (type_2 *)(*(type_3 *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                    *(int *)(&DAT_0030b66c + (uint)(type_1)(var_1 - 0x24) * 4)))();
        return pTVar5;
      }
      if (var_1 == 0x22) {
        *pp = (char *)var_2;
        var_5(this,pp);
        return __return_storage_ptr__;
      }
      if (var_3 == 0) {
        if (var_1 != 0x30) {
          var_6 = 0;
          goto _L132;
        }
      }
      else {
        var_6 = var_2[2];
        if (var_1 == 0x30) {
          if ((var_3 & 0xdf) != 0x58) goto LAB_001d8a78;
          if ((type_1)(var_6 - 0x30) < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            pTVar5 = (type_2 *)(*(type_3 *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                        *(int *)(&DAT_0030bc1c + (uint)(type_1)(var_6 - 0x30) * 4))
                              )();
            return pTVar5;
          }
        }
_L132:
        var_7 = (int)(char)var_1;
        if (9 < var_7 - 0x30U) {
          if (var_1 == 0x3c) {
            if ((var_3 == 0x3c) && (var_6 == 0x3d)) {
              iVar8 = 0x106;
LAB_001d8d44:
              var_7 = this->lineno_;
              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;
              *pp = (char *)(var_2 + 3);
              pcVar2 = this->linestart_;
              __return_storage_ptr__->value_ = (char *)0x0;
              __return_storage_ptr__->value_length_ = 0;
              __return_storage_ptr__->opcode_ = iVar8;
              __return_storage_ptr__->lineno_ = var_7;
              __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
              return __return_storage_ptr__;
            }
            if (var_3 == 0x3d) {
              var_7 = 0x10e;
LAB_001d8be1:
              iVar8 = this->lineno_;
              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;
              *pp = (char *)(var_2 + 2);
              pcVar2 = this->linestart_;
              __return_storage_ptr__->value_ = (char *)0x0;
              __return_storage_ptr__->value_length_ = 0;
              __return_storage_ptr__->opcode_ = var_7;
              __return_storage_ptr__->lineno_ = iVar8;
              __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
              return __return_storage_ptr__;
            }
            if (var_3 == 0x3c) {
              var_7 = 0x110;
              goto LAB_001d8be1;
            }
LAB_001d89ff:
            iVar8 = this->lineno_;
            if (var_7 != 0) {
              __return_storage_ptr__->classification_ = TOKEN_OPERATOR;
              *pp = (char *)(var_2 + 1);
              pcVar2 = this->linestart_;
              __return_storage_ptr__->value_ = (char *)0x0;
              __return_storage_ptr__->value_length_ = 0;
              __return_storage_ptr__->opcode_ = var_7;
              __return_storage_ptr__->lineno_ = iVar8;
              __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
              return __return_storage_ptr__;
            }
          }
          else {
            if (var_1 == 0x3e) {
              if ((var_3 == 0x3e) && (iVar8 = 0x107, var_6 == 0x3d)) goto LAB_001d8d44;
              if (var_3 == 0x3d) {
                var_7 = 0x10f;
                goto LAB_001d8be1;
              }
              if (var_3 == 0x3e) {
                var_7 = 0x111;
                goto LAB_001d8be1;
              }
              goto LAB_001d89ff;
            }
            if ((type_1)(var_1 - 0x21) < 0x5c) {
                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pTVar5 = (type_2 *)(*(type_3 *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                          *(int *)(&DAT_0030bdd4 + (uint)(type_1)(var_1 - 0x21) * 4)))
                                          ();
              return pTVar5;
            }
            if ((type_1)(var_1 - 0x21) < 0x5e) {
                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pTVar5 = (type_2 *)(*(type_3 *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                          *(int *)(&DAT_0030bf44 + (uint)(type_1)(var_1 - 0x21) * 4)))
                                          ();
              return pTVar5;
            }
          }
          pcVar2 = this->linestart_;
          var_7 = this->lineno_;
          __return_storage_ptr__->classification_ = TOKEN_INVALID;
LAB_001d886d:
          __return_storage_ptr__->value_ = (char *)0x0;
          __return_storage_ptr__->value_length_ = 0;
          __return_storage_ptr__->opcode_ = 0;
          __return_storage_ptr__->lineno_ = var_7;
          __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
          return __return_storage_ptr__;
        }
      }
LAB_001d8a78:
      var_4 = var_2 + 1;
      goto joined_r0x001d8a89;
    }
    *pp = (char *)(var_2 + 1);
    bVar3 = var_8(this,pp);
    if (!bVar3) {
      var_7 = this->lineno_;
      pcVar2 = this->linestart_;
      __return_storage_ptr__->classification_ = TOKEN_EOF;
      __return_storage_ptr__->value_ = (char *)0x0;
      __return_storage_ptr__->value_length_ = 0;
      __return_storage_ptr__->opcode_ = 0;
      __return_storage_ptr__->lineno_ = var_7;
      __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
      return __return_storage_ptr__;
    }
  } while( true );
LAB_001d8850:
  var_2 = var_4 + 2;
  *pp = (char *)var_2;
  goto LAB_001d8714;
joined_r0x001d8a89:
  if (9 < (int)(char)var_3 - 0x30U) {
LAB_001d8aa6:
    var_7 = this->lineno_;
    __return_storage_ptr__->classification_ = TOKEN_INTEGER;
    *pp = (char *)(var_4 + (((var_3 & 0xdf) + 0xb5 & 0xfd) == 0));
    pcVar2 = this->linestart_;
    __return_storage_ptr__->value_ = (char *)var_2;
    __return_storage_ptr__->value_length_ =
         (int)(var_4 + (((var_3 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)var_2;
    __return_storage_ptr__->opcode_ = 0;
    __return_storage_ptr__->lineno_ = var_7;
    __return_storage_ptr__->charpos_ = (int)(var_2 + (1 - (int)pcVar2));
    return __return_storage_ptr__;
  }
  var_4 = var_4 + 1;
  if (var_4 == (type_1 *)0x0) {
    var_4 = (type_1 *)0xffffffff;
    goto LAB_001d8aa6;
  }
  var_3 = *var_4;
  goto joined_r0x001d8a89;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

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

{
  byte bVar1;
  int iVar2;
  undefined4 uVar3;
  char cVar4;
  byte bVar5;
  undefined4 *puVar6;
  int iVar7;
  byte *pbVar8;
  undefined4 uVar9;
  byte *pbVar10;
  byte local_21;
  
  do {
    pbVar10 = (byte *)*param_3;
LAB_001d8714:
    while( true ) {
      for (; (bVar5 = *pbVar10, (bVar5 & 0xfb) == 9 || (bVar5 == 0x20)); pbVar10 = pbVar10 + 1) {
      }
      if (bVar5 != 10) break;
      pbVar10 = pbVar10 + 1;
      *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;
      *(byte **)(param_2 + 0x30) = pbVar10;
    }
    if (bVar5 == 0) {
      *param_1 = 1;
      uVar9 = *(undefined4 *)(param_2 + 0x2c);
      *param_3 = (int)pbVar10;
      iVar7 = *(int *)(param_2 + 0x30);
      goto LAB_001d886d;
    }
    bVar1 = pbVar10[1];
    if ((bVar5 == 0x2f) && (bVar1 == 0x2a)) {
      uVar9 = *(undefined4 *)(param_2 + 0x2c);
      pbVar8 = pbVar10 + 2;
      iVar7 = *(int *)(param_2 + 0x30);
      *param_3 = (int)pbVar8;
      bVar5 = pbVar10[2];
      do {
        if (bVar5 == 0x2a) {
          bVar5 = pbVar8[1];
          if (bVar5 == 0x2f) goto LAB_001d8850;
        }
        else {
          if (bVar5 == 0) {
            *param_3 = (int)pbVar8;
            *param_1 = 0;
            param_1[4] = uVar9;
            param_1[1] = 0;
            param_1[2] = 0;
            param_1[3] = 0;
            param_1[5] = pbVar10 + (1 - iVar7);
            return param_1;
          }
          if (bVar5 == 10) {
            *(int *)(param_2 + 0x2c) = *(int *)(param_2 + 0x2c) + 1;
            *(byte **)(param_2 + 0x30) = pbVar8 + 1;
          }
          bVar5 = pbVar8[1];
        }
        pbVar8 = pbVar8 + 1;
      } while( true );
    }
    if (bVar5 != 0x23) {
      if ((byte)(bVar5 - 0x24) < 0x5b) {
                    /* WARNING: Could not recover jumptable at 0x001d88b1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        puVar6 = (undefined4 *)
                 (*(code *)((int)&__DT_PLTGOT +
                           *(int *)(&DAT_0030b66c + (uint)(byte)(bVar5 - 0x24) * 4)))();
        return puVar6;
      }
      if (bVar5 == 0x22) {
        *param_3 = (int)pbVar10;
        FUN_001d8640(param_1,param_2,param_3);
        return param_1;
      }
      if (bVar1 == 0) {
        if (bVar5 != 0x30) {
          local_21 = 0;
          goto LAB_001d89ae;
        }
      }
      else {
        local_21 = pbVar10[2];
        if (bVar5 == 0x30) {
          if ((bVar1 & 0xdf) != 0x58) goto LAB_001d8a78;
          if ((byte)(local_21 - 0x30) < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x001d8b12. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            puVar6 = (undefined4 *)
                     (*(code *)((int)&__DT_PLTGOT +
                               *(int *)(&DAT_0030bc1c + (uint)(byte)(local_21 - 0x30) * 4)))();
            return puVar6;
          }
        }
LAB_001d89ae:
        iVar7 = (int)(char)bVar5;
        if (9 < iVar7 - 0x30U) {
          if (bVar5 == 0x3c) {
            if ((bVar1 == 0x3c) && (local_21 == 0x3d)) {
              uVar9 = 0x106;
LAB_001d8d44:
              uVar3 = *(undefined4 *)(param_2 + 0x2c);
              *param_1 = 4;
              *param_3 = (int)(pbVar10 + 3);
              iVar7 = *(int *)(param_2 + 0x30);
              param_1[1] = 0;
              param_1[2] = 0;
              param_1[3] = uVar9;
              param_1[4] = uVar3;
              param_1[5] = pbVar10 + (1 - iVar7);
              return param_1;
            }
            if (bVar1 == 0x3d) {
              uVar9 = 0x10e;
LAB_001d8be1:
              uVar3 = *(undefined4 *)(param_2 + 0x2c);
              *param_1 = 4;
              *param_3 = (int)(pbVar10 + 2);
              iVar7 = *(int *)(param_2 + 0x30);
              param_1[1] = 0;
              param_1[2] = 0;
              param_1[3] = uVar9;
              param_1[4] = uVar3;
              param_1[5] = pbVar10 + (1 - iVar7);
              return param_1;
            }
            if (bVar1 == 0x3c) {
              uVar9 = 0x110;
              goto LAB_001d8be1;
            }
LAB_001d89ff:
            uVar9 = *(undefined4 *)(param_2 + 0x2c);
            if (iVar7 != 0) {
              *param_1 = 4;
              *param_3 = (int)(pbVar10 + 1);
              iVar2 = *(int *)(param_2 + 0x30);
              param_1[1] = 0;
              param_1[2] = 0;
              param_1[3] = iVar7;
              param_1[4] = uVar9;
              param_1[5] = pbVar10 + (1 - iVar2);
              return param_1;
            }
          }
          else {
            if (bVar5 == 0x3e) {
              if ((bVar1 == 0x3e) && (uVar9 = 0x107, local_21 == 0x3d)) goto LAB_001d8d44;
              if (bVar1 == 0x3d) {
                uVar9 = 0x10f;
                goto LAB_001d8be1;
              }
              if (bVar1 == 0x3e) {
                uVar9 = 0x111;
                goto LAB_001d8be1;
              }
              goto LAB_001d89ff;
            }
            if ((byte)(bVar5 - 0x21) < 0x5c) {
                    /* WARNING: Could not recover jumptable at 0x001d8bc5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              puVar6 = (undefined4 *)
                       (*(code *)((int)&__DT_PLTGOT +
                                 *(int *)(&DAT_0030bdd4 + (uint)(byte)(bVar5 - 0x21) * 4)))();
              return puVar6;
            }
            if ((byte)(bVar5 - 0x21) < 0x5e) {
                    /* WARNING: Could not recover jumptable at 0x001d8d31. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              puVar6 = (undefined4 *)
                       (*(code *)((int)&__DT_PLTGOT +
                                 *(int *)(&DAT_0030bf44 + (uint)(byte)(bVar5 - 0x21) * 4)))();
              return puVar6;
            }
          }
          iVar7 = *(int *)(param_2 + 0x30);
          uVar9 = *(undefined4 *)(param_2 + 0x2c);
          *param_1 = 0;
LAB_001d886d:
          param_1[1] = 0;
          param_1[2] = 0;
          param_1[3] = 0;
          param_1[4] = uVar9;
          param_1[5] = pbVar10 + (1 - iVar7);
          return param_1;
        }
      }
LAB_001d8a78:
      pbVar8 = pbVar10 + 1;
      goto joined_r0x001d8a89;
    }
    *param_3 = (int)(pbVar10 + 1);
    cVar4 = FUN_001d85e0(param_2,param_3);
    if (cVar4 == '\0') {
      uVar9 = *(undefined4 *)(param_2 + 0x2c);
      iVar7 = *(int *)(param_2 + 0x30);
      *param_1 = 1;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0;
      param_1[4] = uVar9;
      param_1[5] = pbVar10 + (1 - iVar7);
      return param_1;
    }
  } while( true );
LAB_001d8850:
  pbVar10 = pbVar8 + 2;
  *param_3 = (int)pbVar10;
  goto LAB_001d8714;
joined_r0x001d8a89:
  if (9 < (int)(char)bVar1 - 0x30U) {
LAB_001d8aa6:
    uVar9 = *(undefined4 *)(param_2 + 0x2c);
    *param_1 = 5;
    *param_3 = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0));
    iVar7 = *(int *)(param_2 + 0x30);
    param_1[1] = pbVar10;
    param_1[2] = (int)(pbVar8 + (((bVar1 & 0xdf) + 0xb5 & 0xfd) == 0)) - (int)pbVar10;
    param_1[3] = 0;
    param_1[4] = uVar9;
    param_1[5] = pbVar10 + (1 - iVar7);
    return param_1;
  }
  pbVar8 = pbVar8 + 1;
  if (pbVar8 == (byte *)0x0) {
    pbVar8 = (byte *)0xffffffff;
    goto LAB_001d8aa6;
  }
  bVar1 = *pbVar8;
  goto joined_r0x001d8a89;
}

