
int keycode_from_string(char *keystring)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  
  cVar1 = *keystring;
  if (cVar1 == '^') {
    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);
    if (iVar2 != 0) {
      cVar1 = keystring[1];
      if (cVar1 < 0x60) {
        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);
        if (iVar2 == 2) {
          iVar2 = cVar1 + -0x40;
        }
        else {
          iVar2 = -1;
        }
      }
      else {
        iVar2 = -1;
      }
    }
  }
  else if (cVar1 == 'M') {
    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);
    iVar2 = 0x20;
    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {
      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);
      if (iVar2 == 3) {
        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();
        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);
      }
      else {
        iVar2 = -1;
      }
    }
  }
  else if (cVar1 == 'F') {
    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);
    if (iVar2 - 1U < 0x10) {
      iVar2 = iVar2 + 0x108;
    }
    else {
      iVar2 = -1;
    }
  }
  else {
    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);
    if (iVar2 == 0) {
      iVar2 = 0x14b;
    }
    else {
      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);
      iVar2 = -1;
      if (iVar3 == 0) {
        iVar2 = 0x14a;
      }
    }
  }
  return iVar2;
}



int keycode_from_string(char *param_1)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  
  cVar1 = *param_1;
  if (cVar1 == '^') {
    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);
    if (iVar2 != 0) {
      cVar1 = param_1[1];
      if (cVar1 < 0x60) {
        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);
        if (iVar2 == 2) {
          iVar2 = cVar1 + -0x40;
        }
        else {
          iVar2 = -1;
        }
      }
      else {
        iVar2 = -1;
      }
    }
  }
  else if (cVar1 == 'M') {
    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);
    iVar2 = 0x20;
    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {
      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);
      if (iVar2 == 3) {
        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();
        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);
      }
      else {
        iVar2 = -1;
      }
    }
  }
  else if (cVar1 == 'F') {
    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);
    if (iVar2 - 1U < 0x10) {
      iVar2 = iVar2 + 0x108;
    }
    else {
      iVar2 = -1;
    }
  }
  else {
    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);
    if (iVar2 == 0) {
      iVar2 = 0x14b;
    }
    else {
      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);
      iVar2 = -1;
      if (iVar3 == 0) {
        iVar2 = 0x14a;
      }
    }
  }
  return iVar2;
}


lui gp,0x6
addiu gp,gp,-0xedc
addu gp,gp,t9
addiu sp,sp,-0x28
sw ra,0x24(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
sw gp,0x10(sp)
lb v0,0x0(a0)
li v1,0x5e
beq v0,v1,0x00025498
_or s0,a0,zero
li v1,0x4d
beq v0,v1,0x000254ec
_li v1,0x46
beq v0,v1,0x00025560
_lw a1,-0x7fc8(gp)
addiu a1,a1,0x4e0c
lw t9,-0x7504(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x000255bc
_lw a1,-0x7fc8(gp)
addiu a1,a1,0x5fcc
or a0,s0,zero
lw t9,-0x7504(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v1,0x14a
li a0,-0x1
movz a0,v1,v0
or v0,a0,zero
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
lw a1,-0x7fc8(gp)
addiu a1,a1,0x4dfc
lw t9,-0x7504(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00025488
_lw ra,0x24(sp)
lb s1,0x1(s0)
slti v0,s1,0x60
beq v0,zero,0x00025594
_or a0,s0,zero
lw t9,-0x74f0(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v1,0x2
bne v0,v1,0x0002559c
_nop
b 0x00025484
_addiu v0,s1,-0x40
lw a1,-0x7fc8(gp)
addiu a1,a1,0x4e04
lw t9,-0x7504(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00025484
_li v0,0x20
lb v1,0x1(s0)
li v0,0x2d
bne v1,v0,0x00025484
_li v0,-0x1
or a0,s0,zero
lw t9,-0x74f0(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v1,0x3
bne v0,v1,0x000255ac
_lw t9,-0x7648(gp)
jalr t9
_nop
lw gp,0x10(sp)
lbu v1,0x2(s0)
lw v0,0x0(v0)
sll v1,v1,0x2
addu v0,v0,v1
b 0x00025484
_lw v0,0x0(v0)
li a2,0xa
or a1,zero,zero
addiu a0,a0,0x1
lw t9,-0x7624(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu v1,v0,-0x1
sltiu v1,v1,0x10
beq v1,zero,0x000255b4
_nop
b 0x00025484
_addiu v0,v0,0x108
b 0x00025484
_li v0,-0x1
b 0x00025484
_li v0,-0x1
b 0x00025484
_li v0,-0x1
b 0x00025484
_li v0,-0x1
b 0x00025484
_li v0,0x14b
(translation_unit "int keycode_from_string(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}\n\n" (function_definition "int keycode_from_string(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "keycode_from_string(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == '^')" ( (binary_expression "cVar1 == '^'" identifier == (char_literal "'^'" ' character ')) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4dfc)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4dfc" identifier + number_literal) )))) ;) (if_statement "if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" { (expression_statement "cVar1 = param_1[1];" (assignment_expression "cVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }" if (parenthesized_expression "(cVar1 < 0x60)" ( (binary_expression "cVar1 < 0x60" identifier < number_literal) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_0007d030)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" ( (pointer_expression "*(code *)PTR_strlen_0007d030" * (cast_expression "(code *)PTR_strlen_0007d030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar2 = cVar1 + -0x40;\n        }" { (expression_statement "iVar2 = cVar1 + -0x40;" (assignment_expression "iVar2 = cVar1 + -0x40" identifier = (binary_expression "cVar1 + -0x40" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar2 = -1;\n        }" else (compound_statement "{\n          iVar2 = -1;\n        }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        iVar2 = -1;\n      }" else (compound_statement "{\n        iVar2 = -1;\n      }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) })) }) (else_clause "else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (if_statement "if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == 'M')" ( (binary_expression "cVar1 == 'M'" identifier == (char_literal "'M'" ' character ')) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4e04)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4e04" identifier + number_literal) )))) ;) (expression_statement "iVar2 = 0x20;" (assignment_expression "iVar2 = 0x20" identifier = number_literal) ;) (if_statement "if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" if (parenthesized_expression "((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-'))" ( (binary_expression "(iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = -1, param_1[1] == '-')" ( (comma_expression "iVar2 = -1, param_1[1] == '-'" (assignment_expression "iVar2 = -1" identifier = number_literal) , (binary_expression "param_1[1] == '-'" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character '))) ))) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_0007d030)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" ( (pointer_expression "*(code *)PTR_strlen_0007d030" * (cast_expression "(code *)PTR_strlen_0007d030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0007ced8" * (cast_expression "(code *)PTR___ctype_tolower_loc_0007ced8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);" (assignment_expression "iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" identifier = (pointer_expression "*(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" * (cast_expression "(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + (uint)(byte)param_1[2] * 4)" ( (binary_expression "*piVar4 + (uint)(byte)param_1[2] * 4" (pointer_expression "*piVar4" * identifier) + (binary_expression "(uint)(byte)param_1[2] * 4" (cast_expression "(uint)(byte)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) * number_literal)) ))))) ;) }) (else_clause "else {\n        iVar2 = -1;\n      }" else (compound_statement "{\n        iVar2 = -1;\n      }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) })) }) (else_clause "else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (if_statement "if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == 'F')" ( (binary_expression "cVar1 == 'F'" identifier == (char_literal "'F'" ' character ')) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);" (assignment_expression "iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10)" identifier = (call_expression "(*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10)" (parenthesized_expression "(*(code *)PTR_strtol_0007cefc)" ( (pointer_expression "*(code *)PTR_strtol_0007cefc" * (cast_expression "(code *)PTR_strtol_0007cefc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 1,0,10)" ( (binary_expression "param_1 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (if_statement "if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }" if (parenthesized_expression "(iVar2 - 1U < 0x10)" ( (binary_expression "iVar2 - 1U < 0x10" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      iVar2 = iVar2 + 0x108;\n    }" { (expression_statement "iVar2 = iVar2 + 0x108;" (assignment_expression "iVar2 = iVar2 + 0x108" identifier = (binary_expression "iVar2 + 0x108" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar2 = -1;\n    }" else (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4e0c)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4e0c" identifier + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 0x14b;\n    }" { (expression_statement "iVar2 = 0x14b;" (assignment_expression "iVar2 = 0x14b" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" else (compound_statement "{\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x5fcc)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x5fcc" identifier + number_literal) )))) ;) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = 0x14a;\n      }" { (expression_statement "iVar2 = 0x14a;" (assignment_expression "iVar2 = 0x14a" identifier = number_literal) ;) })) }))) }))))))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int keycode_from_string(char *keystring)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *keystring;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}\n\n" (function_definition "int keycode_from_string(char *keystring)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *keystring;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "keycode_from_string(char *keystring)" identifier (parameter_list "(char *keystring)" ( (parameter_declaration "char *keystring" primitive_type (pointer_declarator "*keystring" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *keystring;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (expression_statement "cVar1 = *keystring;" (assignment_expression "cVar1 = *keystring" identifier = (pointer_expression "*keystring" * identifier)) ;) (if_statement "if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == '^')" ( (binary_expression "cVar1 == '^'" identifier == (char_literal "'^'" ' character ')) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4dfc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring,PTR_LAB_0007c558 + 0x4dfc)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4dfc" identifier + number_literal) )))) ;) (if_statement "if (iVar2 != 0) {\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar1 = keystring[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" { (expression_statement "cVar1 = keystring[1];" (assignment_expression "cVar1 = keystring[1]" identifier = (subscript_expression "keystring[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }" if (parenthesized_expression "(cVar1 < 0x60)" ( (binary_expression "cVar1 < 0x60" identifier < number_literal) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(keystring)" identifier = (call_expression "(*(code *)PTR_strlen_0007d030)(keystring)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" ( (pointer_expression "*(code *)PTR_strlen_0007d030" * (cast_expression "(code *)PTR_strlen_0007d030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring)" ( identifier )))) ;) (if_statement "if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar2 = cVar1 + -0x40;\n        }" { (expression_statement "iVar2 = cVar1 + -0x40;" (assignment_expression "iVar2 = cVar1 + -0x40" identifier = (binary_expression "cVar1 + -0x40" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar2 = -1;\n        }" else (compound_statement "{\n          iVar2 = -1;\n        }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        iVar2 = -1;\n      }" else (compound_statement "{\n        iVar2 = -1;\n      }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) })) }) (else_clause "else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (if_statement "if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == 'M')" ( (binary_expression "cVar1 == 'M'" identifier == (char_literal "'M'" ' character ')) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e04)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring,PTR_LAB_0007c558 + 0x4e04)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4e04" identifier + number_literal) )))) ;) (expression_statement "iVar2 = 0x20;" (assignment_expression "iVar2 = 0x20" identifier = number_literal) ;) (if_statement "if ((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" if (parenthesized_expression "((iVar3 != 0) && (iVar2 = -1, keystring[1] == '-'))" ( (binary_expression "(iVar3 != 0) && (iVar2 = -1, keystring[1] == '-')" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = -1, keystring[1] == '-')" ( (comma_expression "iVar2 = -1, keystring[1] == '-'" (assignment_expression "iVar2 = -1" identifier = number_literal) , (binary_expression "keystring[1] == '-'" (subscript_expression "keystring[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character '))) ))) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(keystring);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(keystring)" identifier = (call_expression "(*(code *)PTR_strlen_0007d030)(keystring)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" ( (pointer_expression "*(code *)PTR_strlen_0007d030" * (cast_expression "(code *)PTR_strlen_0007d030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring)" ( identifier )))) ;) (if_statement "if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);\n      }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0007ced8" * (cast_expression "(code *)PTR___ctype_tolower_loc_0007ced8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4);" (assignment_expression "iVar2 = *(int *)(*piVar4 + (uint)(byte)keystring[2] * 4)" identifier = (pointer_expression "*(int *)(*piVar4 + (uint)(byte)keystring[2] * 4)" * (cast_expression "(int *)(*piVar4 + (uint)(byte)keystring[2] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + (uint)(byte)keystring[2] * 4)" ( (binary_expression "*piVar4 + (uint)(byte)keystring[2] * 4" (pointer_expression "*piVar4" * identifier) + (binary_expression "(uint)(byte)keystring[2] * 4" (cast_expression "(uint)(byte)keystring[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)keystring[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "keystring[2]" identifier [ number_literal ]))) * number_literal)) ))))) ;) }) (else_clause "else {\n        iVar2 = -1;\n      }" else (compound_statement "{\n        iVar2 = -1;\n      }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) })) }) (else_clause "else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (if_statement "if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == 'F')" ( (binary_expression "cVar1 == 'F'" identifier == (char_literal "'F'" ' character ')) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10);" (assignment_expression "iVar2 = (*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10)" identifier = (call_expression "(*(code *)PTR_strtol_0007cefc)(keystring + 1,0,10)" (parenthesized_expression "(*(code *)PTR_strtol_0007cefc)" ( (pointer_expression "*(code *)PTR_strtol_0007cefc" * (cast_expression "(code *)PTR_strtol_0007cefc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring + 1,0,10)" ( (binary_expression "keystring + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (if_statement "if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }" if (parenthesized_expression "(iVar2 - 1U < 0x10)" ( (binary_expression "iVar2 - 1U < 0x10" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      iVar2 = iVar2 + 0x108;\n    }" { (expression_statement "iVar2 = iVar2 + 0x108;" (assignment_expression "iVar2 = iVar2 + 0x108" identifier = (binary_expression "iVar2 + 0x108" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar2 = -1;\n    }" else (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x4e0c)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring,PTR_LAB_0007c558 + 0x4e0c)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4e0c" identifier + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 0x14b;\n    }" { (expression_statement "iVar2 = 0x14b;" (assignment_expression "iVar2 = 0x14b" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" else (compound_statement "{\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(keystring,PTR_LAB_0007c558 + 0x5fcc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(keystring,PTR_LAB_0007c558 + 0x5fcc)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x5fcc" identifier + number_literal) )))) ;) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = 0x14a;\n      }" { (expression_statement "iVar2 = 0x14a;" (assignment_expression "iVar2 = 0x14a" identifier = number_literal) ;) })) }))) }))))))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int keycode_from_string(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}\n\n" (function_definition "int keycode_from_string(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "keycode_from_string(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == '^')" ( (binary_expression "cVar1 == '^'" identifier == (char_literal "'^'" ' character ')) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4dfc)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4dfc" identifier + number_literal) )))) ;) (if_statement "if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" { (expression_statement "cVar1 = param_1[1];" (assignment_expression "cVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }" if (parenthesized_expression "(cVar1 < 0x60)" ( (binary_expression "cVar1 < 0x60" identifier < number_literal) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_0007d030)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" ( (pointer_expression "*(code *)PTR_strlen_0007d030" * (cast_expression "(code *)PTR_strlen_0007d030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar2 = cVar1 + -0x40;\n        }" { (expression_statement "iVar2 = cVar1 + -0x40;" (assignment_expression "iVar2 = cVar1 + -0x40" identifier = (binary_expression "cVar1 + -0x40" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar2 = -1;\n        }" else (compound_statement "{\n          iVar2 = -1;\n        }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        iVar2 = -1;\n      }" else (compound_statement "{\n        iVar2 = -1;\n      }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) })) }) (else_clause "else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (if_statement "if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == 'M')" ( (binary_expression "cVar1 == 'M'" identifier == (char_literal "'M'" ' character ')) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4e04)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4e04" identifier + number_literal) )))) ;) (expression_statement "iVar2 = 0x20;" (assignment_expression "iVar2 = 0x20" identifier = number_literal) ;) (if_statement "if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" if (parenthesized_expression "((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-'))" ( (binary_expression "(iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = -1, param_1[1] == '-')" ( (comma_expression "iVar2 = -1, param_1[1] == '-'" (assignment_expression "iVar2 = -1" identifier = number_literal) , (binary_expression "param_1[1] == '-'" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character '))) ))) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_0007d030)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" ( (pointer_expression "*(code *)PTR_strlen_0007d030" * (cast_expression "(code *)PTR_strlen_0007d030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0007ced8" * (cast_expression "(code *)PTR___ctype_tolower_loc_0007ced8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);" (assignment_expression "iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" identifier = (pointer_expression "*(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" * (cast_expression "(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + (uint)(byte)param_1[2] * 4)" ( (binary_expression "*piVar4 + (uint)(byte)param_1[2] * 4" (pointer_expression "*piVar4" * identifier) + (binary_expression "(uint)(byte)param_1[2] * 4" (cast_expression "(uint)(byte)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) * number_literal)) ))))) ;) }) (else_clause "else {\n        iVar2 = -1;\n      }" else (compound_statement "{\n        iVar2 = -1;\n      }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) })) }) (else_clause "else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (if_statement "if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == 'F')" ( (binary_expression "cVar1 == 'F'" identifier == (char_literal "'F'" ' character ')) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);" (assignment_expression "iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10)" identifier = (call_expression "(*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10)" (parenthesized_expression "(*(code *)PTR_strtol_0007cefc)" ( (pointer_expression "*(code *)PTR_strtol_0007cefc" * (cast_expression "(code *)PTR_strtol_0007cefc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 1,0,10)" ( (binary_expression "param_1 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (if_statement "if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }" if (parenthesized_expression "(iVar2 - 1U < 0x10)" ( (binary_expression "iVar2 - 1U < 0x10" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      iVar2 = iVar2 + 0x108;\n    }" { (expression_statement "iVar2 = iVar2 + 0x108;" (assignment_expression "iVar2 = iVar2 + 0x108" identifier = (binary_expression "iVar2 + 0x108" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar2 = -1;\n    }" else (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" else (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4e0c)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x4e0c" identifier + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 0x14b;\n    }" { (expression_statement "iVar2 = 0x14b;" (assignment_expression "iVar2 = 0x14b" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" else (compound_statement "{\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc)" identifier = (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" ( (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" * (cast_expression "(code *)PTR_strcasecmp_0007d01c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_LAB_0007c558 + 0x5fcc)" ( identifier , (binary_expression "PTR_LAB_0007c558 + 0x5fcc" identifier + number_literal) )))) ;) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = 0x14a;\n      }" { (expression_statement "iVar2 = 0x14a;" (assignment_expression "iVar2 = 0x14a" identifier = number_literal) ;) })) }))) }))))))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }))))))) (return_statement return IDENT ;) })))
(function_definition "int keycode_from_string(char *param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "keycode_from_string(char *param_1)" (identifier "keycode_from_string") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  cVar1 = *param_1;\n  if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }\n  return iVar2;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (cVar1 == '^') {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar1 == '^')" (( "(") (binary_expression "cVar1 == '^'" (identifier "cVar1") (== "==") (char_literal "'^'" (' "'") (character "^") (' "'"))) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);\n    if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" (( "(") (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" (* "*") (cast_expression "(code *)PTR_strcasecmp_0007d01c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcasecmp_0007d01c"))) () ")")) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4dfc)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_LAB_0007c558 + 0x4dfc" (identifier "PTR_LAB_0007c558") (+ "+") (number_literal "0x4dfc")) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      cVar1 = param_1[1];\n      if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" ({ "{") (expression_statement "cVar1 = param_1[1];" (assignment_expression "cVar1 = param_1[1]" (identifier "cVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (cVar1 < 0x60) {\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }\n      else {\n        iVar2 = -1;\n      }" (if "if") (parenthesized_expression "(cVar1 < 0x60)" (( "(") (binary_expression "cVar1 < 0x60" (identifier "cVar1") (< "<") (number_literal "0x60")) () ")")) (compound_statement "{\n        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n        if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_0007d030)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" (( "(") (pointer_expression "*(code *)PTR_strlen_0007d030" (* "*") (cast_expression "(code *)PTR_strlen_0007d030" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0007d030"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar2 == 2) {\n          iVar2 = cVar1 + -0x40;\n        }\n        else {\n          iVar2 = -1;\n        }" (if "if") (parenthesized_expression "(iVar2 == 2)" (( "(") (binary_expression "iVar2 == 2" (identifier "iVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          iVar2 = cVar1 + -0x40;\n        }" ({ "{") (expression_statement "iVar2 = cVar1 + -0x40;" (assignment_expression "iVar2 = cVar1 + -0x40" (identifier "iVar2") (= "=") (binary_expression "cVar1 + -0x40" (identifier "cVar1") (+ "+") (number_literal "-0x40"))) (; ";")) (} "}")) (else_clause "else {\n          iVar2 = -1;\n        }" (else "else") (compound_statement "{\n          iVar2 = -1;\n        }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        iVar2 = -1;\n      }" (else "else") (compound_statement "{\n        iVar2 = -1;\n      }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" (else "else") (if_statement "if (cVar1 == 'M') {\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }\n  else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar1 == 'M')" (( "(") (binary_expression "cVar1 == 'M'" (identifier "cVar1") (== "==") (char_literal "'M'" (' "'") (character "M") (' "'"))) () ")")) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);\n    iVar2 = 0x20;\n    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" (( "(") (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" (* "*") (cast_expression "(code *)PTR_strcasecmp_0007d01c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcasecmp_0007d01c"))) () ")")) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4e04)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_LAB_0007c558 + 0x4e04" (identifier "PTR_LAB_0007c558") (+ "+") (number_literal "0x4e04")) () ")")))) (; ";")) (expression_statement "iVar2 = 0x20;" (assignment_expression "iVar2 = 0x20" (identifier "iVar2") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" (if "if") (parenthesized_expression "((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-'))" (( "(") (binary_expression "(iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = -1, param_1[1] == '-')" (( "(") (comma_expression "iVar2 = -1, param_1[1] == '-'" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (, ",") (binary_expression "param_1[1] == '-'" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);\n      if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }\n    }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0007d030)(param_1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_0007d030)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_0007d030)" (( "(") (pointer_expression "*(code *)PTR_strlen_0007d030" (* "*") (cast_expression "(code *)PTR_strlen_0007d030" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0007d030"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar2 == 3) {\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }\n      else {\n        iVar2 = -1;\n      }" (if "if") (parenthesized_expression "(iVar2 == 3)" (( "(") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();\n        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);\n      }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0007ced8)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0007ced8" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0007ced8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0007ced8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);" (assignment_expression "iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" (* "*") (cast_expression "(int *)(*piVar4 + (uint)(byte)param_1[2] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + (uint)(byte)param_1[2] * 4)" (( "(") (binary_expression "*piVar4 + (uint)(byte)param_1[2] * 4" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (binary_expression "(uint)(byte)param_1[2] * 4" (cast_expression "(uint)(byte)param_1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = -1;\n      }" (else "else") (compound_statement "{\n        iVar2 = -1;\n      }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" (else "else") (if_statement "if (cVar1 == 'F') {\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar1 == 'F')" (( "(") (binary_expression "cVar1 == 'F'" (identifier "cVar1") (== "==") (char_literal "'F'" (' "'") (character "F") (' "'"))) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);\n    if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);" (assignment_expression "iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10)" (parenthesized_expression "(*(code *)PTR_strtol_0007cefc)" (( "(") (pointer_expression "*(code *)PTR_strtol_0007cefc" (* "*") (cast_expression "(code *)PTR_strtol_0007cefc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strtol_0007cefc"))) () ")")) (argument_list "(param_1 + 1,0,10)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if (iVar2 - 1U < 0x10) {\n      iVar2 = iVar2 + 0x108;\n    }\n    else {\n      iVar2 = -1;\n    }" (if "if") (parenthesized_expression "(iVar2 - 1U < 0x10)" (( "(") (binary_expression "iVar2 - 1U < 0x10" (binary_expression "iVar2 - 1U" (identifier "iVar2") (- "-") (number_literal "1U")) (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n      iVar2 = iVar2 + 0x108;\n    }" ({ "{") (expression_statement "iVar2 = iVar2 + 0x108;" (assignment_expression "iVar2 = iVar2 + 0x108" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 0x108" (identifier "iVar2") (+ "+") (number_literal "0x108"))) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = -1;\n    }" (else "else") (compound_statement "{\n      iVar2 = -1;\n    }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);\n    if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);" (assignment_expression "iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" (( "(") (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" (* "*") (cast_expression "(code *)PTR_strcasecmp_0007d01c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcasecmp_0007d01c"))) () ")")) (argument_list "(param_1,PTR_LAB_0007c558 + 0x4e0c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_LAB_0007c558 + 0x4e0c" (identifier "PTR_LAB_0007c558") (+ "+") (number_literal "0x4e0c")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = 0x14b;\n    }\n    else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 0x14b;\n    }" ({ "{") (expression_statement "iVar2 = 0x14b;" (assignment_expression "iVar2 = 0x14b" (identifier "iVar2") (= "=") (number_literal "0x14b")) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" (else "else") (compound_statement "{\n      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);\n      iVar2 = -1;\n      if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }\n    }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);" (assignment_expression "iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc)" (parenthesized_expression "(*(code *)PTR_strcasecmp_0007d01c)" (( "(") (pointer_expression "*(code *)PTR_strcasecmp_0007d01c" (* "*") (cast_expression "(code *)PTR_strcasecmp_0007d01c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcasecmp_0007d01c"))) () ")")) (argument_list "(param_1,PTR_LAB_0007c558 + 0x5fcc)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_LAB_0007c558 + 0x5fcc" (identifier "PTR_LAB_0007c558") (+ "+") (number_literal "0x5fcc")) () ")")))) (; ";")) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar2 = 0x14a;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = 0x14a;\n      }" ({ "{") (expression_statement "iVar2 = 0x14a;" (assignment_expression "iVar2 = 0x14a" (identifier "iVar2") (= "=") (number_literal "0x14a")) (; ";")) (} "}"))) (} "}")))) (} "}")))))))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

int function_1(char *var_5)

{
  char var_1;
  int var_3;
  int var_4;
  int *piVar4;
  
  var_1 = *var_5;
  if (var_1 == '^') {
    var_3 = (*(type_1 *)PTR_strcasecmp_0007d01c)(var_5,var_2 + 0x4dfc);
    if (var_3 != 0) {
      var_1 = var_5[1];
      if (var_1 < 0x60) {
        var_3 = (*(type_1 *)PTR_strlen_0007d030)(var_5);
        if (var_3 == 2) {
          var_3 = var_1 + -0x40;
        }
        else {
          var_3 = -1;
        }
      }
      else {
        var_3 = -1;
      }
    }
  }
  else if (var_1 == 'M') {
    var_4 = (*(type_1 *)PTR_strcasecmp_0007d01c)(var_5,var_2 + 0x4e04);
    var_3 = 0x20;
    if ((var_4 != 0) && (var_3 = -1, var_5[1] == '-')) {
      var_3 = (*(type_1 *)PTR_strlen_0007d030)(var_5);
      if (var_3 == 3) {
        piVar4 = (int *)(*(type_1 *)PTR___ctype_tolower_loc_0007ced8)();
        var_3 = *(int *)(*piVar4 + (type_2)(type_3)var_5[2] * 4);
      }
      else {
        var_3 = -1;
      }
    }
  }
  else if (var_1 == 'F') {
    var_3 = (*(type_1 *)PTR_strtol_0007cefc)(var_5 + 1,0,10);
    if (var_3 - 1U < 0x10) {
      var_3 = var_3 + 0x108;
    }
    else {
      var_3 = -1;
    }
  }
  else {
    var_3 = (*(type_1 *)PTR_strcasecmp_0007d01c)(var_5,var_2 + 0x4e0c);
    if (var_3 == 0) {
      var_3 = 0x14b;
    }
    else {
      var_4 = (*(type_1 *)PTR_strcasecmp_0007d01c)(var_5,var_2 + 0x5fcc);
      var_3 = -1;
      if (var_4 == 0) {
        var_3 = 0x14a;
      }
    }
  }
  return var_3;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))))))) (return_statement (identifier)))))

int MASKED(char *param_1)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  
  cVar1 = *param_1;
  if (cVar1 == '^') {
    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4dfc);
    if (iVar2 != 0) {
      cVar1 = param_1[1];
      if (cVar1 < 0x60) {
        iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);
        if (iVar2 == 2) {
          iVar2 = cVar1 + -0x40;
        }
        else {
          iVar2 = -1;
        }
      }
      else {
        iVar2 = -1;
      }
    }
  }
  else if (cVar1 == 'M') {
    iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e04);
    iVar2 = 0x20;
    if ((iVar3 != 0) && (iVar2 = -1, param_1[1] == '-')) {
      iVar2 = (*(code *)PTR_strlen_0007d030)(param_1);
      if (iVar2 == 3) {
        piVar4 = (int *)(*(code *)PTR___ctype_tolower_loc_0007ced8)();
        iVar2 = *(int *)(*piVar4 + (uint)(byte)param_1[2] * 4);
      }
      else {
        iVar2 = -1;
      }
    }
  }
  else if (cVar1 == 'F') {
    iVar2 = (*(code *)PTR_strtol_0007cefc)(param_1 + 1,0,10);
    if (iVar2 - 1U < 0x10) {
      iVar2 = iVar2 + 0x108;
    }
    else {
      iVar2 = -1;
    }
  }
  else {
    iVar2 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x4e0c);
    if (iVar2 == 0) {
      iVar2 = 0x14b;
    }
    else {
      iVar3 = (*(code *)PTR_strcasecmp_0007d01c)(param_1,PTR_LAB_0007c558 + 0x5fcc);
      iVar2 = -1;
      if (iVar3 == 0) {
        iVar2 = 0x14a;
      }
    }
  }
  return iVar2;
}

