
int find_hash(char *name)

{
  int iVar1;
  int iVar2;
  undefined8 *puVar3;
  
  if (name == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);
  }
  iVar2 = 0;
  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;
  while( true ) {
    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {
      return iVar2;
    }
    if (((char *)puVar3[0x1a] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {
      return iVar2 + 1;
    }
    if (((char *)puVar3[0x34] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {
      return iVar2 + 2;
    }
    if (((char *)puVar3[0x4e] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {
      return iVar2 + 3;
    }
    if (((char *)puVar3[0x68] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {
      return iVar2 + 4;
    }
    if (((char *)puVar3[0x82] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {
      return iVar2 + 5;
    }
    if (((char *)puVar3[0x9c] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {
      return iVar2 + 6;
    }
    if (((char *)puVar3[0xb6] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;
    iVar2 = iVar2 + 8;
    puVar3 = puVar3 + 0xd0;
    if (iVar2 == 0x20) {
      return -1;
    }
  }
  return iVar2 + 7;
}



int find_hash(char *param_1)

{
  int iVar1;
  int iVar2;
  undefined8 *puVar3;
  
  if (param_1 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);
  }
  iVar2 = 0;
  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;
  while( true ) {
    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {
      return iVar2;
    }
    if (((char *)puVar3[0x1a] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {
      return iVar2 + 1;
    }
    if (((char *)puVar3[0x34] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {
      return iVar2 + 2;
    }
    if (((char *)puVar3[0x4e] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {
      return iVar2 + 3;
    }
    if (((char *)puVar3[0x68] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {
      return iVar2 + 4;
    }
    if (((char *)puVar3[0x82] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {
      return iVar2 + 5;
    }
    if (((char *)puVar3[0x9c] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {
      return iVar2 + 6;
    }
    if (((char *)puVar3[0xb6] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;
    iVar2 = iVar2 + 8;
    puVar3 = puVar3 + 0xd0;
    if (iVar2 == 0x20) {
      return -1;
    }
  }
  return iVar2 + 7;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
TEST RDI,RDI
JZ 0x001641e1
MOV R14,qword ptr [0x001dde98]
MOV R13,RDI
XOR EBX,EBX
MOV RDI,qword ptr [R14]
TEST RDI,RDI
JZ 0x001640e5
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R14 + 0xd0]
LEA EBP,[RBX + 0x1]
LEA R12,[R14 + 0xd0]
MOV EBX,EBP
TEST RDI,RDI
JZ 0x0016410d
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R12 + 0xd0]
LEA EBX,[RBP + 0x1]
TEST RDI,RDI
JZ 0x0016412d
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R12 + 0x1a0]
LEA EBX,[RBP + 0x2]
TEST RDI,RDI
JZ 0x0016414d
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R12 + 0x270]
LEA EBX,[RBP + 0x3]
TEST RDI,RDI
JZ 0x00164169
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R12 + 0x340]
LEA EBX,[RBP + 0x4]
TEST RDI,RDI
JZ 0x00164185
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R12 + 0x410]
LEA EBX,[RBP + 0x5]
TEST RDI,RDI
JZ 0x001641a1
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
MOV RDI,qword ptr [R12 + 0x4e0]
LEA EBX,[RBP + 0x6]
TEST RDI,RDI
JZ 0x001641bd
MOV RSI,R13
CALL 0x00113dc0
TEST EAX,EAX
JZ 0x001641d6
LEA EBX,[RBP + 0x7]
LEA R14,[R12 + 0x5b0]
CMP EBX,0x20
JNZ 0x001640cd
MOV EBX,0xffffffff
MOV EAX,EBX
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV EDX,0x18
LEA RSI,[0x1bf028]
LEA RDI,[0x1c5da4]
CALL 0x00114270
(translation_unit "int find_hash(char *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}\n\n" (function_definition "int find_hash(char *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" primitive_type (function_declarator "find_hash(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (if_statement "if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" { comment (expression_statement "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);" (call_expression "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" identifier (argument_list "("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" ( (string_literal ""name != NULL"" " string_content ") , (string_literal ""src/misc/crypt/crypt_find_hash.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;" (assignment_expression "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98" identifier = (cast_expression "(undefined8 *)PTR_hash_descriptor_001dde98" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" { (if_statement "if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }" if (parenthesized_expression "(((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0))" ( (binary_expression "((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)" (parenthesized_expression "((char *)*puVar3 != (char *)0x0)" ( (binary_expression "(char *)*puVar3 != (char *)0x0" (cast_expression "(char *)*puVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)*puVar3,param_1)" identifier = (call_expression "strcmp((char *)*puVar3,param_1)" identifier (argument_list "((char *)*puVar3,param_1)" ( (cast_expression "(char *)*puVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2;\n    }" { (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }" if (parenthesized_expression "(((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x1a] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x1a] != (char *)0x0" (cast_expression "(char *)puVar3[0x1a]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x1a]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x1a],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x1a],param_1)" identifier (argument_list "((char *)puVar3[0x1a],param_1)" ( (cast_expression "(char *)puVar3[0x1a]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x1a]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 1;\n    }" { (return_statement "return iVar2 + 1;" return (binary_expression "iVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }" if (parenthesized_expression "(((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x34] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x34] != (char *)0x0" (cast_expression "(char *)puVar3[0x34]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x34]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x34],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x34],param_1)" identifier (argument_list "((char *)puVar3[0x34],param_1)" ( (cast_expression "(char *)puVar3[0x34]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x34]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 2;\n    }" { (return_statement "return iVar2 + 2;" return (binary_expression "iVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }" if (parenthesized_expression "(((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x4e] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x4e] != (char *)0x0" (cast_expression "(char *)puVar3[0x4e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x4e]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x4e],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x4e],param_1)" identifier (argument_list "((char *)puVar3[0x4e],param_1)" ( (cast_expression "(char *)puVar3[0x4e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x4e]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 3;\n    }" { (return_statement "return iVar2 + 3;" return (binary_expression "iVar2 + 3" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }" if (parenthesized_expression "(((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x68] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x68] != (char *)0x0" (cast_expression "(char *)puVar3[0x68]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x68]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x68],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x68],param_1)" identifier (argument_list "((char *)puVar3[0x68],param_1)" ( (cast_expression "(char *)puVar3[0x68]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x68]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 4;\n    }" { (return_statement "return iVar2 + 4;" return (binary_expression "iVar2 + 4" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }" if (parenthesized_expression "(((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x82] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x82] != (char *)0x0" (cast_expression "(char *)puVar3[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x82]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x82],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x82],param_1)" identifier (argument_list "((char *)puVar3[0x82],param_1)" ( (cast_expression "(char *)puVar3[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x82]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 5;\n    }" { (return_statement "return iVar2 + 5;" return (binary_expression "iVar2 + 5" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }" if (parenthesized_expression "(((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x9c] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x9c] != (char *)0x0" (cast_expression "(char *)puVar3[0x9c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x9c]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x9c],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x9c],param_1)" identifier (argument_list "((char *)puVar3[0x9c],param_1)" ( (cast_expression "(char *)puVar3[0x9c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x9c]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 6;\n    }" { (return_statement "return iVar2 + 6;" return (binary_expression "iVar2 + 6" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;" if (parenthesized_expression "(((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0xb6] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0xb6] != (char *)0x0" (cast_expression "(char *)puVar3[0xb6]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0xb6]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0xb6],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0xb6],param_1)" identifier (argument_list "((char *)puVar3[0xb6],param_1)" ( (cast_expression "(char *)puVar3[0xb6]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0xb6]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = iVar2 + 8;" (assignment_expression "iVar2 = iVar2 + 8" identifier = (binary_expression "iVar2 + 8" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 0xd0;" (assignment_expression "puVar3 = puVar3 + 0xd0" identifier = (binary_expression "puVar3 + 0xd0" identifier + number_literal)) ;) (if_statement "if (iVar2 == 0x20) {\n      return -1;\n    }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return -1;\n    }" { (return_statement "return -1;" return number_literal ;) })) })) (return_statement "return iVar2 + 7;" return (binary_expression "iVar2 + 7" identifier + number_literal) ;) })))
(translation_unit "int find_hash(char *name)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}\n\n" (function_definition "int find_hash(char *name)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" primitive_type (function_declarator "find_hash(char *name)" identifier (parameter_list "(char *name)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (if_statement "if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" if (parenthesized_expression "(name == (char *)0x0)" ( (binary_expression "name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" { comment (expression_statement "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);" (call_expression "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" identifier (argument_list "("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" ( (string_literal ""name != NULL"" " string_content ") , (string_literal ""src/misc/crypt/crypt_find_hash.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;" (assignment_expression "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98" identifier = (cast_expression "(undefined8 *)PTR_hash_descriptor_001dde98" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" { (if_statement "if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)) {\n      return iVar2;\n    }" if (parenthesized_expression "(((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0))" ( (binary_expression "((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)" (parenthesized_expression "((char *)*puVar3 != (char *)0x0)" ( (binary_expression "(char *)*puVar3 != (char *)0x0" (cast_expression "(char *)*puVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)*puVar3,name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)*puVar3,name)" identifier = (call_expression "strcmp((char *)*puVar3,name)" identifier (argument_list "((char *)*puVar3,name)" ( (cast_expression "(char *)*puVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2;\n    }" { (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)) {\n      return iVar2 + 1;\n    }" if (parenthesized_expression "(((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x1a] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x1a] != (char *)0x0" (cast_expression "(char *)puVar3[0x1a]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x1a]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x1a],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x1a],name)" identifier = (call_expression "strcmp((char *)puVar3[0x1a],name)" identifier (argument_list "((char *)puVar3[0x1a],name)" ( (cast_expression "(char *)puVar3[0x1a]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x1a]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 1;\n    }" { (return_statement "return iVar2 + 1;" return (binary_expression "iVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)) {\n      return iVar2 + 2;\n    }" if (parenthesized_expression "(((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x34] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x34] != (char *)0x0" (cast_expression "(char *)puVar3[0x34]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x34]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x34],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x34],name)" identifier = (call_expression "strcmp((char *)puVar3[0x34],name)" identifier (argument_list "((char *)puVar3[0x34],name)" ( (cast_expression "(char *)puVar3[0x34]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x34]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 2;\n    }" { (return_statement "return iVar2 + 2;" return (binary_expression "iVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)) {\n      return iVar2 + 3;\n    }" if (parenthesized_expression "(((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x4e] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x4e] != (char *)0x0" (cast_expression "(char *)puVar3[0x4e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x4e]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x4e],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x4e],name)" identifier = (call_expression "strcmp((char *)puVar3[0x4e],name)" identifier (argument_list "((char *)puVar3[0x4e],name)" ( (cast_expression "(char *)puVar3[0x4e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x4e]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 3;\n    }" { (return_statement "return iVar2 + 3;" return (binary_expression "iVar2 + 3" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)) {\n      return iVar2 + 4;\n    }" if (parenthesized_expression "(((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x68] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x68] != (char *)0x0" (cast_expression "(char *)puVar3[0x68]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x68]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x68],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x68],name)" identifier = (call_expression "strcmp((char *)puVar3[0x68],name)" identifier (argument_list "((char *)puVar3[0x68],name)" ( (cast_expression "(char *)puVar3[0x68]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x68]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 4;\n    }" { (return_statement "return iVar2 + 4;" return (binary_expression "iVar2 + 4" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)) {\n      return iVar2 + 5;\n    }" if (parenthesized_expression "(((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x82] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x82] != (char *)0x0" (cast_expression "(char *)puVar3[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x82]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x82],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x82],name)" identifier = (call_expression "strcmp((char *)puVar3[0x82],name)" identifier (argument_list "((char *)puVar3[0x82],name)" ( (cast_expression "(char *)puVar3[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x82]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 5;\n    }" { (return_statement "return iVar2 + 5;" return (binary_expression "iVar2 + 5" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)) {\n      return iVar2 + 6;\n    }" if (parenthesized_expression "(((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x9c] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x9c] != (char *)0x0" (cast_expression "(char *)puVar3[0x9c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x9c]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x9c],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x9c],name)" identifier = (call_expression "strcmp((char *)puVar3[0x9c],name)" identifier (argument_list "((char *)puVar3[0x9c],name)" ( (cast_expression "(char *)puVar3[0x9c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x9c]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 6;\n    }" { (return_statement "return iVar2 + 6;" return (binary_expression "iVar2 + 6" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)) break;" if (parenthesized_expression "(((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0xb6] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0xb6] != (char *)0x0" (cast_expression "(char *)puVar3[0xb6]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0xb6]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0xb6],name), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0xb6],name)" identifier = (call_expression "strcmp((char *)puVar3[0xb6],name)" identifier (argument_list "((char *)puVar3[0xb6],name)" ( (cast_expression "(char *)puVar3[0xb6]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0xb6]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = iVar2 + 8;" (assignment_expression "iVar2 = iVar2 + 8" identifier = (binary_expression "iVar2 + 8" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 0xd0;" (assignment_expression "puVar3 = puVar3 + 0xd0" identifier = (binary_expression "puVar3 + 0xd0" identifier + number_literal)) ;) (if_statement "if (iVar2 == 0x20) {\n      return -1;\n    }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return -1;\n    }" { (return_statement "return -1;" return number_literal ;) })) })) (return_statement "return iVar2 + 7;" return (binary_expression "iVar2 + 7" identifier + number_literal) ;) })))
(translation_unit "int find_hash(char *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}\n\n" (function_definition "int find_hash(char *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" primitive_type (function_declarator "find_hash(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (if_statement "if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" { (expression_statement "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);" (call_expression "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" identifier (argument_list "("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" ( (string_literal ""name != NULL"" " string_content ") , (string_literal ""src/misc/crypt/crypt_find_hash.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;" (assignment_expression "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98" identifier = (cast_expression "(undefined8 *)PTR_hash_descriptor_001dde98" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" { (if_statement "if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }" if (parenthesized_expression "(((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0))" ( (binary_expression "((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)" (parenthesized_expression "((char *)*puVar3 != (char *)0x0)" ( (binary_expression "(char *)*puVar3 != (char *)0x0" (cast_expression "(char *)*puVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)*puVar3,param_1)" identifier = (call_expression "strcmp((char *)*puVar3,param_1)" identifier (argument_list "((char *)*puVar3,param_1)" ( (cast_expression "(char *)*puVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2;\n    }" { (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }" if (parenthesized_expression "(((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x1a] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x1a] != (char *)0x0" (cast_expression "(char *)puVar3[0x1a]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x1a]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x1a],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x1a],param_1)" identifier (argument_list "((char *)puVar3[0x1a],param_1)" ( (cast_expression "(char *)puVar3[0x1a]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x1a]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 1;\n    }" { (return_statement "return iVar2 + 1;" return (binary_expression "iVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }" if (parenthesized_expression "(((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x34] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x34] != (char *)0x0" (cast_expression "(char *)puVar3[0x34]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x34]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x34],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x34],param_1)" identifier (argument_list "((char *)puVar3[0x34],param_1)" ( (cast_expression "(char *)puVar3[0x34]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x34]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 2;\n    }" { (return_statement "return iVar2 + 2;" return (binary_expression "iVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }" if (parenthesized_expression "(((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x4e] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x4e] != (char *)0x0" (cast_expression "(char *)puVar3[0x4e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x4e]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x4e],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x4e],param_1)" identifier (argument_list "((char *)puVar3[0x4e],param_1)" ( (cast_expression "(char *)puVar3[0x4e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x4e]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 3;\n    }" { (return_statement "return iVar2 + 3;" return (binary_expression "iVar2 + 3" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }" if (parenthesized_expression "(((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x68] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x68] != (char *)0x0" (cast_expression "(char *)puVar3[0x68]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x68]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x68],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x68],param_1)" identifier (argument_list "((char *)puVar3[0x68],param_1)" ( (cast_expression "(char *)puVar3[0x68]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x68]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 4;\n    }" { (return_statement "return iVar2 + 4;" return (binary_expression "iVar2 + 4" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }" if (parenthesized_expression "(((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x82] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x82] != (char *)0x0" (cast_expression "(char *)puVar3[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x82]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x82],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x82],param_1)" identifier (argument_list "((char *)puVar3[0x82],param_1)" ( (cast_expression "(char *)puVar3[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x82]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 5;\n    }" { (return_statement "return iVar2 + 5;" return (binary_expression "iVar2 + 5" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }" if (parenthesized_expression "(((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x9c] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0x9c] != (char *)0x0" (cast_expression "(char *)puVar3[0x9c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x9c]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x9c],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0x9c],param_1)" identifier (argument_list "((char *)puVar3[0x9c],param_1)" ( (cast_expression "(char *)puVar3[0x9c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x9c]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      return iVar2 + 6;\n    }" { (return_statement "return iVar2 + 6;" return (binary_expression "iVar2 + 6" identifier + number_literal) ;) })) (if_statement "if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;" if (parenthesized_expression "(((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0))" ( (binary_expression "((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0xb6] != (char *)0x0)" ( (binary_expression "(char *)puVar3[0xb6] != (char *)0x0" (cast_expression "(char *)puVar3[0xb6]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0xb6]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0xb6],param_1)" identifier = (call_expression "strcmp((char *)puVar3[0xb6],param_1)" identifier (argument_list "((char *)puVar3[0xb6],param_1)" ( (cast_expression "(char *)puVar3[0xb6]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0xb6]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = iVar2 + 8;" (assignment_expression "iVar2 = iVar2 + 8" identifier = (binary_expression "iVar2 + 8" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 0xd0;" (assignment_expression "puVar3 = puVar3 + 0xd0" identifier = (binary_expression "puVar3 + 0xd0" identifier + number_literal)) ;) (if_statement "if (iVar2 == 0x20) {\n      return -1;\n    }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return -1;\n    }" { (return_statement "return -1;" return number_literal ;) })) })) (return_statement "return iVar2 + 7;" return (binary_expression "iVar2 + 7" identifier + number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (return_statement return (binary_expression IDENT + LIT) ;) })))
(function_definition "int find_hash(char *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" (primitive_type "int") (function_declarator "find_hash(char *param_1)" (identifier "find_hash") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  \n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }\n  iVar2 = 0;\n  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;\n  while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }\n  return iVar2 + 7;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (if_statement "if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);\n  }" ({ "{") (expression_statement "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);" (call_expression "crypt_argchk("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" (identifier "crypt_argchk") (argument_list "("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18)" (( "(") (string_literal ""name != NULL"" (" """) (string_content "name != NULL") (" """)) (, ",") (string_literal ""src/misc/crypt/crypt_find_hash.c"" (" """) (string_content "src/misc/crypt/crypt_find_hash.c") (" """)) (, ",") (number_literal "0x18") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;" (assignment_expression "puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)PTR_hash_descriptor_001dde98" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hash_descriptor_001dde98"))) (; ";")) (while_statement "while( true ) {\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }\n    if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }\n    if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }\n    if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }\n    if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }\n    if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }\n    if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }\n    if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;\n    iVar2 = iVar2 + 8;\n    puVar3 = puVar3 + 0xd0;\n    if (iVar2 == 0x20) {\n      return -1;\n    }\n  }" ({ "{") (if_statement "if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {\n      return iVar2;\n    }" (if "if") (parenthesized_expression "(((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)" (parenthesized_expression "((char *)*puVar3 != (char *)0x0)" (( "(") (binary_expression "(char *)*puVar3 != (char *)0x0" (cast_expression "(char *)*puVar3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)*puVar3,param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)*puVar3,param_1)" (identifier "strcmp") (argument_list "((char *)*puVar3,param_1)" (( "(") (cast_expression "(char *)*puVar3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2;\n    }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {\n      return iVar2 + 1;\n    }" (if "if") (parenthesized_expression "(((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0x1a] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x1a] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0x1a] != (char *)0x0" (cast_expression "(char *)puVar3[0x1a]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x1a]" (identifier "puVar3") ([ "[") (number_literal "0x1a") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x1a],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0x1a],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0x1a],param_1)" (( "(") (cast_expression "(char *)puVar3[0x1a]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x1a]" (identifier "puVar3") ([ "[") (number_literal "0x1a") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2 + 1;\n    }" ({ "{") (return_statement "return iVar2 + 1;" (return "return") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {\n      return iVar2 + 2;\n    }" (if "if") (parenthesized_expression "(((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0x34] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x34] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0x34] != (char *)0x0" (cast_expression "(char *)puVar3[0x34]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x34]" (identifier "puVar3") ([ "[") (number_literal "0x34") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x34],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0x34],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0x34],param_1)" (( "(") (cast_expression "(char *)puVar3[0x34]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x34]" (identifier "puVar3") ([ "[") (number_literal "0x34") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2 + 2;\n    }" ({ "{") (return_statement "return iVar2 + 2;" (return "return") (binary_expression "iVar2 + 2" (identifier "iVar2") (+ "+") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {\n      return iVar2 + 3;\n    }" (if "if") (parenthesized_expression "(((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0x4e] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x4e] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0x4e] != (char *)0x0" (cast_expression "(char *)puVar3[0x4e]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x4e]" (identifier "puVar3") ([ "[") (number_literal "0x4e") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x4e],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0x4e],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0x4e],param_1)" (( "(") (cast_expression "(char *)puVar3[0x4e]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x4e]" (identifier "puVar3") ([ "[") (number_literal "0x4e") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2 + 3;\n    }" ({ "{") (return_statement "return iVar2 + 3;" (return "return") (binary_expression "iVar2 + 3" (identifier "iVar2") (+ "+") (number_literal "3")) (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {\n      return iVar2 + 4;\n    }" (if "if") (parenthesized_expression "(((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0x68] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x68] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0x68] != (char *)0x0" (cast_expression "(char *)puVar3[0x68]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x68]" (identifier "puVar3") ([ "[") (number_literal "0x68") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x68],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0x68],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0x68],param_1)" (( "(") (cast_expression "(char *)puVar3[0x68]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x68]" (identifier "puVar3") ([ "[") (number_literal "0x68") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2 + 4;\n    }" ({ "{") (return_statement "return iVar2 + 4;" (return "return") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {\n      return iVar2 + 5;\n    }" (if "if") (parenthesized_expression "(((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0x82] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x82] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0x82] != (char *)0x0" (cast_expression "(char *)puVar3[0x82]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x82]" (identifier "puVar3") ([ "[") (number_literal "0x82") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x82],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0x82],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0x82],param_1)" (( "(") (cast_expression "(char *)puVar3[0x82]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x82]" (identifier "puVar3") ([ "[") (number_literal "0x82") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2 + 5;\n    }" ({ "{") (return_statement "return iVar2 + 5;" (return "return") (binary_expression "iVar2 + 5" (identifier "iVar2") (+ "+") (number_literal "5")) (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {\n      return iVar2 + 6;\n    }" (if "if") (parenthesized_expression "(((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0x9c] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0x9c] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0x9c] != (char *)0x0" (cast_expression "(char *)puVar3[0x9c]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x9c]" (identifier "puVar3") ([ "[") (number_literal "0x9c") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0x9c],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0x9c],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0x9c],param_1)" (( "(") (cast_expression "(char *)puVar3[0x9c]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x9c]" (identifier "puVar3") ([ "[") (number_literal "0x9c") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return iVar2 + 6;\n    }" ({ "{") (return_statement "return iVar2 + 6;" (return "return") (binary_expression "iVar2 + 6" (identifier "iVar2") (+ "+") (number_literal "6")) (; ";")) (} "}"))) (if_statement "if (((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;" (if "if") (parenthesized_expression "(((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0))" (( "(") (binary_expression "((char *)puVar3[0xb6] != (char *)0x0) &&\n       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)" (parenthesized_expression "((char *)puVar3[0xb6] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar3[0xb6] != (char *)0x0" (cast_expression "(char *)puVar3[0xb6]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0xb6]" (identifier "puVar3") ([ "[") (number_literal "0xb6") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0" (assignment_expression "iVar1 = strcmp((char *)puVar3[0xb6],param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)puVar3[0xb6],param_1)" (identifier "strcmp") (argument_list "((char *)puVar3[0xb6],param_1)" (( "(") (cast_expression "(char *)puVar3[0xb6]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0xb6]" (identifier "puVar3") ([ "[") (number_literal "0xb6") (] "]"))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar2 = iVar2 + 8;" (assignment_expression "iVar2 = iVar2 + 8" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar3 = puVar3 + 0xd0;" (assignment_expression "puVar3 = puVar3 + 0xd0" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 0xd0" (identifier "puVar3") (+ "+") (number_literal "0xd0"))) (; ";")) (if_statement "if (iVar2 == 0x20) {\n      return -1;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0x20)" (( "(") (binary_expression "iVar2 == 0x20" (identifier "iVar2") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      return -1;\n    }" ({ "{") (return_statement "return -1;" (return "return") (number_literal "-1") (; ";")) (} "}"))) (} "}"))) (return_statement "return iVar2 + 7;" (return "return") (binary_expression "iVar2 + 7" (identifier "iVar2") (+ "+") (number_literal "7")) (; ";")) (} "}")))

int function_1(char *var_1)

{
  int var_4;
  int var_5;
  type_1 *var_6;
  
  if (var_1 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("name != NULL","src/misc/crypt/crypt_find_hash.c",0x18);
  }
  var_5 = 0;
  var_6 = (type_1 *)PTR_hash_descriptor_001dde98;
  while( true ) {
    if (((char *)*var_6 != (char *)0x0) && (var_4 = var_3((char *)*var_6,var_1), var_4 == 0)) {
      return var_5;
    }
    if (((char *)var_6[0x1a] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0x1a],var_1), var_4 == 0)) {
      return var_5 + 1;
    }
    if (((char *)var_6[0x34] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0x34],var_1), var_4 == 0)) {
      return var_5 + 2;
    }
    if (((char *)var_6[0x4e] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0x4e],var_1), var_4 == 0)) {
      return var_5 + 3;
    }
    if (((char *)var_6[0x68] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0x68],var_1), var_4 == 0)) {
      return var_5 + 4;
    }
    if (((char *)var_6[0x82] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0x82],var_1), var_4 == 0)) {
      return var_5 + 5;
    }
    if (((char *)var_6[0x9c] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0x9c],var_1), var_4 == 0)) {
      return var_5 + 6;
    }
    if (((char *)var_6[0xb6] != (char *)0x0) &&
       (var_4 = var_3((char *)var_6[0xb6],var_1), var_4 == 0)) break;
    var_5 = var_5 + 8;
    var_6 = var_6 + 0xd0;
    if (var_5 == 0x20) {
      return -1;
    }
  }
  return var_5 + 7;
}


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

int MASKED(char *param_1)

{
  int iVar1;
  int iVar2;
  undefined8 *puVar3;
  
  if (param_1 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("name != NULL","src/misc/crypt/crypt_MASKED.c",0x18);
  }
  iVar2 = 0;
  puVar3 = (undefined8 *)PTR_hash_descriptor_001dde98;
  while( true ) {
    if (((char *)*puVar3 != (char *)0x0) && (iVar1 = strcmp((char *)*puVar3,param_1), iVar1 == 0)) {
      return iVar2;
    }
    if (((char *)puVar3[0x1a] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x1a],param_1), iVar1 == 0)) {
      return iVar2 + 1;
    }
    if (((char *)puVar3[0x34] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x34],param_1), iVar1 == 0)) {
      return iVar2 + 2;
    }
    if (((char *)puVar3[0x4e] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x4e],param_1), iVar1 == 0)) {
      return iVar2 + 3;
    }
    if (((char *)puVar3[0x68] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x68],param_1), iVar1 == 0)) {
      return iVar2 + 4;
    }
    if (((char *)puVar3[0x82] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x82],param_1), iVar1 == 0)) {
      return iVar2 + 5;
    }
    if (((char *)puVar3[0x9c] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0x9c],param_1), iVar1 == 0)) {
      return iVar2 + 6;
    }
    if (((char *)puVar3[0xb6] != (char *)0x0) &&
       (iVar1 = strcmp((char *)puVar3[0xb6],param_1), iVar1 == 0)) break;
    iVar2 = iVar2 + 8;
    puVar3 = puVar3 + 0xd0;
    if (iVar2 == 0x20) {
      return -1;
    }
  }
  return iVar2 + 7;
}

