
int compare(void *a,void *b)

{
  int iVar1;
  uint uVar2;
  
  if (a == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);
  }
  if (b != (void *)0x0) {
    iVar1 = __gmpz_cmp();
    uVar2 = (uint)(iVar1 != 0);
    if (iVar1 < 0) {
      uVar2 = 0xffffffff;
    }
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);
}



ulong FUN_00160bd0(long param_1,long param_2)

{
  int iVar1;
  ulong uVar2;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);
  }
  if (param_2 != 0) {
    iVar1 = __gmpz_cmp();
    uVar2 = (ulong)(iVar1 != 0);
    if (iVar1 < 0) {
      uVar2 = 0xffffffff;
    }
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);
}


SUB RSP,0x8
TEST RDI,RDI
JZ 0x00160bf9
TEST RSI,RSI
JZ 0x00160c11
CALL 0x001146f0
XOR EDX,EDX
TEST EAX,EAX
MOV EAX,0xffffffff
SETNZ DL
CMOVS EDX,EAX
ADD RSP,0x8
MOV EAX,EDX
RET
MOV EDX,0x5a
LEA RSI,[0x1bdb28]
LEA RDI,[0x1aa70e]
CALL 0x00114270
MOV EDX,0x5b
LEA RSI,[0x1bdb28]
LEA RDI,[0x1c07ee]
CALL 0x00114270
(translation_unit "ulong FUN_00160bd0(long param_1,long param_2)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}\n\n" (function_definition "ulong FUN_00160bd0(long param_1,long param_2)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" type_identifier (function_declarator "FUN_00160bd0(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" { comment (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a)" identifier (argument_list "("a != NULL","src/math/gmp_desc.c",0x5a)" ( (string_literal ""a != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" { (expression_statement "iVar1 = __gmpz_cmp();" (assignment_expression "iVar1 = __gmpz_cmp()" identifier = (call_expression "__gmpz_cmp()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (ulong)(iVar1 != 0);" (assignment_expression "uVar2 = (ulong)(iVar1 != 0)" identifier = (call_expression "(ulong)(iVar1 != 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )))) ;) (if_statement "if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar2 = 0xffffffff;\n    }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) })) (return_statement "return uVar2;" return identifier ;) })) comment (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b)" identifier (argument_list "("b != NULL","src/math/gmp_desc.c",0x5b)" ( (string_literal ""b != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "int compare(void *a,void *b)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (b != (void *)0x0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (uint)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}\n\n" (function_definition "int compare(void *a,void *b)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (b != (void *)0x0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (uint)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" primitive_type (function_declarator "compare(void *a,void *b)" identifier (parameter_list "(void *a,void *b)" ( (parameter_declaration "void *a" primitive_type (pointer_declarator "*a" * identifier)) , (parameter_declaration "void *b" primitive_type (pointer_declarator "*b" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  \n  if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (b != (void *)0x0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (uint)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (if_statement "if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" if (parenthesized_expression "(a == (void *)0x0)" ( (binary_expression "a == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" { comment (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a)" identifier (argument_list "("a != NULL","src/math/gmp_desc.c",0x5a)" ( (string_literal ""a != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (b != (void *)0x0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (uint)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" if (parenthesized_expression "(b != (void *)0x0)" ( (binary_expression "b != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = __gmpz_cmp();\n    uVar2 = (uint)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" { (expression_statement "iVar1 = __gmpz_cmp();" (assignment_expression "iVar1 = __gmpz_cmp()" identifier = (call_expression "__gmpz_cmp()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (uint)(iVar1 != 0);" (assignment_expression "uVar2 = (uint)(iVar1 != 0)" identifier = (call_expression "(uint)(iVar1 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )))) ;) (if_statement "if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar2 = 0xffffffff;\n    }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) })) (return_statement "return uVar2;" return identifier ;) })) comment (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b)" identifier (argument_list "("b != NULL","src/math/gmp_desc.c",0x5b)" ( (string_literal ""b != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "ulong FUN_00160bd0(long param_1,long param_2)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    \n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}\n\n" (function_definition "ulong FUN_00160bd0(long param_1,long param_2)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    \n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" type_identifier (function_declarator "FUN_00160bd0(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    \n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" { (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a)" identifier (argument_list "("a != NULL","src/math/gmp_desc.c",0x5a)" ( (string_literal ""a != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" { (expression_statement "iVar1 = __gmpz_cmp();" (assignment_expression "iVar1 = __gmpz_cmp()" identifier = (call_expression "__gmpz_cmp()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (ulong)(iVar1 != 0);" (assignment_expression "uVar2 = (ulong)(iVar1 != 0)" identifier = (call_expression "(ulong)(iVar1 != 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )))) ;) (if_statement "if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar2 = 0xffffffff;\n    }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) })) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b)" identifier (argument_list "("b != NULL","src/math/gmp_desc.c",0x5b)" ( (string_literal ""b != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })))
(function_definition "ulong FUN_00160bd0(long param_1,long param_2)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    \n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" (type_identifier "ulong") (function_declarator "FUN_00160bd0(long param_1,long param_2)" (identifier "FUN_00160bd0") (parameter_list "(long param_1,long param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  ulong uVar2;\n  \n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }\n  if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }\n                    \n  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);\n  }" ({ "{") (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a)" (identifier "crypt_argchk") (argument_list "("a != NULL","src/math/gmp_desc.c",0x5a)" (( "(") (string_literal ""a != NULL"" (" """) (string_content "a != NULL") (" """)) (, ",") (string_literal ""src/math/gmp_desc.c"" (" """) (string_content "src/math/gmp_desc.c") (" """)) (, ",") (number_literal "0x5a") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 != 0) {\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = __gmpz_cmp();\n    uVar2 = (ulong)(iVar1 != 0);\n    if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }\n    return uVar2;\n  }" ({ "{") (expression_statement "iVar1 = __gmpz_cmp();" (assignment_expression "iVar1 = __gmpz_cmp()" (identifier "iVar1") (= "=") (call_expression "__gmpz_cmp()" (identifier "__gmpz_cmp") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar2 = (ulong)(iVar1 != 0);" (assignment_expression "uVar2 = (ulong)(iVar1 != 0)" (identifier "uVar2") (= "=") (call_expression "(ulong)(iVar1 != 0)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n      uVar2 = 0xffffffff;\n    }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = 0xffffffff;\n    }" ({ "{") (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b)" (identifier "crypt_argchk") (argument_list "("b != NULL","src/math/gmp_desc.c",0x5b)" (( "(") (string_literal ""b != NULL"" (" """) (string_content "b != NULL") (" """)) (, ",") (string_literal ""src/math/gmp_desc.c"" (" """) (string_content "src/math/gmp_desc.c") (" """)) (, ",") (number_literal "0x5b") () ")"))) (; ";")) (} "}")))

int function_1(void *var_1,void *var_3)

{
  int var_5;
  type_1 uVar2;
  
  if (var_1 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("a != NULL","src/math/gmp_desc.c",0x5a);
  }
  if (var_3 != (void *)0x0) {
    var_5 = var_4();
    uVar2 = (type_1)(var_5 != 0);
    if (var_5 < 0) {
      uVar2 = 0xffffffff;
    }
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  var_2("b != NULL","src/math/gmp_desc.c",0x5b);
}


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

ulong MASKED(long param_1,long param_2)

{
  int iVar1;
  ulong uVar2;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x5a);
  }
  if (param_2 != 0) {
    iVar1 = __gmpz_cmp();
    uVar2 = (ulong)(iVar1 != 0);
    if (iVar1 < 0) {
      uVar2 = 0xffffffff;
    }
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("b != NULL","src/math/gmp_desc.c",0x5b);
}

