
void ichardef(char *s)

{
  char cVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  int iVar6;
  char *fmt;
  char *fmt_00;
  undefined1 uVar7;
  undefined1 *puVar8;
  
  uVar7 = 0;
  iVar6 = 0;
  puVar3 = PTR_CHAR_ARRAY_0004ebf8 + -0x594;
  puVar8 = PTR_CHAR_ARRAY_0004ebf8 + -0x494;
  fmt = PTR_LAB_0004ec08 + 0x6c08;
  fmt_00 = PTR_LAB_0004ec08 + 0x6bf8;
LAB_000192b0:
  cVar1 = *s;
  do {
    iVar2 = (int)cVar1;
    if (iVar2 == 0) {
      if (puVar3 < puVar8) {
        do {
          puVar5 = puVar3 + 1;
          *puVar3 = uVar7;
          puVar3 = puVar5;
        } while (puVar5 != puVar8);
      }
      return;
    }
    s = s + 1;
    puVar5 = puVar3;
    if (iVar2 < 0x3a) {
      if (0x2f < iVar2) break;
      if (iVar2 == 0x2e) {
        uVar7 = 0;
      }
      else {
LAB_000193a0:
        error(fmt_00,(PARG *)0x0);
        quit(1);
      }
    }
    else if (iVar2 == 0x62) {
      uVar7 = 3;
    }
    else {
      if (iVar2 != 99) goto LAB_000193a0;
      uVar7 = 2;
    }
    do {
      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {
        *puVar5 = uVar7;
        puVar5 = puVar4;
        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;
      }
      error(fmt,(PARG *)0x0);
      quit(1);
      *puVar5 = uVar7;
      puVar5 = puVar4;
    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));
LAB_00019330:
    cVar1 = *s;
    iVar6 = 0;
    puVar3 = puVar4;
  } while( true );
  iVar6 = iVar2 + -0x30 + iVar6 * 10;
  goto LAB_000192b0;
}



void FUN_00019250(char *param_1)

{
  char cVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  int iVar6;
  undefined *puVar7;
  undefined *puVar8;
  undefined1 uVar9;
  undefined1 *puVar10;
  
  uVar9 = 0;
  iVar6 = 0;
  puVar3 = PTR_DAT_0004ebf8 + -0x594;
  puVar10 = PTR_DAT_0004ebf8 + -0x494;
  puVar7 = PTR_LAB_0004ec08 + 0x6c08;
  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;
LAB_000192b0:
  cVar1 = *param_1;
  do {
    iVar2 = (int)cVar1;
    if (iVar2 == 0) {
      if (puVar3 < puVar10) {
        do {
          puVar5 = puVar3 + 1;
          *puVar3 = uVar9;
          puVar3 = puVar5;
        } while (puVar5 != puVar10);
      }
      return;
    }
    param_1 = param_1 + 1;
    puVar5 = puVar3;
    if (iVar2 < 0x3a) {
      if (0x2f < iVar2) break;
      if (iVar2 == 0x2e) {
        uVar9 = 0;
      }
      else {
LAB_000193a0:
        error(puVar8,0);
        quit(1);
      }
    }
    else if (iVar2 == 0x62) {
      uVar9 = 3;
    }
    else {
      if (iVar2 != 99) goto LAB_000193a0;
      uVar9 = 2;
    }
    do {
      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {
        *puVar5 = uVar9;
        puVar5 = puVar4;
        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;
      }
      error(puVar7,0);
      quit(1);
      *puVar5 = uVar9;
      puVar5 = puVar4;
    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));
LAB_00019330:
    cVar1 = *param_1;
    iVar6 = 0;
    puVar3 = puVar4;
  } while( true );
  iVar6 = iVar2 + -0x30 + iVar6 * 10;
  goto LAB_000192b0;
}


lui gp,0x4
addiu gp,gp,-0x2680
addu gp,gp,t9
addiu sp,sp,-0x38
sw s6,0x30(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s0,0x18(sp)
sw s5,0x2c(sp)
or s5,zero,zero
sw s1,0x1c(sp)
or s1,zero,zero
sw s2,0x20(sp)
or s2,a0,zero
sw gp,0x10(sp)
sw ra,0x34(sp)
lw s0,-0x7fd8(gp)
lw s6,-0x7fd8(gp)
lw s3,-0x7fc8(gp)
lw s4,-0x7fc8(gp)
addiu s0,s0,-0x594
addiu s6,s6,-0x494
addiu s3,s3,0x6c08
addiu s4,s4,0x6bf8
lb v0,0x0(s2)
beq v0,zero,0x0001933c
_nop
slti v1,v0,0x3a
beq v1,zero,0x0001937c
_addiu s2,s2,0x1
slti v1,v0,0x30
beq v1,zero,0x000193c4
_li v1,0x2e
bne v0,v1,0x000193a0
_lw t9,-0x7f9c(gp)
or s5,zero,zero
b 0x000192f4
_addu s1,s0,s1
subu v0,s1,s0
blez v0,0x00019330
_sb s5,-0x1(s0)
sltu v0,s0,s6
bne v0,zero,0x000192e8
_addiu s0,s0,0x1
lw t9,-0x7f9c(gp)
or a1,zero,zero
bal 0x0002ea34
_or a0,s3,zero
lw gp,0x10(sp)
lw t9,-0x7f98(gp)
bal 0x000159ac
_li a0,0x1
subu v0,s1,s0
lw gp,0x10(sp)
bgtz v0,0x000192f4
_sb s5,-0x1(s0)
lb v0,0x0(s2)
bne v0,zero,0x000192bc
_or s1,zero,zero
sltu v0,s0,s6
beq v0,zero,0x00019358
_lw ra,0x34(sp)
addiu s0,s0,0x1
bne s0,s6,0x00019348
_sb s5,-0x1(s0)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
li v1,0x62
beq v0,v1,0x00019398
_li v1,0x63
bne v0,v1,0x000193a0
_lw t9,-0x7f9c(gp)
b 0x000192e0
_li s5,0x2
b 0x000192e0
_li s5,0x3
or a1,zero,zero
bal 0x0002ea34
_or a0,s4,zero
lw gp,0x10(sp)
lw t9,-0x7f98(gp)
bal 0x000159ac
_li a0,0x1
b 0x000192e0
_lw gp,0x10(sp)
sll v1,s1,0x2
addiu v0,v0,-0x30
addu s1,v1,s1
sll s1,s1,0x1
b 0x000192b0
_addu s1,v0,s1
(translation_unit "void FUN_00019250(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}\n\n" (function_definition "void FUN_00019250(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" primitive_type (function_declarator "FUN_00019250(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_DAT_0004ebf8 + -0x594;" (assignment_expression "puVar3 = PTR_DAT_0004ebf8 + -0x594" identifier = (binary_expression "PTR_DAT_0004ebf8 + -0x594" identifier + number_literal)) ;) (expression_statement "puVar10 = PTR_DAT_0004ebf8 + -0x494;" (assignment_expression "puVar10 = PTR_DAT_0004ebf8 + -0x494" identifier = (binary_expression "PTR_DAT_0004ebf8 + -0x494" identifier + number_literal)) ;) (expression_statement "puVar7 = PTR_LAB_0004ec08 + 0x6c08;" (assignment_expression "puVar7 = PTR_LAB_0004ec08 + 0x6c08" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x6c08" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_LAB_0004ec08 + 0x6bf8;" (assignment_expression "puVar8 = PTR_LAB_0004ec08 + 0x6bf8" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x6bf8" identifier + number_literal)) ;) (labeled_statement "LAB_000192b0:\n  cVar1 = *param_1;" statement_identifier : (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (do_statement "do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );" do (compound_statement "{\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  }" { (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }" { (if_statement "if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }" if (parenthesized_expression "(puVar3 < puVar10)" ( (binary_expression "puVar3 < puVar10" identifier < identifier) )) (compound_statement "{\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }" { (do_statement "do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);" do (compound_statement "{\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        }" { (expression_statement "puVar5 = puVar3 + 1;" (assignment_expression "puVar5 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar9;" (assignment_expression "*puVar3 = uVar9" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3 = puVar5;" (assignment_expression "puVar3 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != puVar10)" ( (binary_expression "puVar5 != puVar10" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (if_statement "if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" if (parenthesized_expression "(iVar2 < 0x3a)" ( (binary_expression "iVar2 < 0x3a" identifier < number_literal) )) (compound_statement "{\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }" { (if_statement "if (0x2f < iVar2) break;" if (parenthesized_expression "(0x2f < iVar2)" ( (binary_expression "0x2f < iVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" if (parenthesized_expression "(iVar2 == 0x2e)" ( (binary_expression "iVar2 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        uVar9 = 0;\n      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" else (compound_statement "{\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" { (labeled_statement "LAB_000193a0:\n        error(puVar8,0);" statement_identifier : (expression_statement "error(puVar8,0);" (call_expression "error(puVar8,0)" identifier (argument_list "(puVar8,0)" ( identifier , number_literal ))) ;)) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) }))) }) (else_clause "else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" else (if_statement "if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" if (parenthesized_expression "(iVar2 == 0x62)" ( (binary_expression "iVar2 == 0x62" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 3;\n    }" { (expression_statement "uVar9 = 3;" (assignment_expression "uVar9 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" else (compound_statement "{\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" { (if_statement "if (iVar2 != 99) goto LAB_000193a0;" if (parenthesized_expression "(iVar2 != 99)" ( (binary_expression "iVar2 != 99" identifier != number_literal) )) (goto_statement "goto LAB_000193a0;" goto statement_identifier ;)) (expression_statement "uVar9 = 2;" (assignment_expression "uVar9 = 2" identifier = number_literal) ;) }))))) (do_statement "do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));" do (compound_statement "{\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    }" { (while_statement "while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" while (parenthesized_expression "(puVar4 = puVar5 + 1, puVar5 < puVar10)" ( (comma_expression "puVar4 = puVar5 + 1, puVar5 < puVar10" (assignment_expression "puVar4 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) , (binary_expression "puVar5 < puVar10" identifier < identifier)) )) (compound_statement "{\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" { (expression_statement "*puVar5 = uVar9;" (assignment_expression "*puVar5 = uVar9" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) (if_statement "if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;" if (parenthesized_expression "((int)(puVar3 + (iVar6 - (int)puVar4)) < 1)" ( (binary_expression "(int)(puVar3 + (iVar6 - (int)puVar4)) < 1" (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" ( (binary_expression "puVar3 + (iVar6 - (int)puVar4)" identifier + (parenthesized_expression "(iVar6 - (int)puVar4)" ( (binary_expression "iVar6 - (int)puVar4" identifier - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) < number_literal) )) (goto_statement "goto LAB_00019330;" goto statement_identifier ;)) })) (expression_statement "error(puVar7,0);" (call_expression "error(puVar7,0)" identifier (argument_list "(puVar7,0)" ( identifier , number_literal ))) ;) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "*puVar5 = uVar9;" (assignment_expression "*puVar5 = uVar9" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)(puVar3 + (iVar6 - (int)puVar4)))" ( (binary_expression "0 < (int)(puVar3 + (iVar6 - (int)puVar4))" number_literal < (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" ( (binary_expression "puVar3 + (iVar6 - (int)puVar4)" identifier + (parenthesized_expression "(iVar6 - (int)puVar4)" ( (binary_expression "iVar6 - (int)puVar4" identifier - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) ;) (labeled_statement "LAB_00019330:\n    cVar1 = *param_1;" statement_identifier : (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar6 = iVar2 + -0x30 + iVar6 * 10;" (assignment_expression "iVar6 = iVar2 + -0x30 + iVar6 * 10" identifier = (binary_expression "iVar2 + -0x30 + iVar6 * 10" (binary_expression "iVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar6 * 10" identifier * number_literal))) ;) (goto_statement "goto LAB_000192b0;" goto statement_identifier ;) })))
(translation_unit "void ichardef(char *s)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  char *fmt;\n  char *fmt_00;\n  undefined1 uVar7;\n  undefined1 *puVar8;\n  \n  uVar7 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_CHAR_ARRAY_0004ebf8 + -0x594;\n  puVar8 = PTR_CHAR_ARRAY_0004ebf8 + -0x494;\n  fmt = PTR_LAB_0004ec08 + 0x6c08;\n  fmt_00 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *s;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }\n    s = s + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *s;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}\n\n" (function_definition "void ichardef(char *s)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  char *fmt;\n  char *fmt_00;\n  undefined1 uVar7;\n  undefined1 *puVar8;\n  \n  uVar7 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_CHAR_ARRAY_0004ebf8 + -0x594;\n  puVar8 = PTR_CHAR_ARRAY_0004ebf8 + -0x494;\n  fmt = PTR_LAB_0004ec08 + 0x6c08;\n  fmt_00 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *s;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }\n    s = s + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *s;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" primitive_type (function_declarator "ichardef(char *s)" identifier (parameter_list "(char *s)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  char *fmt;\n  char *fmt_00;\n  undefined1 uVar7;\n  undefined1 *puVar8;\n  \n  uVar7 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_CHAR_ARRAY_0004ebf8 + -0x594;\n  puVar8 = PTR_CHAR_ARRAY_0004ebf8 + -0x494;\n  fmt = PTR_LAB_0004ec08 + 0x6c08;\n  fmt_00 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *s;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }\n    s = s + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *s;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "char *fmt_00;" primitive_type (pointer_declarator "*fmt_00" * identifier) ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_CHAR_ARRAY_0004ebf8 + -0x594;" (assignment_expression "puVar3 = PTR_CHAR_ARRAY_0004ebf8 + -0x594" identifier = (binary_expression "PTR_CHAR_ARRAY_0004ebf8 + -0x594" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_CHAR_ARRAY_0004ebf8 + -0x494;" (assignment_expression "puVar8 = PTR_CHAR_ARRAY_0004ebf8 + -0x494" identifier = (binary_expression "PTR_CHAR_ARRAY_0004ebf8 + -0x494" identifier + number_literal)) ;) (expression_statement "fmt = PTR_LAB_0004ec08 + 0x6c08;" (assignment_expression "fmt = PTR_LAB_0004ec08 + 0x6c08" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x6c08" identifier + number_literal)) ;) (expression_statement "fmt_00 = PTR_LAB_0004ec08 + 0x6bf8;" (assignment_expression "fmt_00 = PTR_LAB_0004ec08 + 0x6bf8" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x6bf8" identifier + number_literal)) ;) (labeled_statement "LAB_000192b0:\n  cVar1 = *s;" statement_identifier : (expression_statement "cVar1 = *s;" (assignment_expression "cVar1 = *s" identifier = (pointer_expression "*s" * identifier)) ;)) (do_statement "do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }\n    s = s + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *s;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );" do (compound_statement "{\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }\n    s = s + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *s;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  }" { (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar2 == 0) {\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }\n      return;\n    }" { (if_statement "if (puVar3 < puVar8) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }" if (parenthesized_expression "(puVar3 < puVar8)" ( (binary_expression "puVar3 < puVar8" identifier < identifier) )) (compound_statement "{\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);\n      }" { (do_statement "do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar8);" do (compound_statement "{\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar7;\n          puVar3 = puVar5;\n        }" { (expression_statement "puVar5 = puVar3 + 1;" (assignment_expression "puVar5 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar7;" (assignment_expression "*puVar3 = uVar7" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3 = puVar5;" (assignment_expression "puVar3 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != puVar8)" ( (binary_expression "puVar5 != puVar8" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })) (expression_statement "s = s + 1;" (assignment_expression "s = s + 1" identifier = (binary_expression "s + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (if_statement "if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }" if (parenthesized_expression "(iVar2 < 0x3a)" ( (binary_expression "iVar2 < 0x3a" identifier < number_literal) )) (compound_statement "{\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }\n    }" { (if_statement "if (0x2f < iVar2) break;" if (parenthesized_expression "(0x2f < iVar2)" ( (binary_expression "0x2f < iVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 == 0x2e) {\n        uVar7 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }" if (parenthesized_expression "(iVar2 == 0x2e)" ( (binary_expression "iVar2 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        uVar7 = 0;\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }" else (compound_statement "{\nLAB_000193a0:\n        error(fmt_00,(PARG *)0x0);\n        quit(1);\n      }" { (labeled_statement "LAB_000193a0:\n        error(fmt_00,(PARG *)0x0);" statement_identifier : (expression_statement "error(fmt_00,(PARG *)0x0);" (call_expression "error(fmt_00,(PARG *)0x0)" identifier (argument_list "(fmt_00,(PARG *)0x0)" ( identifier , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) }))) }) (else_clause "else if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }" else (if_statement "if (iVar2 == 0x62) {\n      uVar7 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }" if (parenthesized_expression "(iVar2 == 0x62)" ( (binary_expression "iVar2 == 0x62" identifier == number_literal) )) (compound_statement "{\n      uVar7 = 3;\n    }" { (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }" else (compound_statement "{\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar7 = 2;\n    }" { (if_statement "if (iVar2 != 99) goto LAB_000193a0;" if (parenthesized_expression "(iVar2 != 99)" ( (binary_expression "iVar2 != 99" identifier != number_literal) )) (goto_statement "goto LAB_000193a0;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))))) (do_statement "do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));" do (compound_statement "{\n      while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(fmt,(PARG *)0x0);\n      quit(1);\n      *puVar5 = uVar7;\n      puVar5 = puVar4;\n    }" { (while_statement "while (puVar4 = puVar5 + 1, puVar5 < puVar8) {\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" while (parenthesized_expression "(puVar4 = puVar5 + 1, puVar5 < puVar8)" ( (comma_expression "puVar4 = puVar5 + 1, puVar5 < puVar8" (assignment_expression "puVar4 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) , (binary_expression "puVar5 < puVar8" identifier < identifier)) )) (compound_statement "{\n        *puVar5 = uVar7;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" { (expression_statement "*puVar5 = uVar7;" (assignment_expression "*puVar5 = uVar7" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) (if_statement "if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;" if (parenthesized_expression "((int)(puVar3 + (iVar6 - (int)puVar4)) < 1)" ( (binary_expression "(int)(puVar3 + (iVar6 - (int)puVar4)) < 1" (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" ( (binary_expression "puVar3 + (iVar6 - (int)puVar4)" identifier + (parenthesized_expression "(iVar6 - (int)puVar4)" ( (binary_expression "iVar6 - (int)puVar4" identifier - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) < number_literal) )) (goto_statement "goto LAB_00019330;" goto statement_identifier ;)) })) (expression_statement "error(fmt,(PARG *)0x0);" (call_expression "error(fmt,(PARG *)0x0)" identifier (argument_list "(fmt,(PARG *)0x0)" ( identifier , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "*puVar5 = uVar7;" (assignment_expression "*puVar5 = uVar7" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)(puVar3 + (iVar6 - (int)puVar4)))" ( (binary_expression "0 < (int)(puVar3 + (iVar6 - (int)puVar4))" number_literal < (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" ( (binary_expression "puVar3 + (iVar6 - (int)puVar4)" identifier + (parenthesized_expression "(iVar6 - (int)puVar4)" ( (binary_expression "iVar6 - (int)puVar4" identifier - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) ;) (labeled_statement "LAB_00019330:\n    cVar1 = *s;" statement_identifier : (expression_statement "cVar1 = *s;" (assignment_expression "cVar1 = *s" identifier = (pointer_expression "*s" * identifier)) ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar6 = iVar2 + -0x30 + iVar6 * 10;" (assignment_expression "iVar6 = iVar2 + -0x30 + iVar6 * 10" identifier = (binary_expression "iVar2 + -0x30 + iVar6 * 10" (binary_expression "iVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar6 * 10" identifier * number_literal))) ;) (goto_statement "goto LAB_000192b0;" goto statement_identifier ;) })))
(translation_unit "void FUN_00019250(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}\n\n" (function_definition "void FUN_00019250(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" primitive_type (function_declarator "FUN_00019250(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_DAT_0004ebf8 + -0x594;" (assignment_expression "puVar3 = PTR_DAT_0004ebf8 + -0x594" identifier = (binary_expression "PTR_DAT_0004ebf8 + -0x594" identifier + number_literal)) ;) (expression_statement "puVar10 = PTR_DAT_0004ebf8 + -0x494;" (assignment_expression "puVar10 = PTR_DAT_0004ebf8 + -0x494" identifier = (binary_expression "PTR_DAT_0004ebf8 + -0x494" identifier + number_literal)) ;) (expression_statement "puVar7 = PTR_LAB_0004ec08 + 0x6c08;" (assignment_expression "puVar7 = PTR_LAB_0004ec08 + 0x6c08" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x6c08" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_LAB_0004ec08 + 0x6bf8;" (assignment_expression "puVar8 = PTR_LAB_0004ec08 + 0x6bf8" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x6bf8" identifier + number_literal)) ;) (labeled_statement "LAB_000192b0:\n  cVar1 = *param_1;" statement_identifier : (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (do_statement "do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );" do (compound_statement "{\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  }" { (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }" { (if_statement "if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }" if (parenthesized_expression "(puVar3 < puVar10)" ( (binary_expression "puVar3 < puVar10" identifier < identifier) )) (compound_statement "{\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }" { (do_statement "do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);" do (compound_statement "{\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        }" { (expression_statement "puVar5 = puVar3 + 1;" (assignment_expression "puVar5 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar9;" (assignment_expression "*puVar3 = uVar9" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3 = puVar5;" (assignment_expression "puVar3 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != puVar10)" ( (binary_expression "puVar5 != puVar10" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (if_statement "if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" if (parenthesized_expression "(iVar2 < 0x3a)" ( (binary_expression "iVar2 < 0x3a" identifier < number_literal) )) (compound_statement "{\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }" { (if_statement "if (0x2f < iVar2) break;" if (parenthesized_expression "(0x2f < iVar2)" ( (binary_expression "0x2f < iVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" if (parenthesized_expression "(iVar2 == 0x2e)" ( (binary_expression "iVar2 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        uVar9 = 0;\n      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" else (compound_statement "{\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" { (labeled_statement "LAB_000193a0:\n        error(puVar8,0);" statement_identifier : (expression_statement "error(puVar8,0);" (call_expression "error(puVar8,0)" identifier (argument_list "(puVar8,0)" ( identifier , number_literal ))) ;)) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) }))) }) (else_clause "else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" else (if_statement "if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" if (parenthesized_expression "(iVar2 == 0x62)" ( (binary_expression "iVar2 == 0x62" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 3;\n    }" { (expression_statement "uVar9 = 3;" (assignment_expression "uVar9 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" else (compound_statement "{\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" { (if_statement "if (iVar2 != 99) goto LAB_000193a0;" if (parenthesized_expression "(iVar2 != 99)" ( (binary_expression "iVar2 != 99" identifier != number_literal) )) (goto_statement "goto LAB_000193a0;" goto statement_identifier ;)) (expression_statement "uVar9 = 2;" (assignment_expression "uVar9 = 2" identifier = number_literal) ;) }))))) (do_statement "do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));" do (compound_statement "{\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    }" { (while_statement "while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" while (parenthesized_expression "(puVar4 = puVar5 + 1, puVar5 < puVar10)" ( (comma_expression "puVar4 = puVar5 + 1, puVar5 < puVar10" (assignment_expression "puVar4 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) , (binary_expression "puVar5 < puVar10" identifier < identifier)) )) (compound_statement "{\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" { (expression_statement "*puVar5 = uVar9;" (assignment_expression "*puVar5 = uVar9" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) (if_statement "if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;" if (parenthesized_expression "((int)(puVar3 + (iVar6 - (int)puVar4)) < 1)" ( (binary_expression "(int)(puVar3 + (iVar6 - (int)puVar4)) < 1" (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" ( (binary_expression "puVar3 + (iVar6 - (int)puVar4)" identifier + (parenthesized_expression "(iVar6 - (int)puVar4)" ( (binary_expression "iVar6 - (int)puVar4" identifier - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) < number_literal) )) (goto_statement "goto LAB_00019330;" goto statement_identifier ;)) })) (expression_statement "error(puVar7,0);" (call_expression "error(puVar7,0)" identifier (argument_list "(puVar7,0)" ( identifier , number_literal ))) ;) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "*puVar5 = uVar9;" (assignment_expression "*puVar5 = uVar9" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)(puVar3 + (iVar6 - (int)puVar4)))" ( (binary_expression "0 < (int)(puVar3 + (iVar6 - (int)puVar4))" number_literal < (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" ( (binary_expression "puVar3 + (iVar6 - (int)puVar4)" identifier + (parenthesized_expression "(iVar6 - (int)puVar4)" ( (binary_expression "iVar6 - (int)puVar4" identifier - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) ;) (labeled_statement "LAB_00019330:\n    cVar1 = *param_1;" statement_identifier : (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar6 = iVar2 + -0x30 + iVar6 * 10;" (assignment_expression "iVar6 = iVar2 + -0x30 + iVar6 * 10" identifier = (binary_expression "iVar2 + -0x30 + iVar6 * 10" (binary_expression "iVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar6 * 10" identifier * number_literal))) ;) (goto_statement "goto LAB_000192b0;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT < IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00019250(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" (primitive_type "void") (function_declarator "FUN_00019250(char *param_1)" (identifier "FUN_00019250") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined1 uVar9;\n  undefined1 *puVar10;\n  \n  uVar9 = 0;\n  iVar6 = 0;\n  puVar3 = PTR_DAT_0004ebf8 + -0x594;\n  puVar10 = PTR_DAT_0004ebf8 + -0x494;\n  puVar7 = PTR_LAB_0004ec08 + 0x6c08;\n  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;\nLAB_000192b0:\n  cVar1 = *param_1;\n  do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );\n  iVar6 = iVar2 + -0x30 + iVar6 * 10;\n  goto LAB_000192b0;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined1 uVar9;" (type_identifier "undefined1") (identifier "uVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_DAT_0004ebf8 + -0x594;" (assignment_expression "puVar3 = PTR_DAT_0004ebf8 + -0x594" (identifier "puVar3") (= "=") (binary_expression "PTR_DAT_0004ebf8 + -0x594" (identifier "PTR_DAT_0004ebf8") (+ "+") (number_literal "-0x594"))) (; ";")) (expression_statement "puVar10 = PTR_DAT_0004ebf8 + -0x494;" (assignment_expression "puVar10 = PTR_DAT_0004ebf8 + -0x494" (identifier "puVar10") (= "=") (binary_expression "PTR_DAT_0004ebf8 + -0x494" (identifier "PTR_DAT_0004ebf8") (+ "+") (number_literal "-0x494"))) (; ";")) (expression_statement "puVar7 = PTR_LAB_0004ec08 + 0x6c08;" (assignment_expression "puVar7 = PTR_LAB_0004ec08 + 0x6c08" (identifier "puVar7") (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x6c08" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x6c08"))) (; ";")) (expression_statement "puVar8 = PTR_LAB_0004ec08 + 0x6bf8;" (assignment_expression "puVar8 = PTR_LAB_0004ec08 + 0x6bf8" (identifier "puVar8") (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x6bf8" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x6bf8"))) (; ";")) (labeled_statement "LAB_000192b0:\n  cVar1 = *param_1;" (statement_identifier "LAB_000192b0") (: ":") (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (do_statement "do {\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  } while( true );" (do "do") (compound_statement "{\n    iVar2 = (int)cVar1;\n    if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }\n    param_1 = param_1 + 1;\n    puVar5 = puVar3;\n    if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }\n    do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));\nLAB_00019330:\n    cVar1 = *param_1;\n    iVar6 = 0;\n    puVar3 = puVar4;\n  }" ({ "{") (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" (identifier "iVar2") (= "=") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1"))) (; ";")) (if_statement "if (iVar2 == 0) {\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }\n      return;\n    }" ({ "{") (if_statement "if (puVar3 < puVar10) {\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }" (if "if") (parenthesized_expression "(puVar3 < puVar10)" (( "(") (binary_expression "puVar3 < puVar10" (identifier "puVar3") (< "<") (identifier "puVar10")) () ")")) (compound_statement "{\n        do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);\n      }" ({ "{") (do_statement "do {\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        } while (puVar5 != puVar10);" (do "do") (compound_statement "{\n          puVar5 = puVar3 + 1;\n          *puVar3 = uVar9;\n          puVar3 = puVar5;\n        }" ({ "{") (expression_statement "puVar5 = puVar3 + 1;" (assignment_expression "puVar5 = puVar3 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar3 = uVar9;" (assignment_expression "*puVar3 = uVar9" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar3 = puVar5;" (assignment_expression "puVar3 = puVar5" (identifier "puVar3") (= "=") (identifier "puVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != puVar10)" (( "(") (binary_expression "puVar5 != puVar10" (identifier "puVar5") (!= "!=") (identifier "puVar10")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" (identifier "puVar5") (= "=") (identifier "puVar3")) (; ";")) (if_statement "if (iVar2 < 0x3a) {\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }\n    else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" (if "if") (parenthesized_expression "(iVar2 < 0x3a)" (( "(") (binary_expression "iVar2 < 0x3a" (identifier "iVar2") (< "<") (number_literal "0x3a")) () ")")) (compound_statement "{\n      if (0x2f < iVar2) break;\n      if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }\n    }" ({ "{") (if_statement "if (0x2f < iVar2) break;" (if "if") (parenthesized_expression "(0x2f < iVar2)" (( "(") (binary_expression "0x2f < iVar2" (number_literal "0x2f") (< "<") (identifier "iVar2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (iVar2 == 0x2e) {\n        uVar9 = 0;\n      }\n      else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" (if "if") (parenthesized_expression "(iVar2 == 0x2e)" (( "(") (binary_expression "iVar2 == 0x2e" (identifier "iVar2") (== "==") (number_literal "0x2e")) () ")")) (compound_statement "{\n        uVar9 = 0;\n      }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" (else "else") (compound_statement "{\nLAB_000193a0:\n        error(puVar8,0);\n        quit(1);\n      }" ({ "{") (labeled_statement "LAB_000193a0:\n        error(puVar8,0);" (statement_identifier "LAB_000193a0") (: ":") (expression_statement "error(puVar8,0);" (call_expression "error(puVar8,0)" (identifier "error") (argument_list "(puVar8,0)" (( "(") (identifier "puVar8") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "quit(1);" (call_expression "quit(1)" (identifier "quit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" (else "else") (if_statement "if (iVar2 == 0x62) {\n      uVar9 = 3;\n    }\n    else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0x62)" (( "(") (binary_expression "iVar2 == 0x62" (identifier "iVar2") (== "==") (number_literal "0x62")) () ")")) (compound_statement "{\n      uVar9 = 3;\n    }" ({ "{") (expression_statement "uVar9 = 3;" (assignment_expression "uVar9 = 3" (identifier "uVar9") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" (else "else") (compound_statement "{\n      if (iVar2 != 99) goto LAB_000193a0;\n      uVar9 = 2;\n    }" ({ "{") (if_statement "if (iVar2 != 99) goto LAB_000193a0;" (if "if") (parenthesized_expression "(iVar2 != 99)" (( "(") (binary_expression "iVar2 != 99" (identifier "iVar2") (!= "!=") (number_literal "99")) () ")")) (goto_statement "goto LAB_000193a0;" (goto "goto") (statement_identifier "LAB_000193a0") (; ";"))) (expression_statement "uVar9 = 2;" (assignment_expression "uVar9 = 2" (identifier "uVar9") (= "=") (number_literal "2")) (; ";")) (} "}")))))) (do_statement "do {\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));" (do "do") (compound_statement "{\n      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }\n      error(puVar7,0);\n      quit(1);\n      *puVar5 = uVar9;\n      puVar5 = puVar4;\n    }" ({ "{") (while_statement "while (puVar4 = puVar5 + 1, puVar5 < puVar10) {\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" (while "while") (parenthesized_expression "(puVar4 = puVar5 + 1, puVar5 < puVar10)" (( "(") (comma_expression "puVar4 = puVar5 + 1, puVar5 < puVar10" (assignment_expression "puVar4 = puVar5 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (, ",") (binary_expression "puVar5 < puVar10" (identifier "puVar5") (< "<") (identifier "puVar10"))) () ")")) (compound_statement "{\n        *puVar5 = uVar9;\n        puVar5 = puVar4;\n        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;\n      }" ({ "{") (expression_statement "*puVar5 = uVar9;" (assignment_expression "*puVar5 = uVar9" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" (identifier "puVar5") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;" (if "if") (parenthesized_expression "((int)(puVar3 + (iVar6 - (int)puVar4)) < 1)" (( "(") (binary_expression "(int)(puVar3 + (iVar6 - (int)puVar4)) < 1" (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" (( "(") (binary_expression "puVar3 + (iVar6 - (int)puVar4)" (identifier "puVar3") (+ "+") (parenthesized_expression "(iVar6 - (int)puVar4)" (( "(") (binary_expression "iVar6 - (int)puVar4" (identifier "iVar6") (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")"))) () ")"))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00019330;" (goto "goto") (statement_identifier "LAB_00019330") (; ";"))) (} "}"))) (expression_statement "error(puVar7,0);" (call_expression "error(puVar7,0)" (identifier "error") (argument_list "(puVar7,0)" (( "(") (identifier "puVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "quit(1);" (call_expression "quit(1)" (identifier "quit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "*puVar5 = uVar9;" (assignment_expression "*puVar5 = uVar9" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" (identifier "puVar5") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)(puVar3 + (iVar6 - (int)puVar4)))" (( "(") (binary_expression "0 < (int)(puVar3 + (iVar6 - (int)puVar4))" (number_literal "0") (< "<") (cast_expression "(int)(puVar3 + (iVar6 - (int)puVar4))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar3 + (iVar6 - (int)puVar4))" (( "(") (binary_expression "puVar3 + (iVar6 - (int)puVar4)" (identifier "puVar3") (+ "+") (parenthesized_expression "(iVar6 - (int)puVar4)" (( "(") (binary_expression "iVar6 - (int)puVar4" (identifier "iVar6") (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")"))) () ")")))) () ")")) (; ";")) (labeled_statement "LAB_00019330:\n    cVar1 = *param_1;" (statement_identifier "LAB_00019330") (: ":") (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" (identifier "puVar3") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "iVar6 = iVar2 + -0x30 + iVar6 * 10;" (assignment_expression "iVar6 = iVar2 + -0x30 + iVar6 * 10" (identifier "iVar6") (= "=") (binary_expression "iVar2 + -0x30 + iVar6 * 10" (binary_expression "iVar2 + -0x30" (identifier "iVar2") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar6 * 10" (identifier "iVar6") (* "*") (number_literal "10")))) (; ";")) (goto_statement "goto LAB_000192b0;" (goto "goto") (statement_identifier "LAB_000192b0") (; ";")) (} "}")))

void function_1(char *var_7)

{
  char cVar1;
  int var_3;
  type_1 *var_4;
  type_1 *puVar4;
  type_1 *var_6;
  int var_10;
  char *fmt;
  char *fmt_00;
  type_1 uVar7;
  type_1 *var_5;
  
  uVar7 = 0;
  var_10 = 0;
  var_4 = var_1 + -0x594;
  var_5 = var_1 + -0x494;
  fmt = var_2 + 0x6c08;
  fmt_00 = var_2 + 0x6bf8;
LAB_000192b0:
  cVar1 = *var_7;
  do {
    var_3 = (int)cVar1;
    if (var_3 == 0) {
      if (var_4 < var_5) {
        do {
          var_6 = var_4 + 1;
          *var_4 = uVar7;
          var_4 = var_6;
        } while (var_6 != var_5);
      }
      return;
    }
    var_7 = var_7 + 1;
    var_6 = var_4;
    if (var_3 < 0x3a) {
      if (0x2f < var_3) break;
      if (var_3 == 0x2e) {
        uVar7 = 0;
      }
      else {
LAB_000193a0:
        var_8(fmt_00,(type_2 *)0x0);
        var_9(1);
      }
    }
    else if (var_3 == 0x62) {
      uVar7 = 3;
    }
    else {
      if (var_3 != 99) goto LAB_000193a0;
      uVar7 = 2;
    }
    do {
      while (puVar4 = var_6 + 1, var_6 < var_5) {
        *var_6 = uVar7;
        var_6 = puVar4;
        if ((int)(var_4 + (var_10 - (int)puVar4)) < 1) goto LAB_00019330;
      }
      var_8(fmt,(type_2 *)0x0);
      var_9(1);
      *var_6 = uVar7;
      var_6 = puVar4;
    } while (0 < (int)(var_4 + (var_10 - (int)puVar4)));
LAB_00019330:
    cVar1 = *var_7;
    var_10 = 0;
    var_4 = puVar4;
  } while( true );
  var_10 = var_3 + -0x30 + var_10 * 10;
  goto LAB_000192b0;
}


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

void MASKED(char *param_1)

{
  char cVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  int iVar6;
  undefined *puVar7;
  undefined *puVar8;
  undefined1 uVar9;
  undefined1 *puVar10;
  
  uVar9 = 0;
  iVar6 = 0;
  puVar3 = PTR_DAT_0004ebf8 + -0x594;
  puVar10 = PTR_DAT_0004ebf8 + -0x494;
  puVar7 = PTR_LAB_0004ec08 + 0x6c08;
  puVar8 = PTR_LAB_0004ec08 + 0x6bf8;
LAB_000192b0:
  cVar1 = *param_1;
  do {
    iVar2 = (int)cVar1;
    if (iVar2 == 0) {
      if (puVar3 < puVar10) {
        do {
          puVar5 = puVar3 + 1;
          *puVar3 = uVar9;
          puVar3 = puVar5;
        } while (puVar5 != puVar10);
      }
      return;
    }
    param_1 = param_1 + 1;
    puVar5 = puVar3;
    if (iVar2 < 0x3a) {
      if (0x2f < iVar2) break;
      if (iVar2 == 0x2e) {
        uVar9 = 0;
      }
      else {
LAB_000193a0:
        error(puVar8,0);
        quit(1);
      }
    }
    else if (iVar2 == 0x62) {
      uVar9 = 3;
    }
    else {
      if (iVar2 != 99) goto LAB_000193a0;
      uVar9 = 2;
    }
    do {
      while (puVar4 = puVar5 + 1, puVar5 < puVar10) {
        *puVar5 = uVar9;
        puVar5 = puVar4;
        if ((int)(puVar3 + (iVar6 - (int)puVar4)) < 1) goto LAB_00019330;
      }
      error(puVar7,0);
      quit(1);
      *puVar5 = uVar9;
      puVar5 = puVar4;
    } while (0 < (int)(puVar3 + (iVar6 - (int)puVar4)));
LAB_00019330:
    cVar1 = *param_1;
    iVar6 = 0;
    puVar3 = puVar4;
  } while( true );
  iVar6 = iVar2 + -0x30 + iVar6 * 10;
  goto LAB_000192b0;
}

