
/* WARNING: Unknown calling convention */

char * match_suffix(char **str)

{
  char cVar1;
  bool bVar2;
  char *pcVar3;
  int iVar4;
  char *pcVar5;
  
  pcVar5 = *str;
  iVar4 = (int)*pcVar5;
  bVar2 = false;
  if (iVar4 == 0) {
    return (char *)0x0;
  }
  pcVar3 = (char *)0x0;
  do {
    if (bVar2) {
      if (iVar4 < 0x41) {
LAB_0001e0ac:
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
        bVar2 = false;
      }
      else if (iVar4 < 0x5b) {
        bVar2 = false;
      }
      else {
        bVar2 = false;
        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;
      }
LAB_0001e0b8:
      *str = pcVar5 + 1;
      cVar1 = pcVar5[1];
    }
    else {
      if (iVar4 == 0x2e) {
        if (pcVar3 == (char *)0x0) {
          bVar2 = true;
          pcVar3 = pcVar5;
        }
        else {
          bVar2 = true;
        }
        goto LAB_0001e0b8;
      }
      if (iVar4 < 0x5b) {
        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
      }
      else {
        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
      }
      *str = pcVar5 + 1;
      cVar1 = pcVar5[1];
    }
    iVar4 = (int)cVar1;
    pcVar5 = pcVar5 + 1;
    if (iVar4 == 0) {
      return pcVar3;
    }
  } while( true );
}



char * FUN_0001e070(undefined4 *param_1)

{
  char cVar1;
  bool bVar2;
  char *pcVar3;
  int iVar4;
  char *pcVar5;
  
  pcVar5 = (char *)*param_1;
  iVar4 = (int)*pcVar5;
  bVar2 = false;
  if (iVar4 == 0) {
    return (char *)0x0;
  }
  pcVar3 = (char *)0x0;
  do {
    if (bVar2) {
      if (iVar4 < 0x41) {
LAB_0001e0ac:
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
        bVar2 = false;
      }
      else if (iVar4 < 0x5b) {
        bVar2 = false;
      }
      else {
        bVar2 = false;
        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;
      }
LAB_0001e0b8:
      *param_1 = pcVar5 + 1;
      cVar1 = pcVar5[1];
    }
    else {
      if (iVar4 == 0x2e) {
        if (pcVar3 == (char *)0x0) {
          bVar2 = true;
          pcVar3 = pcVar5;
        }
        else {
          bVar2 = true;
        }
        goto LAB_0001e0b8;
      }
      if (iVar4 < 0x5b) {
        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
      }
      else {
        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
      }
      *param_1 = pcVar5 + 1;
      cVar1 = pcVar5[1];
    }
    iVar4 = (int)cVar1;
    pcVar5 = pcVar5 + 1;
    if (iVar4 == 0) {
      return pcVar3;
    }
  } while( true );
}


lw a1,0x0(a0)
lb v1,0x0(a1)
beq v1,zero,0x0001e15c
_or a3,zero,zero
or v0,zero,zero
b 0x0001e0cc
_li t0,0x2e
bne a2,zero,0x0001e0ac
_slti a2,v1,0x5b
bne a2,zero,0x0001e11c
_addiu a2,v1,-0x61
andi a2,a2,0xff
sltiu a2,a2,0x1a
bne a2,zero,0x0001e0b8
_or a3,zero,zero
xori v1,v1,0x7e
movn v0,zero,v1
or a3,zero,zero
addiu a1,a1,0x1
sw a1,0x0(a0)
lb v1,0x0(a1)
beq v1,zero,0x0001e114
_nop
bne a3,zero,0x0001e08c
_slti a2,v1,0x41
beq v1,t0,0x0001e140
_slti a2,v1,0x5b
beq a2,zero,0x0001e124
_slti a2,v1,0x41
beq a2,zero,0x0001e0b8
_addiu a2,v1,-0x30
andi a2,a2,0xff
sltiu a2,a2,0xa
bne a2,zero,0x0001e0b8
_xori v1,v1,0x7e
movn v0,zero,v1
addiu a1,a1,0x1
sw a1,0x0(a0)
lb v1,0x0(a1)
bne v1,zero,0x0001e0cc
_nop
jr ra
_nop
b 0x0001e0b8
_or a3,zero,zero
addiu a2,v1,-0x61
andi a2,a2,0xff
sltiu a2,a2,0x1a
bne a2,zero,0x0001e0b8
_xori v1,v1,0x7e
b 0x0001e100
_movn v0,zero,v1
beq v0,zero,0x0001e150
_nop
b 0x0001e0b8
_li a3,0x1
or v0,a1,zero
b 0x0001e0b8
_li a3,0x1
jr ra
_or v0,zero,zero
(translation_unit "char * FUN_0001e070(undefined4 *param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}\n\n" (function_definition "char * FUN_0001e070(undefined4 *param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_0001e070(undefined4 *param_1)" * (function_declarator "FUN_0001e070(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "pcVar5 = (char *)*param_1;" (assignment_expression "pcVar5 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar4 = (int)*pcVar5;" (assignment_expression "iVar4 = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (iVar4 == 0) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );" do (compound_statement "{\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  }" { (if_statement "if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" { (if_statement "if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" if (parenthesized_expression "(iVar4 < 0x41)" ( (binary_expression "iVar4 < 0x41" identifier < number_literal) )) (compound_statement "{\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }" { (labeled_statement "LAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" statement_identifier : (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" else (if_statement "if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" if (parenthesized_expression "(iVar4 < 0x5b)" ( (binary_expression "iVar4 < 0x5b" identifier < number_literal) )) (compound_statement "{\n        bVar2 = false;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" else (compound_statement "{\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;" if (parenthesized_expression "(0x19 < (iVar4 - 0x61U & 0xff))" ( (binary_expression "0x19 < (iVar4 - 0x61U & 0xff)" number_literal < (parenthesized_expression "(iVar4 - 0x61U & 0xff)" ( (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_0001e0ac;" goto statement_identifier ;)) }))))) (labeled_statement "LAB_0001e0b8:\n      *param_1 = pcVar5 + 1;" statement_identifier : (expression_statement "*param_1 = pcVar5 + 1;" (assignment_expression "*param_1 = pcVar5 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" identifier = (subscript_expression "pcVar5[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" else (compound_statement "{\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" { (if_statement "if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" if (parenthesized_expression "(iVar4 == 0x2e)" ( (binary_expression "iVar4 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" { (if_statement "if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pcVar3 = pcVar5;" (assignment_expression "pcVar3 = pcVar5" identifier = identifier) ;) }) (else_clause "else {\n          bVar2 = true;\n        }" else (compound_statement "{\n          bVar2 = true;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;) })) (if_statement "if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" if (parenthesized_expression "(iVar4 < 0x5b)" ( (binary_expression "iVar4 < 0x5b" identifier < number_literal) )) (compound_statement "{\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" { (if_statement "if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;" if (parenthesized_expression "((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10))" ( (binary_expression "(0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)" (parenthesized_expression "(0x40 < iVar4)" ( (binary_expression "0x40 < iVar4" number_literal < identifier) )) || (parenthesized_expression "((iVar4 - 0x30U & 0xff) < 10)" ( (binary_expression "(iVar4 - 0x30U & 0xff) < 10" (parenthesized_expression "(iVar4 - 0x30U & 0xff)" ( (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" identifier - number_literal) & number_literal) )) < number_literal) ))) )) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;)) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" else (compound_statement "{\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" { (if_statement "if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;" if (parenthesized_expression "((iVar4 - 0x61U & 0xff) < 0x1a)" ( (binary_expression "(iVar4 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar4 - 0x61U & 0xff)" ( (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" identifier - number_literal) & number_literal) )) < number_literal) )) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;)) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "*param_1 = pcVar5 + 1;" (assignment_expression "*param_1 = pcVar5 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" identifier = (subscript_expression "pcVar5[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar4 = (int)cVar1;" (assignment_expression "iVar4 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) {\n      return pcVar3;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return pcVar3;\n    }" { (return_statement "return pcVar3;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nchar * match_suffix(char **str)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = *str;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}\n\n" comment (function_definition "char * match_suffix(char **str)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = *str;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* match_suffix(char **str)" * (function_declarator "match_suffix(char **str)" identifier (parameter_list "(char **str)" ( (parameter_declaration "char **str" primitive_type (pointer_declarator "**str" * (pointer_declarator "*str" * identifier))) )))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = *str;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "pcVar5 = *str;" (assignment_expression "pcVar5 = *str" identifier = (pointer_expression "*str" * identifier)) ;) (expression_statement "iVar4 = (int)*pcVar5;" (assignment_expression "iVar4 = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (iVar4 == 0) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );" do (compound_statement "{\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  }" { (if_statement "if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" { (if_statement "if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" if (parenthesized_expression "(iVar4 < 0x41)" ( (binary_expression "iVar4 < 0x41" identifier < number_literal) )) (compound_statement "{\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }" { (labeled_statement "LAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" statement_identifier : (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" else (if_statement "if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" if (parenthesized_expression "(iVar4 < 0x5b)" ( (binary_expression "iVar4 < 0x5b" identifier < number_literal) )) (compound_statement "{\n        bVar2 = false;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" else (compound_statement "{\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;" if (parenthesized_expression "(0x19 < (iVar4 - 0x61U & 0xff))" ( (binary_expression "0x19 < (iVar4 - 0x61U & 0xff)" number_literal < (parenthesized_expression "(iVar4 - 0x61U & 0xff)" ( (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_0001e0ac;" goto statement_identifier ;)) }))))) (labeled_statement "LAB_0001e0b8:\n      *str = pcVar5 + 1;" statement_identifier : (expression_statement "*str = pcVar5 + 1;" (assignment_expression "*str = pcVar5 + 1" (pointer_expression "*str" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" identifier = (subscript_expression "pcVar5[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" else (compound_statement "{\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *str = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" { (if_statement "if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" if (parenthesized_expression "(iVar4 == 0x2e)" ( (binary_expression "iVar4 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" { (if_statement "if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pcVar3 = pcVar5;" (assignment_expression "pcVar3 = pcVar5" identifier = identifier) ;) }) (else_clause "else {\n          bVar2 = true;\n        }" else (compound_statement "{\n          bVar2 = true;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;) })) (if_statement "if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" if (parenthesized_expression "(iVar4 < 0x5b)" ( (binary_expression "iVar4 < 0x5b" identifier < number_literal) )) (compound_statement "{\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" { (if_statement "if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;" if (parenthesized_expression "((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10))" ( (binary_expression "(0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)" (parenthesized_expression "(0x40 < iVar4)" ( (binary_expression "0x40 < iVar4" number_literal < identifier) )) || (parenthesized_expression "((iVar4 - 0x30U & 0xff) < 10)" ( (binary_expression "(iVar4 - 0x30U & 0xff) < 10" (parenthesized_expression "(iVar4 - 0x30U & 0xff)" ( (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" identifier - number_literal) & number_literal) )) < number_literal) ))) )) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;)) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" else (compound_statement "{\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" { (if_statement "if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;" if (parenthesized_expression "((iVar4 - 0x61U & 0xff) < 0x1a)" ( (binary_expression "(iVar4 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar4 - 0x61U & 0xff)" ( (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" identifier - number_literal) & number_literal) )) < number_literal) )) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;)) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "*str = pcVar5 + 1;" (assignment_expression "*str = pcVar5 + 1" (pointer_expression "*str" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" identifier = (subscript_expression "pcVar5[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar4 = (int)cVar1;" (assignment_expression "iVar4 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) {\n      return pcVar3;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return pcVar3;\n    }" { (return_statement "return pcVar3;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "char * FUN_0001e070(undefined4 *param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}\n\n" (function_definition "char * FUN_0001e070(undefined4 *param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_0001e070(undefined4 *param_1)" * (function_declarator "FUN_0001e070(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "pcVar5 = (char *)*param_1;" (assignment_expression "pcVar5 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar4 = (int)*pcVar5;" (assignment_expression "iVar4 = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (iVar4 == 0) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );" do (compound_statement "{\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  }" { (if_statement "if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" { (if_statement "if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" if (parenthesized_expression "(iVar4 < 0x41)" ( (binary_expression "iVar4 < 0x41" identifier < number_literal) )) (compound_statement "{\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }" { (labeled_statement "LAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" statement_identifier : (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" else (if_statement "if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" if (parenthesized_expression "(iVar4 < 0x5b)" ( (binary_expression "iVar4 < 0x5b" identifier < number_literal) )) (compound_statement "{\n        bVar2 = false;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" else (compound_statement "{\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;" if (parenthesized_expression "(0x19 < (iVar4 - 0x61U & 0xff))" ( (binary_expression "0x19 < (iVar4 - 0x61U & 0xff)" number_literal < (parenthesized_expression "(iVar4 - 0x61U & 0xff)" ( (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_0001e0ac;" goto statement_identifier ;)) }))))) (labeled_statement "LAB_0001e0b8:\n      *param_1 = pcVar5 + 1;" statement_identifier : (expression_statement "*param_1 = pcVar5 + 1;" (assignment_expression "*param_1 = pcVar5 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" identifier = (subscript_expression "pcVar5[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" else (compound_statement "{\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" { (if_statement "if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" if (parenthesized_expression "(iVar4 == 0x2e)" ( (binary_expression "iVar4 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" { (if_statement "if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pcVar3 = pcVar5;" (assignment_expression "pcVar3 = pcVar5" identifier = identifier) ;) }) (else_clause "else {\n          bVar2 = true;\n        }" else (compound_statement "{\n          bVar2 = true;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;) })) (if_statement "if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" if (parenthesized_expression "(iVar4 < 0x5b)" ( (binary_expression "iVar4 < 0x5b" identifier < number_literal) )) (compound_statement "{\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" { (if_statement "if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;" if (parenthesized_expression "((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10))" ( (binary_expression "(0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)" (parenthesized_expression "(0x40 < iVar4)" ( (binary_expression "0x40 < iVar4" number_literal < identifier) )) || (parenthesized_expression "((iVar4 - 0x30U & 0xff) < 10)" ( (binary_expression "(iVar4 - 0x30U & 0xff) < 10" (parenthesized_expression "(iVar4 - 0x30U & 0xff)" ( (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" identifier - number_literal) & number_literal) )) < number_literal) ))) )) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;)) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" else (compound_statement "{\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" { (if_statement "if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;" if (parenthesized_expression "((iVar4 - 0x61U & 0xff) < 0x1a)" ( (binary_expression "(iVar4 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar4 - 0x61U & 0xff)" ( (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" identifier - number_literal) & number_literal) )) < number_literal) )) (goto_statement "goto LAB_0001e0b8;" goto statement_identifier ;)) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" if (parenthesized_expression "(iVar4 != 0x7e)" ( (binary_expression "iVar4 != 0x7e" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "*param_1 = pcVar5 + 1;" (assignment_expression "*param_1 = pcVar5 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" identifier = (subscript_expression "pcVar5[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar4 = (int)cVar1;" (assignment_expression "iVar4 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) {\n      return pcVar3;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return pcVar3;\n    }" { (return_statement "return pcVar3;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) (goto_statement goto statement_identifier ;)) }))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "char * FUN_0001e070(undefined4 *param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" (primitive_type "char") (pointer_declarator "* FUN_0001e070(undefined4 *param_1)" (* "*") (function_declarator "FUN_0001e070(undefined4 *param_1)" (identifier "FUN_0001e070") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  \n  pcVar5 = (char *)*param_1;\n  iVar4 = (int)*pcVar5;\n  bVar2 = false;\n  if (iVar4 == 0) {\n    return (char *)0x0;\n  }\n  pcVar3 = (char *)0x0;\n  do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (expression_statement "pcVar5 = (char *)*param_1;" (assignment_expression "pcVar5 = (char *)*param_1" (identifier "pcVar5") (= "=") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar4 = (int)*pcVar5;" (assignment_expression "iVar4 = (int)*pcVar5" (identifier "iVar4") (= "=") (cast_expression "(int)*pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (iVar4 == 0) {\n    return (char *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (char *)0x0;\n  }" ({ "{") (return_statement "return (char *)0x0;" (return "return") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" (identifier "pcVar3") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    iVar4 = (int)cVar1;\n    pcVar5 = pcVar5 + 1;\n    if (iVar4 == 0) {\n      return pcVar3;\n    }\n  }" ({ "{") (if_statement "if (bVar2) {\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }\n    else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n      if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }\nLAB_0001e0b8:\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" ({ "{") (if_statement "if (iVar4 < 0x41) {\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }\n      else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" (if "if") (parenthesized_expression "(iVar4 < 0x41)" (( "(") (binary_expression "iVar4 < 0x41" (identifier "iVar4") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\nLAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n        bVar2 = false;\n      }" ({ "{") (labeled_statement "LAB_0001e0ac:\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" (statement_identifier "LAB_0001e0ac") (: ":") (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0x7e)" (( "(") (binary_expression "iVar4 != 0x7e" (identifier "iVar4") (!= "!=") (number_literal "0x7e")) () ")")) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" ({ "{") (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" (identifier "pcVar3") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" (else "else") (if_statement "if (iVar4 < 0x5b) {\n        bVar2 = false;\n      }\n      else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" (if "if") (parenthesized_expression "(iVar4 < 0x5b)" (( "(") (binary_expression "iVar4 < 0x5b" (identifier "iVar4") (< "<") (number_literal "0x5b")) () ")")) (compound_statement "{\n        bVar2 = false;\n      }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" (else "else") (compound_statement "{\n        bVar2 = false;\n        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;\n      }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;" (if "if") (parenthesized_expression "(0x19 < (iVar4 - 0x61U & 0xff))" (( "(") (binary_expression "0x19 < (iVar4 - 0x61U & 0xff)" (number_literal "0x19") (< "<") (parenthesized_expression "(iVar4 - 0x61U & 0xff)" (( "(") (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" (identifier "iVar4") (- "-") (number_literal "0x61U")) (& "&") (number_literal "0xff")) () ")"))) () ")")) (goto_statement "goto LAB_0001e0ac;" (goto "goto") (statement_identifier "LAB_0001e0ac") (; ";"))) (} "}")))))) (labeled_statement "LAB_0001e0b8:\n      *param_1 = pcVar5 + 1;" (statement_identifier "LAB_0001e0b8") (: ":") (expression_statement "*param_1 = pcVar5 + 1;" (assignment_expression "*param_1 = pcVar5 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" (identifier "cVar1") (= "=") (subscript_expression "pcVar5[1]" (identifier "pcVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" (else "else") (compound_statement "{\n      if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }\n      if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      *param_1 = pcVar5 + 1;\n      cVar1 = pcVar5[1];\n    }" ({ "{") (if_statement "if (iVar4 == 0x2e) {\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0x2e)" (( "(") (binary_expression "iVar4 == 0x2e" (identifier "iVar4") (== "==") (number_literal "0x2e")) () ")")) (compound_statement "{\n        if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }\n        goto LAB_0001e0b8;\n      }" ({ "{") (if_statement "if (pcVar3 == (char *)0x0) {\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }\n        else {\n          bVar2 = true;\n        }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          bVar2 = true;\n          pcVar3 = pcVar5;\n        }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "pcVar3 = pcVar5;" (assignment_expression "pcVar3 = pcVar5" (identifier "pcVar3") (= "=") (identifier "pcVar5")) (; ";")) (} "}")) (else_clause "else {\n          bVar2 = true;\n        }" (else "else") (compound_statement "{\n          bVar2 = true;\n        }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")))) (goto_statement "goto LAB_0001e0b8;" (goto "goto") (statement_identifier "LAB_0001e0b8") (; ";")) (} "}"))) (if_statement "if (iVar4 < 0x5b) {\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }\n      else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 < 0x5b)" (( "(") (binary_expression "iVar4 < 0x5b" (identifier "iVar4") (< "<") (number_literal "0x5b")) () ")")) (compound_statement "{\n        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" ({ "{") (if_statement "if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;" (if "if") (parenthesized_expression "((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10))" (( "(") (binary_expression "(0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)" (parenthesized_expression "(0x40 < iVar4)" (( "(") (binary_expression "0x40 < iVar4" (number_literal "0x40") (< "<") (identifier "iVar4")) () ")")) (|| "||") (parenthesized_expression "((iVar4 - 0x30U & 0xff) < 10)" (( "(") (binary_expression "(iVar4 - 0x30U & 0xff) < 10" (parenthesized_expression "(iVar4 - 0x30U & 0xff)" (( "(") (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" (identifier "iVar4") (- "-") (number_literal "0x30U")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "10")) () ")"))) () ")")) (goto_statement "goto LAB_0001e0b8;" (goto "goto") (statement_identifier "LAB_0001e0b8") (; ";"))) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0x7e)" (( "(") (binary_expression "iVar4 != 0x7e" (identifier "iVar4") (!= "!=") (number_literal "0x7e")) () ")")) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" ({ "{") (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" (identifier "pcVar3") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" (else "else") (compound_statement "{\n        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;\n        if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }\n      }" ({ "{") (if_statement "if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;" (if "if") (parenthesized_expression "((iVar4 - 0x61U & 0xff) < 0x1a)" (( "(") (binary_expression "(iVar4 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar4 - 0x61U & 0xff)" (( "(") (binary_expression "iVar4 - 0x61U & 0xff" (binary_expression "iVar4 - 0x61U" (identifier "iVar4") (- "-") (number_literal "0x61U")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x1a")) () ")")) (goto_statement "goto LAB_0001e0b8;" (goto "goto") (statement_identifier "LAB_0001e0b8") (; ";"))) (if_statement "if (iVar4 != 0x7e) {\n          pcVar3 = (char *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0x7e)" (( "(") (binary_expression "iVar4 != 0x7e" (identifier "iVar4") (!= "!=") (number_literal "0x7e")) () ")")) (compound_statement "{\n          pcVar3 = (char *)0x0;\n        }" ({ "{") (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" (identifier "pcVar3") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "*param_1 = pcVar5 + 1;" (assignment_expression "*param_1 = pcVar5 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = pcVar5[1];" (assignment_expression "cVar1 = pcVar5[1]" (identifier "cVar1") (= "=") (subscript_expression "pcVar5[1]" (identifier "pcVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "iVar4 = (int)cVar1;" (assignment_expression "iVar4 = (int)cVar1" (identifier "iVar4") (= "=") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1"))) (; ";")) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar4 == 0) {\n      return pcVar3;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return pcVar3;\n    }" ({ "{") (return_statement "return pcVar3;" (return "return") (identifier "pcVar3") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

char * function_1(char **str)

{
  char cVar1;
  bool bVar2;
  char *var_3;
  int var_1;
  char *var_2;
  
  var_2 = *str;
  var_1 = (int)*var_2;
  bVar2 = false;
  if (var_1 == 0) {
    return (char *)0x0;
  }
  var_3 = (char *)0x0;
  do {
    if (bVar2) {
      if (var_1 < 0x41) {
LAB_0001e0ac:
        if (var_1 != 0x7e) {
          var_3 = (char *)0x0;
        }
        bVar2 = false;
      }
      else if (var_1 < 0x5b) {
        bVar2 = false;
      }
      else {
        bVar2 = false;
        if (0x19 < (var_1 - 0x61U & 0xff)) goto LAB_0001e0ac;
      }
LAB_0001e0b8:
      *str = var_2 + 1;
      cVar1 = var_2[1];
    }
    else {
      if (var_1 == 0x2e) {
        if (var_3 == (char *)0x0) {
          bVar2 = true;
          var_3 = var_2;
        }
        else {
          bVar2 = true;
        }
        goto LAB_0001e0b8;
      }
      if (var_1 < 0x5b) {
        if ((0x40 < var_1) || ((var_1 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;
        if (var_1 != 0x7e) {
          var_3 = (char *)0x0;
        }
      }
      else {
        if ((var_1 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;
        if (var_1 != 0x7e) {
          var_3 = (char *)0x0;
        }
      }
      *str = var_2 + 1;
      cVar1 = var_2[1];
    }
    var_1 = (int)cVar1;
    var_2 = var_2 + 1;
    if (var_1 == 0) {
      return var_3;
    }
  } while( true );
}


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

char * MASKED(undefined4 *param_1)

{
  char cVar1;
  bool bVar2;
  char *pcVar3;
  int iVar4;
  char *pcVar5;
  
  pcVar5 = (char *)*param_1;
  iVar4 = (int)*pcVar5;
  bVar2 = false;
  if (iVar4 == 0) {
    return (char *)0x0;
  }
  pcVar3 = (char *)0x0;
  do {
    if (bVar2) {
      if (iVar4 < 0x41) {
LAB_0001e0ac:
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
        bVar2 = false;
      }
      else if (iVar4 < 0x5b) {
        bVar2 = false;
      }
      else {
        bVar2 = false;
        if (0x19 < (iVar4 - 0x61U & 0xff)) goto LAB_0001e0ac;
      }
LAB_0001e0b8:
      *param_1 = pcVar5 + 1;
      cVar1 = pcVar5[1];
    }
    else {
      if (iVar4 == 0x2e) {
        if (pcVar3 == (char *)0x0) {
          bVar2 = true;
          pcVar3 = pcVar5;
        }
        else {
          bVar2 = true;
        }
        goto LAB_0001e0b8;
      }
      if (iVar4 < 0x5b) {
        if ((0x40 < iVar4) || ((iVar4 - 0x30U & 0xff) < 10)) goto LAB_0001e0b8;
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
      }
      else {
        if ((iVar4 - 0x61U & 0xff) < 0x1a) goto LAB_0001e0b8;
        if (iVar4 != 0x7e) {
          pcVar3 = (char *)0x0;
        }
      }
      *param_1 = pcVar5 + 1;
      cVar1 = pcVar5[1];
    }
    iVar4 = (int)cVar1;
    pcVar5 = pcVar5 + 1;
    if (iVar4 == 0) {
      return pcVar3;
    }
  } while( true );
}

