
int rsa_sign_saltlen_get_max_ex(int padding,int hash_idx,rsa_key *key)

{
  int iVar1;
  
  if (key == (rsa_key *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);
  }
  iVar1 = hash_is_valid(hash_idx);
  if ((padding == 3) && (iVar1 == 0)) {
    iVar1 = rsa_get_size(key);
    if (iVar1 != 0x7fffffff) {
      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;
    }
  }
  return 0x7fffffff;
}



int rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)

{
  int iVar1;
  
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);
  }
  iVar1 = hash_is_valid(param_2);
  if ((param_1 == 3) && (iVar1 == 0)) {
    iVar1 = rsa_get_size(param_3);
    if (iVar1 != 0x7fffffff) {
      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;
    }
  }
  return 0x7fffffff;
}


PUSH R12
PUSH RBP
PUSH RBX
TEST RDX,RDX
JZ 0x001940ad
MOVSXD RBX,ESI
MOV R12D,EDI
MOV RBP,RDX
MOV EDI,EBX
CALL 0x00113bd0
CMP R12D,0x3
JNZ 0x00194073
TEST EAX,EAX
JZ 0x00194080
POP RBX
MOV EAX,0x7fffffff
POP RBP
POP R12
RET
MOV RDI,RBP
CALL 0x00114060
CMP EAX,0x7fffffff
JZ 0x00194073
LEA RDX,[RBX + RBX*0x2]
LEA RCX,[RBX + RDX*0x4]
POP RBX
POP RBP
SHL RCX,0x4
ADD RCX,qword ptr [0x001ecea0]
POP R12
SUB EAX,dword ptr [RCX + 0x10]
SUB EAX,0x2
RET
MOV EDX,0x1c
LEA RSI,[0x1d6650]
LEA RDI,[0x1d547d]
CALL 0x00114270
(translation_unit "int rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}\n\n" (function_definition "int rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" primitive_type (function_declarator "rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)" identifier (parameter_list "(int param_1,int param_2,long param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);" (call_expression "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" identifier (argument_list "("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/rsa/rsa_sign_saltlen_get.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar1 = hash_is_valid(param_2);" (assignment_expression "iVar1 = hash_is_valid(param_2)" identifier = (call_expression "hash_is_valid(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }" if (parenthesized_expression "((param_1 == 3) && (iVar1 == 0))" ( (binary_expression "(param_1 == 3) && (iVar1 == 0)" (parenthesized_expression "(param_1 == 3)" ( (binary_expression "param_1 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }" { (expression_statement "iVar1 = rsa_get_size(param_3);" (assignment_expression "iVar1 = rsa_get_size(param_3)" identifier = (call_expression "rsa_get_size(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }" if (parenthesized_expression "(iVar1 != 0x7fffffff)" ( (binary_expression "iVar1 != 0x7fffffff" identifier != number_literal) )) (compound_statement "{\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }" { (return_statement "return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;" return (binary_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2" (parenthesized_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10))" ( (binary_expression "iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" identifier - (pointer_expression "*(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" * (cast_expression "(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0" identifier + (binary_expression "(long)param_2 * 0xd0" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) )) + number_literal) ;) })) })) (return_statement "return 0x7fffffff;" return number_literal ;) })))
(translation_unit "int rsa_sign_saltlen_get_max_ex(int padding,int hash_idx,rsa_key *key)\n\n{\n  int iVar1;\n  \n  if (key == (rsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(hash_idx);\n  if ((padding == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(key);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}\n\n" (function_definition "int rsa_sign_saltlen_get_max_ex(int padding,int hash_idx,rsa_key *key)\n\n{\n  int iVar1;\n  \n  if (key == (rsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(hash_idx);\n  if ((padding == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(key);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" primitive_type (function_declarator "rsa_sign_saltlen_get_max_ex(int padding,int hash_idx,rsa_key *key)" identifier (parameter_list "(int padding,int hash_idx,rsa_key *key)" ( (parameter_declaration "int padding" primitive_type identifier) , (parameter_declaration "int hash_idx" primitive_type identifier) , (parameter_declaration "rsa_key *key" type_identifier (pointer_declarator "*key" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  if (key == (rsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(hash_idx);\n  if ((padding == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(key);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (key == (rsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" if (parenthesized_expression "(key == (rsa_key *)0x0)" ( (binary_expression "key == (rsa_key *)0x0" identifier == (cast_expression "(rsa_key *)0x0" ( (type_descriptor "rsa_key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);" (call_expression "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" identifier (argument_list "("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/rsa/rsa_sign_saltlen_get.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar1 = hash_is_valid(hash_idx);" (assignment_expression "iVar1 = hash_is_valid(hash_idx)" identifier = (call_expression "hash_is_valid(hash_idx)" identifier (argument_list "(hash_idx)" ( identifier )))) ;) (if_statement "if ((padding == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(key);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }\n  }" if (parenthesized_expression "((padding == 3) && (iVar1 == 0))" ( (binary_expression "(padding == 3) && (iVar1 == 0)" (parenthesized_expression "(padding == 3)" ( (binary_expression "padding == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = rsa_get_size(key);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }\n  }" { (expression_statement "iVar1 = rsa_get_size(key);" (assignment_expression "iVar1 = rsa_get_size(key)" identifier = (call_expression "rsa_get_size(key)" identifier (argument_list "(key)" ( identifier )))) ;) (if_statement "if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }" if (parenthesized_expression "(iVar1 != 0x7fffffff)" ( (binary_expression "iVar1 != 0x7fffffff" identifier != number_literal) )) (compound_statement "{\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;\n    }" { (return_statement "return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2;" return (binary_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)) + -2" (parenthesized_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10))" ( (binary_expression "iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)" identifier - (pointer_expression "*(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)" * (cast_expression "(int *)(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)hash_idx * 0xd0" identifier + (binary_expression "(long)hash_idx * 0xd0" (cast_expression "(long)hash_idx" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) )) + number_literal) ;) })) })) (return_statement "return 0x7fffffff;" return number_literal ;) })))
(translation_unit "int rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}\n\n" (function_definition "int rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" primitive_type (function_declarator "rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)" identifier (parameter_list "(int param_1,int param_2,long param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" { (expression_statement "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);" (call_expression "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" identifier (argument_list "("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/rsa/rsa_sign_saltlen_get.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar1 = hash_is_valid(param_2);" (assignment_expression "iVar1 = hash_is_valid(param_2)" identifier = (call_expression "hash_is_valid(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }" if (parenthesized_expression "((param_1 == 3) && (iVar1 == 0))" ( (binary_expression "(param_1 == 3) && (iVar1 == 0)" (parenthesized_expression "(param_1 == 3)" ( (binary_expression "param_1 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }" { (expression_statement "iVar1 = rsa_get_size(param_3);" (assignment_expression "iVar1 = rsa_get_size(param_3)" identifier = (call_expression "rsa_get_size(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }" if (parenthesized_expression "(iVar1 != 0x7fffffff)" ( (binary_expression "iVar1 != 0x7fffffff" identifier != number_literal) )) (compound_statement "{\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }" { (return_statement "return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;" return (binary_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2" (parenthesized_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10))" ( (binary_expression "iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" identifier - (pointer_expression "*(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" * (cast_expression "(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0" identifier + (binary_expression "(long)param_2 * 0xd0" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) )) + number_literal) ;) })) })) (return_statement "return 0x7fffffff;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) + LIT) ))))) )) + LIT) ;) })) })) (return_statement return LIT ;) })))
(function_definition "int rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" (primitive_type "int") (function_declarator "rsa_sign_saltlen_get_max_ex(int param_1,int param_2,long param_3)" (identifier "rsa_sign_saltlen_get_max_ex") (parameter_list "(int param_1,int param_2,long param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }\n  iVar1 = hash_is_valid(param_2);\n  if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }\n  return 0x7fffffff;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);\n  }" ({ "{") (expression_statement "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);" (call_expression "crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" (identifier "crypt_argchk") (argument_list "("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c)" (( "(") (string_literal ""key != NULL"" (" """) (string_content "key != NULL") (" """)) (, ",") (string_literal ""src/pk/rsa/rsa_sign_saltlen_get.c"" (" """) (string_content "src/pk/rsa/rsa_sign_saltlen_get.c") (" """)) (, ",") (number_literal "0x1c") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = hash_is_valid(param_2);" (assignment_expression "iVar1 = hash_is_valid(param_2)" (identifier "iVar1") (= "=") (call_expression "hash_is_valid(param_2)" (identifier "hash_is_valid") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((param_1 == 3) && (iVar1 == 0)) {\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }" (if "if") (parenthesized_expression "((param_1 == 3) && (iVar1 == 0))" (( "(") (binary_expression "(param_1 == 3) && (iVar1 == 0)" (parenthesized_expression "(param_1 == 3)" (( "(") (binary_expression "param_1 == 3" (identifier "param_1") (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar1 = rsa_get_size(param_3);\n    if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }\n  }" ({ "{") (expression_statement "iVar1 = rsa_get_size(param_3);" (assignment_expression "iVar1 = rsa_get_size(param_3)" (identifier "iVar1") (= "=") (call_expression "rsa_get_size(param_3)" (identifier "rsa_get_size") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar1 != 0x7fffffff) {\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0x7fffffff)" (( "(") (binary_expression "iVar1 != 0x7fffffff" (identifier "iVar1") (!= "!=") (number_literal "0x7fffffff")) () ")")) (compound_statement "{\n      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;\n    }" ({ "{") (return_statement "return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;" (return "return") (binary_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2" (parenthesized_expression "(iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10))" (( "(") (binary_expression "iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" (identifier "iVar1") (- "-") (pointer_expression "*(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" (* "*") (cast_expression "(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)" (( "(") (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0" (identifier "PTR_hash_descriptor_001ecea0") (+ "+") (binary_expression "(long)param_2 * 0xd0" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (* "*") (number_literal "0xd0"))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (+ "+") (number_literal "-2")) (; ";")) (} "}"))) (} "}"))) (return_statement "return 0x7fffffff;" (return "return") (number_literal "0x7fffffff") (; ";")) (} "}")))

int function_1(int var_4,int hash_idx,type_1 *var_1)

{
  int var_5;
  
  if (var_1 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);
  }
  var_5 = var_3(hash_idx);
  if ((var_4 == 3) && (var_5 == 0)) {
    var_5 = var_6(var_1);
    if (var_5 != 0x7fffffff) {
      return (var_5 - *(int *)(var_7 + (long)hash_idx * 0xd0 + 0x10)) + -2;
    }
  }
  return 0x7fffffff;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))))) right: (number_literal))))))) (return_statement (number_literal)))))

int MASKED(int param_1,int param_2,long param_3)

{
  int iVar1;
  
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/rsa/rsa_sign_saltlen_get.c",0x1c);
  }
  iVar1 = hash_is_valid(param_2);
  if ((param_1 == 3) && (iVar1 == 0)) {
    iVar1 = rsa_get_size(param_3);
    if (iVar1 != 0x7fffffff) {
      return (iVar1 - *(int *)(PTR_hash_descriptor_001ecea0 + (long)param_2 * 0xd0 + 0x10)) + -2;
    }
  }
  return 0x7fffffff;
}

